public ReadableBuilder(byte[] bytes, int offset, int length) { this(new ReadableByteArray(bytes, offset, length)); }
@Override public int read(ByteBuffer byteBuffer) { if (size.isComplete()) return super.read(byteBuffer); int r = size.read(byteBuffer); if (!size.isComplete()) return r; return r + super.read(byteBuffer); }
public ReadableBuilder append(byte[] bytes, int offset, int length) { if (partsCount + 1 >= parts.length) increaseSize(); parts[partsCount] = new ReadableByteArray(bytes, offset, length); partsCount++; return this; }
public Response setBody(byte[] body) { return setBody(new ReadableByteArray(body)); }
public ReadableByteArrayWithSize(byte[] bytes, int offset, int length) { super(bytes, offset, length); size = new ReadableByteArray(BytesTools.toBytes(length)); }
public boolean write(byte[] bytes, int offset, int length, ByteBufferProvider bufferProvider) { return write(new ReadableByteArray(bytes, offset, length), bufferProvider); }
public Renderer renderData(byte[] data) { return renderData(new ReadableByteArray(data)); }
public Response body(byte[] body) { return body(new ReadableByteArray(body)); }
public ReadableData renderable() { return new ReadableByteArray("foo".getBytes(StandardCharsets.UTF_8)); }
protected ReadableData convertFrameToReadableData(Frame frame) { return new ReadableByteArray(frame.getFrameBytes(), frame.getFrameOffset(), frame.getFrameLength()); }
public void flush(ByteBufferProvider provider) { ByteBufferWrapper buffer = provider.getBuffer(); if (buffer.position() == 0) { if (!sending.isEmpty()) write(provider); return; } try { int w = write(buffer, 0, buffer.position()); ByteBuffer bb = buffer.buffer(); if (w != bb.position()) { bb.flip(); bb.position(w); byte[] bytes = new byte[bb.remaining()]; bb.get(bytes); sending.addFirst(new ReadableByteArray(bytes)); buffer.clear(); } else { buffer.clear(); if (!sending.isEmpty()) write(provider); } } catch (IOException e) { IOTools.close(this); } }