List of usage examples for io.vertx.core.buffer Buffer getLong
long getLong(int pos);
From source file:net.kuujo.copycat.vertx.VertxTcpProtocolClient.java
License:Apache License
@Override public CompletableFuture<Void> connect() { final CompletableFuture<Void> future = new CompletableFuture<>(); if (vertx == null) vertx = protocol.getVertx();//ww w .ja va 2 s . c om if (vertx == null) vertx = Vertx.vertx(); if (client == null) { NetClientOptions options = new NetClientOptions().setTcpKeepAlive(true).setTcpNoDelay(true) .setSendBufferSize(protocol.getSendBufferSize()) .setReceiveBufferSize(protocol.getReceiveBufferSize()).setSsl(protocol.isSsl()) .setTrustAll(protocol.isClientTrustAll()).setUsePooledBuffers(true); client = vertx.createNetClient(options); client.connect(port, host, result -> { if (result.failed()) { future.completeExceptionally(result.cause()); } else { socket = result.result(); RecordParser parser = RecordParser.newFixed(4, null); Handler<Buffer> handler = new Handler<Buffer>() { int length = -1; @Override public void handle(Buffer buffer) { if (length == -1) { length = buffer.getInt(0); parser.fixedSizeMode(length + 8); } else { handleResponse(buffer.getLong(0), buffer.getBuffer(8, length + 8).getByteBuf().nioBuffer()); length = -1; parser.fixedSizeMode(4); } } }; parser.setOutput(handler); socket.handler(parser); future.complete(null); } }); } else { future.complete(null); } return future; }
From source file:net.kuujo.copycat.vertx.VertxTcpProtocolServer.java
License:Apache License
@Override public CompletableFuture<Void> listen() { final CompletableFuture<Void> future = new CompletableFuture<>(); if (vertx == null) vertx = protocol.getVertx();//from w w w.j av a 2s . c om if (vertx == null) vertx = Vertx.vertx(); if (server == null) { NetServerOptions options = new NetServerOptions().setTcpKeepAlive(true).setTcpNoDelay(true) .setReuseAddress(true).setAcceptBacklog(protocol.getAcceptBacklog()) .setSendBufferSize(protocol.getSendBufferSize()) .setReceiveBufferSize(protocol.getReceiveBufferSize()).setSsl(protocol.isSsl()) .setClientAuthRequired(protocol.isClientAuthRequired()).setUsePooledBuffers(true); server = vertx.createNetServer(options); server.connectHandler(socket -> { RecordParser parser = RecordParser.newFixed(4, null); Handler<Buffer> handler = new Handler<Buffer>() { int length = -1; @Override public void handle(Buffer buffer) { if (length == -1) { length = buffer.getInt(0); parser.fixedSizeMode(length + 8); } else { handleRequest(buffer.getLong(0), socket, buffer.getBuffer(8, length + 8).getByteBuf().nioBuffer()); length = -1; parser.fixedSizeMode(4); } } }; parser.setOutput(handler); socket.handler(parser); }).listen(port, host, result -> { if (result.failed()) { future.completeExceptionally(result.cause()); } else { future.complete(null); } }); } else { future.complete(null); } return future; }
From source file:pt.davidafsilva.slacker.api.SlackerRequestMessageCodec.java
License:Open Source License
@Override public SlackerRequest decodeFromWire(final int pos, final Buffer buffer) { final SlackerRequestBuilder builder = new SlackerRequestBuilder(); // timestamp// w w w. j a v a 2 s .c o m builder.timestamp(Instant.ofEpochSecond(buffer.getLong(pos), buffer.getInt(pos + 8))); int offset = pos + 12; // team identifier offset = readString(buffer, offset, builder::teamIdentifier); // team domain offset = readString(buffer, offset, builder::teamDomain); // channel id offset = readString(buffer, offset, builder::channelId); // channel name offset = readString(buffer, offset, builder::channelName); // user id offset = readString(buffer, offset, builder::userId); // user name offset = readString(buffer, offset, builder::userName); // trigger offset = readString(buffer, offset, builder::command); // text message readString(buffer, offset, builder::args); return builder.build(); }