@Override public byte[] array() { ensureAccessible(); return array; }
@Override public int setBytes(int index, InputStream in, int length) throws IOException { ensureAccessible(); return in.read(array, index, length); }
@Override public ByteBuf setBytes(int index, ByteBuffer src) { ensureAccessible(); src.get(array, index, src.remaining()); return this; }
@Override public int getBytes(int index, GatheringByteChannel out, int length) throws IOException { ensureAccessible(); return getBytes(index, out, length, false); }
@Override public int setBytes(int index, FileChannel in, long position, int length) throws IOException { ensureAccessible(); try { return in.read((ByteBuffer) internalNioBuffer().clear().position(index).limit(index + length), position); } catch (ClosedChannelException ignored) { return -1; } }
@Override public int getUnsignedMediumLE(int index) { ensureAccessible(); return _getUnsignedMediumLE(index); }
@Override public int getIntLE(int index) { ensureAccessible(); return _getIntLE(index); }
@Override public ByteBuf setShort(int index, int value) { ensureAccessible(); _setShort(index, value); return this; }
@Override public int getUnsignedMedium(int index) { ensureAccessible(); return _getUnsignedMedium(index); }
@Override public long getLongLE(int index) { ensureAccessible(); return _getLongLE(index); }
@Override public ByteBuf setShortLE(int index, int value) { ensureAccessible(); _setShortLE(index, value); return this; }
@Override public ByteBuf setInt(int index, int value) { ensureAccessible(); _setInt(index, value); return this; }
@Override public int getBytes(int index, FileChannel out, long position, int length) throws IOException { ensureAccessible(); return getBytes(index, out, position, length, false); }
@Override public ByteBuf setMediumLE(int index, int value) { ensureAccessible(); _setMediumLE(index, value); return this; }
@Override public ByteBuf setIntLE(int index, int value) { ensureAccessible(); _setIntLE(index, value); return this; }
@Override public ByteBuf setLongLE(int index, long value) { ensureAccessible(); _setLongLE(index, value); return this; }
private int getBytes(int index, FileChannel out, long position, int length, boolean internal) throws IOException { ensureAccessible(); ByteBuffer tmpBuf = internal ? internalNioBuffer() : ByteBuffer.wrap(array); return out.write((ByteBuffer) tmpBuf.clear().position(index).limit(index + length), position); }
@Override public short getShort(int index) { ensureAccessible(); return _getShort(index); }
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; } }