/** * The capacity of the data structure to hold entries. * * @return the size of the RingBuffer. * @see com.lmax.disruptor.Sequencer#getBufferSize() */ public long getBufferSize() { return ringBuffer.getBufferSize(); }
public long capacity() { return _buffer.getBufferSize(); }
public long getUsage() { if (ringBuffer == null) { return 0; } return (long) ringBuffer.getBufferSize() - ringBuffer.remainingCapacity(); }
@Override public long getUsage() { return ringBuffer.getBufferSize() - ringBuffer.remainingCapacity(); }
safelyRegister(metricRegistry, GlobalMetricNames.INPUT_BUFFER_SIZE, constantGauge(ringBuffer.getBufferSize()));
@Test(timeout = 1000) public void shouldTrackRemainingCapacity() throws Exception { final long[] remainingCapacity = {-1}; //Given final EventHandler<TestEvent> eventHandler = new EventHandler<TestEvent>() { @Override public void onEvent(final TestEvent event, final long sequence, final boolean endOfBatch) throws Exception { remainingCapacity[0] = disruptor.getRingBuffer().remainingCapacity(); } }; disruptor.handleEventsWith(eventHandler); //When publishEvent(); //Then while (remainingCapacity[0] == -1) { Thread.sleep(100); } assertThat(remainingCapacity[0], is(ringBuffer.getBufferSize() - 1L)); assertThat(disruptor.getRingBuffer().remainingCapacity(), is(ringBuffer.getBufferSize() - 0L)); }
@Test public void shouldThrowExceptionIfBufferIsFull() throws Exception { ringBuffer.addGatingSequences(new Sequence(ringBuffer.getBufferSize())); try { for (int i = 0; i < ringBuffer.getBufferSize(); i++) { ringBuffer.publish(ringBuffer.tryNext()); } } catch (Exception e) { fail("Should not of thrown exception"); } try { ringBuffer.tryNext(); fail("Exception should have been thrown"); } catch (InsufficientCapacityException e) { } }
/** * The capacity of the data structure to hold entries. * * @return the size of the RingBuffer. * @see com.lmax.disruptor.Sequencer#getBufferSize() */ public long getBufferSize() { return ringBuffer.getBufferSize(); }
@Test public void shouldClaimAndGetMultipleMessages() throws Exception { int numMessages = ringBuffer.getBufferSize(); for (int i = 0; i < numMessages; i++) { ringBuffer.publishEvent(StubEvent.TRANSLATOR, i, ""); } long expectedSequence = numMessages - 1; long available = sequenceBarrier.waitFor(expectedSequence); assertEquals(expectedSequence, available); for (int i = 0; i < numMessages; i++) { assertEquals(i, ringBuffer.get(i).getValue()); } }
@Test public void shouldWrap() throws Exception { int numMessages = ringBuffer.getBufferSize(); int offset = 1000; for (int i = 0; i < numMessages + offset; i++) { ringBuffer.publishEvent(StubEvent.TRANSLATOR, i, ""); } long expectedSequence = numMessages + offset - 1; long available = sequenceBarrier.waitFor(expectedSequence); assertEquals(expectedSequence, available); for (int i = offset; i < numMessages + offset; i++) { assertEquals(i, ringBuffer.get(i).getValue()); } }
LOG.info("Starting QueryLoggerDisruptor for with ringbufferSize=" + disruptor.getRingBuffer().getBufferSize() + ", waitStrategy=" + waitStrategy.getClass().getSimpleName() + ", " + "exceptionHandler=" + errorHandler + "...");
@Override public long getCapacity() { return ringBuffer.getBufferSize(); }
/** * The capacity of the data structure to hold entries. * * @return the size of the RingBuffer. * @see com.lmax.disruptor.Sequencer#getBufferSize() */ public long getBufferSize() { return ringBuffer.getBufferSize(); }
@Override public String toString() { return String.format("HashWheelTimer { Buffer Size: %d, Resolution: %d }", wheel.getBufferSize(), resolution); }
@Override public String toString() { return String.format("HashWheelTimer { Buffer Size: %d, Resolution: %d }", wheel.getBufferSize(), resolution); }
public long getUsage() { if (ringBuffer == null) { return 0; } return (long) ringBuffer.getBufferSize() - ringBuffer.remainingCapacity(); }
public static <E> Publisher<Void> writeWith(final Publisher<? extends E> source, final RingBuffer<MutableSignal<E>> ringBuffer) { final NonBlocking nonBlockingSource = NonBlocking.class.isAssignableFrom(source.getClass()) ? (NonBlocking) source : null; final int capacity = nonBlockingSource != null ? (int) Math.min(nonBlockingSource.getCapacity(), ringBuffer.getBufferSize()) : ringBuffer.getBufferSize(); return new WriteWithPublisher<>(source, ringBuffer, capacity); }
/** * @return */ public long getPendingRequests() { return m_ringBuffer.getBufferSize() - m_ringBuffer.remainingCapacity(); }
@Override public void start() { final ExecutorService execService = Executors.newFixedThreadPool(workerThreads); RingBuffer<ServerEvent> ringBuffer = workerPool.start(execService); logger.info("LMAX Disruptor started. Buffer size: {}", ringBuffer.getBufferSize()); requestConsumer.startConsumers(ringBuffer); }
/** * Returns {@code true} if the specified disruptor still has unprocessed events. */ private static boolean hasBacklog(final Disruptor<?> theDisruptor) { final RingBuffer<?> ringBuffer = theDisruptor.getRingBuffer(); return !ringBuffer.hasAvailableCapacity(ringBuffer.getBufferSize()); }