@Override public int capacity() { ensureAccessible(); return array.length; }
@Override public int capacity() { ensureAccessible(); return array.length; }
@Override public byte[] array() { ensureAccessible(); return array; }
@Override public ByteBuffer nioBuffer(int index, int length) { ensureAccessible(); return ByteBuffer.wrap(array, index, length).slice(); }
@Override public ByteBuf setBytes(int index, ByteBuffer src) { ensureAccessible(); src.get(array, index, src.remaining()); return this; }
@Override public byte getByte(int index) { ensureAccessible(); return _getByte(index); }
@Override public int getBytes(int index, GatheringByteChannel out, int length) throws IOException { ensureAccessible(); return getBytes(index, out, length, false); }
@Override public byte getByte(int index) { ensureAccessible(); return _getByte(index); }
@Override public int getUnsignedMedium(int index) { ensureAccessible(); return _getUnsignedMedium(index); }
@Override public ByteBuf setShort(int index, int value) { ensureAccessible(); _setShort(index, value); return this; }
@Override public int getBytes(int index, GatheringByteChannel out, int length) throws IOException { ensureAccessible(); return getBytes(index, out, length, false); }
@Override public short getShort(int index) { ensureAccessible(); return _getShort(index); }
@Override public ByteBuf setShort(int index, int value) { ensureAccessible(); _setShort(index, value); return this; }
@Override public int getInt(int index) { ensureAccessible(); return _getInt(index); }
@Override public ByteBuf setByte(int index, int value) { ensureAccessible(); _setByte(index, value); return this; }
@Override public long getLong(int index) { ensureAccessible(); return _getLong(index); }
@Override public ByteBuf setByte(int index, int value) { ensureAccessible(); _setByte(index, value); return this; }
@Override public ByteBuf setMedium(int index, int value) { ensureAccessible(); _setMedium(index, value); return this; }
private int getBytes(int index, GatheringByteChannel out, int length, boolean internal) throws IOException { ensureAccessible(); ByteBuffer tmpBuf; if (internal) { tmpBuf = internalNioBuffer(); } else { tmpBuf = ByteBuffer.wrap(array); } return out.write((ByteBuffer) tmpBuf.clear().position(index).limit(index + length)); }
@Override public int setBytes(int index, ScatteringByteChannel in, int length) throws IOException { ensureAccessible(); try { return in.read((ByteBuffer) internalNioBuffer().clear().position(index).limit(index + length)); } catch (ClosedChannelException ignored) { return -1; } }