private boolean sendNotLeaderResponse( final ServerOutput output, final RemoteAddress remoteAddress, final long requestId) { response .reset() .requestId(requestId) .remoteStreamId(remoteAddress.getStreamId()) .writer(notLeaderResponse); return output.sendResponse(response); }
private void registerEndpoint( final ClientTransport transport, final int nodeId, final SocketAddress socketAddress) { final RemoteAddress endpoint = transport.getEndpoint(nodeId); if (endpoint == null || !socketAddress.equals(endpoint.getAddress())) { transport.registerEndpoint(nodeId, socketAddress); } }
/** Send a response over the given output to the given address */ public void sendResponse( final ServerOutput serverOutput, final RemoteAddress remoteAddress, final long requestId, final BufferWriter writer) { serverResponse.reset().remoteAddress(remoteAddress).requestId(requestId).writer(writer); serverOutput.sendResponse(serverResponse); }
private void responseTo(GossipEvent event, long requestId, int streamId) { serverResponse.reset().writer(event).requestId(requestId).remoteStreamId(streamId); try { serverTransport.getOutput().sendResponse(serverResponse); } catch (Throwable t) { Loggers.GOSSIP_LOGGER.error("Error on sending response.", t); // ignore } }
public void bindTransport() { if (transport == null) { transport = Transports.newServerTransport() .bindAddress(socketAddress.toInetSocketAddress()) .scheduler(scheduler) .build(null, channelHandler); } else { throw new RuntimeException("transport already open"); } }
/** * Send a request to the given address * * @return the client request to poll for a response, or null if the request could not be written * at the moment */ public ActorFuture<ClientResponse> sendRequest( final int nodeId, final BufferWriter writer, final Duration timeout) { return clientTransport.getOutput().sendRequest(nodeId, writer, timeout); }
/** * Send a {@link TransportMessage} to the given remote * * @return true if the message was written to the send buffer, false otherwise */ public boolean sendMessage(final int nodeId, final BufferWriter writer) { return clientTransport.getOutput().sendMessage(nodeId, writer); }
@Override public void onConnectionEstablished(RemoteAddress remoteAddress) { synchronized (monitor) { if (remoteAddress.getAddress().equals(addr)) { monitor.notifyAll(); removeChannelListener(this); } } }
public TopologyBroker(final int nodeId, final String host, final int port) { this.nodeId = nodeId; this.host = host; this.port = port; address = new SocketAddress(host, port); }
@Override public int onFragment( DirectBuffer buffer, int offset, int length, int streamId, boolean isMarkedFailed) { final RemoteAddress remoteAddress = remoteAddresses.getByStreamId(streamId); final boolean success = messageHandler.onMessage(output, remoteAddress, buffer, offset, length); return success ? CONSUME_FRAGMENT_RESULT : POSTPONE_FRAGMENT_RESULT; } };
private boolean sendNotLeaderResponse( final ServerOutput output, final RemoteAddress remoteAddress, final long requestId) { response .reset() .requestId(requestId) .remoteStreamId(remoteAddress.getStreamId()) .writer(notLeaderResponse); return output.sendResponse(response); }
private void responseTo(GossipEvent event, long requestId, int streamId) { serverResponse.reset().writer(event).requestId(requestId).remoteStreamId(streamId); try { serverTransport.getOutput().sendResponse(serverResponse); } catch (Throwable t) { Loggers.GOSSIP_LOGGER.error("Error on sending response.", t); // ignore } }
/** Send a response over the given output to the given address */ public void sendResponse( final ServerOutput serverOutput, final RemoteAddress remoteAddress, final long requestId, final BufferWriter writer) { serverResponse.reset().remoteAddress(remoteAddress).requestId(requestId).writer(writer); serverOutput.sendResponse(serverResponse); }
public void bindTransport() { if (transport == null) { transport = Transports.newServerTransport() .bindAddress(socketAddress.toInetSocketAddress()) .scheduler(scheduler) .build(null, channelHandler); } else { throw new RuntimeException("transport already open"); } }
/** * Send a request to the given address * * @return the client request to poll for a response, or null if the request could not be written * at the moment */ public ActorFuture<ClientResponse> sendRequest( final int nodeId, final BufferWriter writer, final Duration timeout) { return clientTransport.getOutput().sendRequest(nodeId, writer, timeout); }
/** * Send a {@link TransportMessage} to the given remote * * @return true if the message was written to the send buffer, false otherwise */ public boolean sendMessage(final int nodeId, final BufferWriter writer) { return clientTransport.getOutput().sendMessage(nodeId, writer); }
@Override public void onConnectionEstablished(RemoteAddress remoteAddress) { synchronized (monitor) { if (remoteAddress.getAddress().equals(addr)) { monitor.notifyAll(); removeChannelListener(this); } } }
@Override public int onFragment( DirectBuffer buffer, int offset, int length, int streamId, boolean isMarkedFailed) { final RemoteAddress remoteAddress = remoteAddresses.getByStreamId(streamId); final boolean success = messageHandler.onMessage(output, remoteAddress, buffer, offset, length); return success ? CONSUME_FRAGMENT_RESULT : POSTPONE_FRAGMENT_RESULT; } };
private ActorFuture<ClientResponse> sendEventTo(GossipEvent event, int nodeId, Duration timeout) { return clientTransport.getOutput().sendRequest(nodeId, event, timeout); }