Class IoEventQueueThrottle

java.lang.Object
org.apache.mina.filter.executor.IoEventQueueThrottle
All Implemented Interfaces:
EventListener, IoEventQueueHandler

public class IoEventQueueThrottle extends Object implements IoEventQueueHandler
Throttles incoming or outgoing events.
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
      A logger for this class
    • eventSizeEstimator

      private final IoEventSizeEstimator eventSizeEstimator
      The event size estimator instance
    • threshold

      private volatile int threshold
    • lock

      private final Object lock
    • counter

      private final AtomicInteger counter
      The number of events we hold
    • waiters

      private int waiters
  • Constructor Details

    • IoEventQueueThrottle

      public IoEventQueueThrottle()
      Creates a new IoEventQueueThrottle instance
    • IoEventQueueThrottle

      public IoEventQueueThrottle(int threshold)
      Creates a new IoEventQueueThrottle instance
      Parameters:
      threshold - The events threshold
    • IoEventQueueThrottle

      public IoEventQueueThrottle(IoEventSizeEstimator eventSizeEstimator, int threshold)
      Creates a new IoEventQueueThrottle instance
      Parameters:
      eventSizeEstimator - The IoEventSizeEstimator instance
      threshold - The events threshold
  • Method Details

    • getEventSizeEstimator

      public IoEventSizeEstimator getEventSizeEstimator()
      Returns:
      The IoEventSizeEstimator instance
    • getThreshold

      public int getThreshold()
      Returns:
      The events threshold
    • getCounter

      public int getCounter()
      Returns:
      The number of events currently held
    • setThreshold

      public void setThreshold(int threshold)
      Sets the events threshold
      Parameters:
      threshold - The events threshold
    • accept

      public boolean accept(Object source, IoEvent event)
      Specified by:
      accept in interface IoEventQueueHandler
      Parameters:
      source - The source of event
      event - The received event
      Returns:
      true if and only if the specified >event is allowed to be offered to the event queue. The event is dropped if false is returned.
    • offered

      public void offered(Object source, IoEvent event)
      Invoked after the specified event has been offered to the event queue.
      Specified by:
      offered in interface IoEventQueueHandler
      Parameters:
      source - The source of event
      event - The received event
    • polled

      public void polled(Object source, IoEvent event)
      Invoked after the specified event has been polled from the event queue.
      Specified by:
      polled in interface IoEventQueueHandler
      Parameters:
      source - The source of event
      event - The received event
    • estimateSize

      private int estimateSize(IoEvent event)
    • logState

      private void logState()
    • block

      protected void block()
    • unblock

      protected void unblock()