@Override public int remaining() { checkDispose(); return limit - position; }
@Override public boolean isReadOnly() { checkDispose(); return isReadOnly; }
@Override public int position() { checkDispose(); return position; }
@Override public int remaining() { checkDispose(); return limit - position; }
@Override public Buffer[] underlying() { checkDispose(); return buffers; }
@Override public int capacity() { checkDispose(); return capacity; }
@Override public BuffersBuffer limit(final int newLimit) { checkDispose(); setPosLim(position <= newLimit ? position : newLimit, newLimit); if (mark > limit) mark = -1; return this; }
@Override public BuffersBuffer limit(final int newLimit) { checkDispose(); setPosLim(position <= newLimit ? position : newLimit, newLimit); if (mark > limit) mark = -1; return this; }
@Override public BuffersBuffer flip() { checkDispose(); setPosLim(0, position); mark = -1; return this; }
@Override public BuffersBuffer position(final int newPosition) { checkDispose(); setPosLim(newPosition, limit); if (mark > position) mark = -1; return this; }
@Override public BuffersBuffer limit(final int newLimit) { checkDispose(); setPosLim(position <= newLimit ? position : newLimit, newLimit); if (mark > limit) mark = -1; return this; }
@Override public BuffersBuffer flip() { checkDispose(); setPosLim(0, position); mark = -1; return this; }
@Override public BuffersBuffer duplicate() { checkDispose(); return create().duplicateFrom(this); }
@Override public Buffer put(Buffer src, int position, int length) { checkDispose(); checkReadOnly(); Buffers.put(src, position, length, this); return this; }
@Override public BuffersBuffer asReadOnlyBuffer() { checkDispose(); final BuffersBuffer buffer = create().duplicateFrom(this); buffer.isReadOnly = true; return buffer; }
@Override public BuffersBuffer duplicate() { checkDispose(); return create().duplicateFrom(this); }
@Override public Buffer put(Buffer src, int position, int length) { checkDispose(); checkReadOnly(); Buffers.put(src, position, length, this); return this; }
@Override public void dispose() { checkDispose(); isDisposed = true; removeAndDisposeBuffers(); if (DEBUG_MODE) { // if debug is on - clear the buffer content // Use static logic class to help JIT optimize the code DebugLogic.doDebug(this); } ThreadCache.putToCache(CACHE_IDX, this); }
@Override public int getInt(final int index) { checkDispose(); checkIndex(index); if (upperBound - index >= 4) { return activeBuffer.getInt(toActiveBufferPos(index)); } else { return ((bigEndian) ? makeIntB(index) : makeIntL(index)); } }
@Override public int getInt(final int index) { checkDispose(); checkIndex(index); if (upperBound - index >= 4) { return activeBuffer.getInt(toActiveBufferPos(index)); } else { return ((bigEndian) ? makeIntB(index) : makeIntL(index)); } }