@Override public long getPosition() { // if an event was already returned use it's position otherwise use position of next event if // available, kind of strange but seemed to be the old API if (isReturnedEventInitialized()) { return returnedEvent.getPosition(); } switch (state) { case EVENT_AVAILABLE: return nextEvent.getPosition(); default: return UNINITIALIZED; } }
@Override public long getPosition() { // if an event was already returned use it's position otherwise use position of next event if // available, kind of strange but seemed to be the old API if (isReturnedEventInitialized()) { return returnedEvent.getPosition(); } switch (state) { case EVENT_AVAILABLE: return nextEvent.getPosition(); default: return UNINITIALIZED; } }
private int minimalOffsetToPreserve() { if (isReturnedEventInitialized()) { return returnedEvent.getFragmentOffset(); } else if (isNextEventInitialized()) { return nextEvent.getFragmentOffset(); } else { return bufferOffset; } }
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(); } }