@Override public void seekToLastEvent() { seek(getLastPosition()); if (isNextEventInitialized()) { checkIfNextEventIsCommitted(); } }
private int minimalOffsetToPreserve() { if (isReturnedEventInitialized()) { return returnedEvent.getFragmentOffset(); } else if (isNextEventInitialized()) { return nextEvent.getFragmentOffset(); } else { return bufferOffset; } }
@Override public void seekToLastEvent() { seek(getLastPosition()); if (isNextEventInitialized()) { checkIfNextEventIsCommitted(); } }
private int minimalOffsetToPreserve() { if (isReturnedEventInitialized()) { return returnedEvent.getFragmentOffset(); } else if (isNextEventInitialized()) { return nextEvent.getFragmentOffset(); } else { return bufferOffset; } }
private void compactBuffer() { // check if an event is wrapped and preserve it if (isReturnedEventInitialized() || isNextEventInitialized()) { final int offsetToCopy = minimalOffsetToPreserve(); // set position to last returned offset byteBuffer.position(offsetToCopy); // compact buffer to move old events to front byteBuffer.compact(); // update buffer offset bufferOffset -= offsetToCopy; // update event offsets if (isNextEventInitialized()) { wrapNextEvent(nextEvent.getFragmentOffset() - offsetToCopy); } if (isReturnedEventInitialized()) { wrapReturnedEvent(returnedEvent.getFragmentOffset() - offsetToCopy); } } else { // otherwise just clear the buffer invalidateBufferAndOffsets(); byteBuffer.clear(); } }
private void compactBuffer() { // check if an event is wrapped and preserve it if (isReturnedEventInitialized() || isNextEventInitialized()) { final int offsetToCopy = minimalOffsetToPreserve(); // set position to last returned offset byteBuffer.position(offsetToCopy); // compact buffer to move old events to front byteBuffer.compact(); // update buffer offset bufferOffset -= offsetToCopy; // update event offsets if (isNextEventInitialized()) { wrapNextEvent(nextEvent.getFragmentOffset() - offsetToCopy); } if (isReturnedEventInitialized()) { wrapReturnedEvent(returnedEvent.getFragmentOffset() - offsetToCopy); } } else { // otherwise just clear the buffer invalidateBufferAndOffsets(); byteBuffer.clear(); } }