package net.pterodactylus.fcp.quelaton;
import java.io.IOException;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicReference;
import net.pterodactylus.fcp.FcpKeyPair;
@Override
public ListenableFuture<FcpKeyPair> execute() {
- return threadPool.submit(() -> new FcpKeyPairReplySequence().send(new GenerateSSK()).get());
+ return threadPool.submit(this::executeSequence);
}
- private class FcpKeyPairReplySequence extends FcpReplySequence<FcpKeyPair> {
+ private FcpKeyPair executeSequence() throws InterruptedException, ExecutionException, IOException {
+ try (FcpKeyPairDialog fcpKeyPairDialog = new FcpKeyPairDialog()) {
+ return fcpKeyPairDialog.send(new GenerateSSK()).get();
+ }
+ }
+
+ private class FcpKeyPairDialog extends FcpDialog<FcpKeyPair> {
private AtomicReference<FcpKeyPair> keyPair = new AtomicReference<>();
- public FcpKeyPairReplySequence() throws IOException {
+ public FcpKeyPairDialog() throws IOException {
super(GenerateKeypairCommandImpl.this.threadPool, GenerateKeypairCommandImpl.this.connectionSupplier.get());
}