@Override public boolean offer(T e) { boolean startNewQueue = this.currentQueue == null || this.currentQueue.isFlushed(); if (startNewQueue) { currentIndex++; if (currentIndex < queues.size()) { currentQueue = queues.get(currentIndex); } else { currentQueue = createSegmentQueue(currentIndex, thresholdBytes); queues.add(currentQueue); } } return this.currentQueue.offer(e); }
private void initMergedQueue() { if (mergedQueue == null && currentIndex >= 0) { mergedQueue = MinMaxPriorityQueue.<MappedByteBufferSegmentQueue<T>> orderedBy( getSegmentQueueComparator()).maximumSize(currentIndex + 1).create(); for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { T re = queue.peek(); if (re != null) { mergedQueue.add(queue); } } } }
@Override public T peek() { initMergedQueue(); if (mergedQueue != null && !mergedQueue.isEmpty()) { return mergedQueue.peek().peek(); } return null; }
@Override public void clear() { for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { queue.clear(); } currentIndex = -1; currentQueue = null; mergedQueue = null; }
@Override public int size() { int size = 0; for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { size += queue.size(); } return size; }
private void initMergedQueue() { if (mergedQueue == null && currentIndex >= 0) { mergedQueue = MinMaxPriorityQueue.<MappedByteBufferSegmentQueue<T>> orderedBy( getSegmentQueueComparator()).maximumSize(currentIndex + 1).create(); for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { T re = queue.peek(); if (re != null) { mergedQueue.add(queue); } } } }
@Override public T poll() { initMergedQueue(); if (mergedQueue != null && !mergedQueue.isEmpty()) { MappedByteBufferSegmentQueue<T> queue = mergedQueue.poll(); T re = queue.poll(); if (queue.peek() != null) { mergedQueue.add(queue); } return re; } return null; }
@Override public void clear() { for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { queue.clear(); } currentIndex = -1; currentQueue = null; mergedQueue = null; }
@Override public boolean offer(T e) { boolean startNewQueue = this.currentQueue == null || this.currentQueue.isFlushed(); if (startNewQueue) { currentIndex++; if (currentIndex < queues.size()) { currentQueue = queues.get(currentIndex); } else { currentQueue = createSegmentQueue(currentIndex, thresholdBytes); queues.add(currentQueue); } } return this.currentQueue.offer(e); }
private void initMergedQueue() { if (mergedQueue == null && currentIndex >= 0) { mergedQueue = MinMaxPriorityQueue.<MappedByteBufferSegmentQueue<T>> orderedBy( getSegmentQueueComparator()).maximumSize(currentIndex + 1).create(); for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { T re = queue.peek(); if (re != null) { mergedQueue.add(queue); } } } }
@Override public T peek() { initMergedQueue(); if (mergedQueue != null && !mergedQueue.isEmpty()) { return mergedQueue.peek().peek(); } return null; }
@Override public void clear() { for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { queue.clear(); } currentIndex = -1; currentQueue = null; mergedQueue = null; }
@Override public boolean offer(T e) { boolean startNewQueue = this.currentQueue == null || this.currentQueue.isFlushed(); if (startNewQueue) { currentIndex++; if (currentIndex < queues.size()) { currentQueue = queues.get(currentIndex); } else { currentQueue = createSegmentQueue(currentIndex, thresholdBytes); queues.add(currentQueue); } } return this.currentQueue.offer(e); }
@Override public T peek() { initMergedQueue(); if (mergedQueue != null && !mergedQueue.isEmpty()) { return mergedQueue.peek().peek(); } return null; }
@Override public int size() { int size = 0; for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { size += queue.size(); } return size; }
@Override public T poll() { initMergedQueue(); if (mergedQueue != null && !mergedQueue.isEmpty()) { MappedByteBufferSegmentQueue<T> queue = mergedQueue.poll(); T re = queue.poll(); if (queue.peek() != null) { mergedQueue.add(queue); } return re; } return null; }
@Override public int size() { int size = 0; for (MappedByteBufferSegmentQueue<T> queue : getSegmentQueues()) { size += queue.size(); } return size; }
@Override public T poll() { initMergedQueue(); if (mergedQueue != null && !mergedQueue.isEmpty()) { MappedByteBufferSegmentQueue<T> queue = mergedQueue.poll(); T re = queue.poll(); if (queue.peek() != null) { mergedQueue.add(queue); } return re; } return null; }