X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FGetNodeCommandImpl.java;h=24471797e09d7e3fdaafc16bc4232736fa36f3e2;hb=2012a2dad86529e1a01528c075e9a87fcb31f156;hp=23c5ad0a601c3bd3030d5fb252c2438da197158d;hpb=4ab59f592d61e27f7e61e80d66aa7fa524abcfb1;p=jFCPlib.git diff --git a/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java b/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java index 23c5ad0..2447179 100644 --- a/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java +++ b/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java @@ -1,6 +1,7 @@ package net.pterodactylus.fcp.quelaton; import java.io.IOException; +import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -23,6 +24,7 @@ public class GetNodeCommandImpl implements GetNodeCommand { private final ConnectionSupplier connectionSupplier; private final AtomicBoolean giveOpennetRef = new AtomicBoolean(false); private final AtomicBoolean includePrivate = new AtomicBoolean(false); + private final AtomicBoolean includeVolatile = new AtomicBoolean(false); public GetNodeCommandImpl(ExecutorService threadPool, ConnectionSupplier connectionSupplier) { this.threadPool = MoreExecutors.listeningDecorator(threadPool); @@ -42,10 +44,22 @@ public class GetNodeCommandImpl implements GetNodeCommand { } @Override + public GetNodeCommand includeVolatile() { + includeVolatile.set(true); + return this; + } + + @Override public ListenableFuture execute() { + return threadPool.submit(this::executeSequence); + } + + private NodeData executeSequence() throws InterruptedException, ExecutionException, IOException { GetNode getNode = new GetNode(new RandomIdentifierGenerator().generate(), giveOpennetRef.get(), - includePrivate.get(), false); - return threadPool.submit(() -> new GetNodeReplySequence().send(getNode).get()); + includePrivate.get(), includeVolatile.get()); + try (GetNodeReplySequence getNodeReplySequence = new GetNodeReplySequence()) { + return getNodeReplySequence.send(getNode).get(); + } } private class GetNodeReplySequence extends FcpReplySequence {