@Override public void getBytes(int index, ByteBuffer dst) { int pos = delegate.positionReader(index); try { readBytes(dst); } finally { delegate.positionReader(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 short getUnsignedByte(int index) { int pos = delegate.positionReader(index); try { return readUnsignedByte(); } finally { delegate.positionReader(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 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 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 getBytes(int index, ChannelBuffer dst, int length) { int pos = delegate.positionReader(index); try { readBytes(dst, length); } finally { delegate.positionReader(pos); } }
@Override public byte getByte(int index) { int pos = delegate.positionReader(index); try { return readByte(); } finally { delegate.positionReader(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 skipBytes(int length) { delegate.positionReader(delegate.readerPosition() + length); }
@Override public void setIndex(int readerIndex, int writerIndex) { delegate.positionReader(readerIndex); delegate.positionWriter(writerIndex); }
@Override public void readerIndex(int readerIndex) { delegate.positionReader(readerIndex); }