Class BlockingCircularQueue

java.lang.Object
com.gargoylesoftware.base.trace.BlockingCircularQueue
All Implemented Interfaces:
Serializable

public class BlockingCircularQueue extends Object implements Serializable

Internal use only.

.

A circular queue with blocking semantics.

Version:
$Revision: 1.7 $
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • getLock_

      private final Object getLock_
    • addLock_

      private final Object addLock_
    • queue_

      private final Object[] queue_
    • capacity_

      private final int capacity_
    • size_

      private int size_
    • front_

      private int front_
    • back_

      private int back_
  • Constructor Details

    • BlockingCircularQueue

      public BlockingCircularQueue()
      Create the queue with a capacity of 20
    • BlockingCircularQueue

      public BlockingCircularQueue(int capacity)
      Create the queue with the specified capacity
      Parameters:
      capacity - The size of the queue
  • Method Details

    • clear

      public void clear()
      Remove all items from the queue
    • add

      public boolean add(Object object)
      Add an object to the queue. If the collection is currently full then block until an object is removed.
      Parameters:
      object - The object to add.
      Returns:
      true if the object was successfully added.
    • next

      public Object next()
      Return the next item in the queue. The returned item is removed from the collection. If no objects are present then block until an object has been added.
      Returns:
      The next item.
    • incrementPosition

      private int incrementPosition(int position)
      Utility method to increment the position and roll back to zero once we hit the end. Return the new position after the adjustment.
      Parameters:
      position - The position to increment
      Returns:
      the new position
    • size

      public int size()
      Return the number of objects currently in the collection.
      Returns:
      The object count.
    • isEmpty

      public boolean isEmpty()
      Return true if the collection is empty.
      Returns:
      true if the collection is empty.
    • toString

      public String toString()
      Return a string representation of this object.
      Overrides:
      toString in class Object
      Returns:
      a string representation of this object.
    • assertNotNull

      protected final void assertNotNull(String fieldName, Object fieldValue) throws DetailedNullPointerException
      Verify that the specified value is not null. If it is then throw an exception
      Parameters:
      fieldName - The name of the field to check
      fieldValue - The value of the field to check
      Throws:
      DetailedNullPointerException - If fieldValue is null