FcpConnection connection = new FcpConnection(hostname, port);
connection.connect();
ClientHello clientHello = new ClientHello(clientName.get(), "2.0");
- try (ClientHelloDialog nodeHelloSequence = new ClientHelloDialog(connection)) {
- if (nodeHelloSequence.send(clientHello).get()) {
+ try (ClientHelloDialog clientHelloDialog = new ClientHelloDialog(connection)) {
+ if (clientHelloDialog.send(clientHello).get()) {
return connection;
}
} catch (InterruptedException | ExecutionException e) {
private class ClientHelloDialog extends FcpDialog<Boolean> {
- private final AtomicReference<NodeHello> receivedNodeHello = new AtomicReference<>();
-
public ClientHelloDialog(FcpConnection connection) {
- super(ClientHelloImpl.this.threadPool, connection);
- }
-
- @Override
- protected boolean isFinished() {
- return receivedNodeHello.get() != null;
- }
-
- @Override
- protected Boolean getResult() {
- return receivedNodeHello.get() != null;
+ super(ClientHelloImpl.this.threadPool, connection, false);
}
@Override
protected void consumeNodeHello(NodeHello nodeHello) {
- receivedNodeHello.set(nodeHello);
+ setResult(true);
}
}