List of usage examples for io.vertx.core.buffer Buffer getBuffer
Buffer getBuffer(int start, int end);
From source file:io.fabric8.msg.jnatsd.BufferSupport.java
License:Apache License
static public Buffer chomp(Buffer self) { return self.getBuffer(0, self.length() - 1); }
From source file:io.fabric8.msg.jnatsd.BufferSupport.java
License:Apache License
static public Buffer trimFront(Buffer self) { int length = self.length(); int pos = 0;/* w ww.j av a 2 s . c o m*/ while ((pos < length) && (self.getByte(pos) <= ' ')) { pos++; } return (pos == 0) ? self : self.getBuffer(pos, length); }
From source file:io.fabric8.msg.jnatsd.BufferSupport.java
License:Apache License
static public Buffer trimEnd(Buffer self) { int length = self.length(); int pos = length; while (pos > 0 && (self.getByte(pos - 1) <= ' ')) { pos--;//from w ww . j ava 2s . com } return (pos == length - 1) ? self : self.getBuffer(0, pos); }
From source file:io.fabric8.msg.jnatsd.BufferSupport.java
License:Apache License
static public Buffer[] split(Buffer self, byte separator) { ArrayList<Buffer> rc = new ArrayList<>(); int pos = 0;// w w w . ja v a 2 s. c o m int nextStart = pos; int end = self.length(); while (pos < end) { if (self.getByte(pos) == separator) { if (nextStart < pos) { rc.add(self.getBuffer(nextStart, pos)); } nextStart = pos + 1; } pos++; } if (nextStart < pos) { rc.add(self.getBuffer(nextStart, pos)); } return rc.toArray(new Buffer[rc.size()]); }
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();/*from w w w . ja v a 2 s . c o m*/ 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();/* ww w . j av a 2 s . co m*/ 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:org.lealone.net.AsyncConnection.java
License:Open Source License
@Override public void handle(Buffer buffer) { if (lastBuffer != null) { buffer = lastBuffer.appendBuffer(buffer); lastBuffer = null;//from w w w .j a va 2 s.c o m } int length = buffer.length(); if (length < 4) { lastBuffer = buffer; return; } int pos = 0; try { while (true) { // ?Transfer??????Transfer // ?CommandHandler?Transfer?? Transfer transfer; if (pos == 0) transfer = new Transfer(this, socket, buffer); else transfer = new Transfer(this, socket, buffer.slice(pos, pos + length)); int packetLength = transfer.readInt(); if (length - 4 == packetLength) { parsePacket(transfer); break; } else if (length - 4 > packetLength) { parsePacket(transfer); pos = pos + packetLength + 4; length = length - (packetLength + 4); // ??4 if (length < 4) { lastBuffer = buffer.getBuffer(pos, pos + length); break; } else { continue; } } else { lastBuffer = buffer.getBuffer(pos, pos + length); break; } } } catch (Throwable e) { logger.error("Parse packet", e); } }