@Override public Buffer wrap(final ByteBuffer byteBuffer) { return new ByteBufferWrapper(byteBuffer); }
@Override public void trim() { checkDispose() ; flip(); }
@Override public final boolean tryDispose() { if (allowBufferDispose) { dispose(); return true; } return false; }
@Override public String toStringContent(Charset charset) { return toStringContent(charset, position(), limit()); }
@Override public ByteBufferWrapper slice(int position, int limit) { checkDispose(); final int oldPosition = position(); final int oldLimit = limit(); try { Buffers.setPositionLimit(visible, position, limit); final ByteBuffer slice = visible.slice(); return wrapByteBuffer(slice); } finally { Buffers.setPositionLimit(visible, oldPosition, oldLimit); } }
@Override public void dispose() { prepareDispose(); visible = null; }
@Override public ByteBufferWrapper put(final Buffer src) { put(src, src.position(), src.remaining()); src.position(src.limit()); return this; }
@Override public ByteBufferWrapper get(final byte[] dst) { return get(dst, 0, dst.length); }
@Override public ByteBufferWrapper duplicate() { checkDispose(); final ByteBuffer duplicate = visible.duplicate(); return wrapByteBuffer(duplicate); }
@Override public boolean isDirect() { checkDispose(); return visible.isDirect(); }
@Override public ByteBufferWrapper slice(int position, int limit) { checkDispose(); final int oldPosition = position(); final int oldLimit = limit(); try { Buffers.setPositionLimit(visible, position, limit); final ByteBuffer slice = visible.slice(); return wrapByteBuffer(slice); } finally { Buffers.setPositionLimit(visible, oldPosition, oldLimit); } }
@Override public String toStringContent(Charset charset) { return toStringContent(charset, position(), limit()); }
@Override public void dispose() { prepareDispose(); visible = null; }
@Override public ByteBufferWrapper put(final Buffer src) { put(src, src.position(), src.remaining()); src.position(src.limit()); return this; }
@Override public ByteBufferWrapper get(final byte[] dst) { return get(dst, 0, dst.length); }
@Override public Buffer put(final ByteBuffer src) { checkDispose(); visible.put(src); return this; }
@Override public Buffer split(final int splitPosition) { checkDispose(); final int cap = capacity(); final int oldPosition = position(); final int oldLimit = limit(); return wrapByteBuffer(slice2);
@Override public String toStringContent(Charset charset) { return toStringContent(charset, position(), limit()); }