@Override public short getUnsignedByte(int index) { int pos = delegate.positionReader(index); try { return readUnsignedByte(); } finally { delegate.positionReader(pos); } }
@Override public int getBytes(int index, GatheringByteChannel out, int length) throws IOException { int pos = delegate.positionReader(index); try { return readBytes(out, length); } finally { delegate.positionReader(pos); } }
@Override public void setLong(int index, long value) { int pos = delegate.positionWriter(index); try { writeLong(value); } finally { delegate.positionWriter(pos); } }
@Override public int setBytes(int index, ScatteringByteChannel in, int length) throws IOException { int pos = delegate.positionWriter(index); try { return writeBytes(in, length); } finally { delegate.positionWriter(pos); } }
@Override public void getBytes(int index, OutputStream out, int length) throws IOException { int pos = delegate.positionReader(index); try { readBytes(out, length); } finally { delegate.positionReader(pos); } }
@Override public void setBytes(int index, ChannelBuffer src, int length) { int pos = delegate.positionWriter(index); try { writeBytes(src, length); } finally { delegate.positionWriter(pos); } }
@Override public void setBytes(int index, ByteBuffer src) { int pos = delegate.positionWriter(index); try { writeBytes(src); } finally { delegate.positionWriter(pos); } }
@Override public float getFloat(int index) { int pos = delegate.positionReader(index); try { return readFloat(); } finally { delegate.positionReader(pos); } }
@Override public double getDouble(int index) { int pos = delegate.positionReader(index); try { return readDouble(); } finally { delegate.positionReader(pos); } }
@Override public long getLong(int index) { int pos = delegate.positionReader(index); try { return readLong(); } finally { delegate.positionReader(pos); } }
@Override public char getChar(int index) { int pos = delegate.positionReader(index); try { return readChar(); } finally { delegate.positionReader(pos); } }
@Override public long getUnsignedInt(int index) { int pos = delegate.positionReader(index); try { return readUnsignedInt(); } finally { delegate.positionReader(pos); } }
@Override public int getUnsignedMedium(int index) { int pos = delegate.positionReader(index); try { return readUnsignedMedium(); } finally { delegate.positionReader(pos); } }
@Override public short getShort(int index) { int pos = delegate.positionReader(index); try { return readShort(); } finally { delegate.positionReader(pos); } }
@Override public void setFloat(int index, float value) { int pos = delegate.positionWriter(index); try { writeFloat(value); } finally { delegate.positionWriter(pos); } }
@Override public void getBytes(int index, ChannelBuffer dst, int length) { int pos = delegate.positionReader(index); try { readBytes(dst, length); } finally { delegate.positionReader(pos); } }
@Override public void setDouble(int index, double value) { int pos = delegate.positionWriter(index); try { writeDouble(value); } finally { delegate.positionWriter(pos); } }
@Override public void getBytes(int index, byte[] dst, int dstIndex, int length) { int pos = delegate.positionReader(index); try { readBytes(dst, dstIndex, length); } finally { delegate.positionReader(pos); } }
@Override public void setBytes(int index, byte[] src, int srcIndex, int length) { int pos = delegate.positionWriter(index); try { writeBytes(src, srcIndex, length); } finally { delegate.positionWriter(pos); } }
@Override public void getBytes(int index, ByteBuffer dst) { int pos = delegate.positionReader(index); try { readBytes(dst); } finally { delegate.positionReader(pos); } }
@Override public int setBytes(int index, InputStream in, int length) throws IOException { int pos = delegate.positionWriter(index); try { return writeBytes(in, length); } finally { delegate.positionWriter(pos); } }
@Override public void setChar(int index, int value) { int pos = delegate.positionWriter(index); try { writeChar(value); } finally { delegate.positionWriter(pos); } }
@Override public byte getByte(int index) { int pos = delegate.positionReader(index); try { return readByte(); } finally { delegate.positionReader(pos); } }
@Override public void writeChar(int value) { try { delegate.put((byte) value); delegate.put((byte) (value >>> 8)); } catch (IOException e) { throw writeException(e); } }
@Override public void writeMedium(int value) { try { delegate.putShort((short) value); delegate.put((byte) (value >>> 16)); } catch (IOException e) { throw writeException(e); } }
@Override public char readChar() { try { short low = delegate.get(); short high = delegate.get(); return (char) (low | (high << 8)); } catch (ReadPastEndException e) { throw outOfBounds(e); } }
@Override public int readMedium() { try { int low = delegate.getShort(); int high = delegate.get(); return low | (high << 16); } catch (ReadPastEndException e) { throw outOfBounds(e); } }
@Override public void setZero(int index, int length) { int pos = delegate.positionWriter(index); try { for (int i = 0; i < length; i++) { writeByte(0); } } finally { delegate.positionWriter(pos); } }
@Override public int indexOf(int fromIndex, int toIndex, byte value) { int pos = delegate.positionReader(fromIndex); try { while (delegate.readerPosition() < toIndex) { int thisPos = delegate.readerPosition(); if (delegate.get() == value) { return thisPos; } } return -1; } catch (ReadPastEndException e) { throw new RuntimeException(e); } finally { delegate.positionReader(pos); } }
@Override public void writeBytes(byte[] src) { try { delegate.put(src, src.length); } catch (IOException e) { throw writeException(e); } }