Example usage for io.vertx.core.buffer Buffer getBuffer

List of usage examples for io.vertx.core.buffer Buffer getBuffer

Introduction

In this page you can find the example usage for io.vertx.core.buffer Buffer getBuffer.

Prototype

Buffer getBuffer(int start, int end);

Source Link

Document

Returns a copy of a sub-sequence the Buffer as a io.vertx.core.buffer.Buffer starting at position start and ending at position end - 1

Usage

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);
    }
}