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

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

Introduction

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

Prototype

@GenIgnore(GenIgnore.PERMITTED_TYPE)
@Fluent
Buffer setBytes(int pos, byte[] b);

Source Link

Document

Sets the bytes at position pos in the Buffer to the bytes represented by the byte[] b .

The buffer will expand as necessary to accommodate any value written.

Usage

From source file:org.sfs.io.AsyncFileReaderImpl.java

License:Apache License

private void doRead(final Buffer writeBuff, final int offset, final ByteBuffer buff, final long position,
        final Handler<AsyncResult<Buffer>> handler) {

    ch.read(buff, position, null, new java.nio.channels.CompletionHandler<Integer, Object>() {

        long pos = position;

        private void done(boolean eof) {
            context.runOnContext(event -> {
                buff.flip();/*w  w  w  .j a  v  a 2s  . c  om*/
                writeBuff.setBytes(offset, buff);
                Future.succeededFuture(writeBuff).setHandler(handler);
            });
        }

        public void completed(Integer bytesRead, Object attachment) {
            if (bytesRead == -1) {
                //End of file
                done(true);
            } else if (buff.hasRemaining()) {
                // partial read
                pos += bytesRead;
                // resubmit
                doRead(writeBuff, offset, buff, pos, handler);
            } else {
                // It's been fully written
                done(false);
            }
        }

        public void failed(final Throwable t, Object attachment) {
            context.runOnContext(event -> Future.<Buffer>failedFuture(t).setHandler(handler));
        }
    });
}

From source file:org.sfs.io.Block.java

License:Apache License

public Frame<Buffer> toBuffer() {
    byte[] frame = getValue().toByteArray();
    Preconditions.checkState(frame.length <= frameDataSize, "Frame length was %s, expected %s", frame.length,
            frameDataSize);//  w w w .ja  va 2  s  .  c  o  m
    byte[] checksum = checksum(frame);

    Buffer buffer = Buffer.buffer();
    buffer.setBytes(FRAME_HASH_OFFSET, checksum);
    buffer.setInt(FRAME_LENGTH_OFFSET, frame.length);
    buffer.setBytes(FRAME_DATA_OFFSET, frame);

    Preconditions.checkState(buffer.length() <= blockSize, "Buffer size was %s, expected %s", buffer.length(),
            blockSize);

    byte[] remaining = new byte[blockSize - buffer.length()];
    if (remaining.length > 0) {
        buffer.setBytes(buffer.length(), remaining);
        Preconditions.checkState(buffer.length() <= blockSize, "Buffer size was %s, expected %s",
                buffer.length(), blockSize);
    }

    return new Frame<>(checksum, buffer);
}

From source file:org.sfs.io.Block.java

License:Apache License

public static Frame<Buffer> encodeFrame(Buffer value) {
    byte[] frame = value.getBytes();
    byte[] checksum = checksum(frame);

    Buffer buffer = Buffer.buffer();
    buffer.setBytes(FRAME_HASH_OFFSET, checksum);
    buffer.setInt(FRAME_LENGTH_OFFSET, frame.length);
    buffer.setBytes(FRAME_DATA_OFFSET, frame);

    return new Frame<>(checksum, buffer);
}