Class BlockingBuffer

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable, java.util.Collection, Buffer

    @Deprecated(since="2021-04-30")
    public class BlockingBuffer
    extends SynchronizedBuffer
    Deprecated.
    Commons Collections 3 is in maintenance mode. Commons Collections 4 should be used instead.
    Decorates another Buffer to make get() and remove() block when the Buffer is empty.

    If either get or remove is called on an empty Buffer, the calling thread waits for notification that an add or addAll operation has completed.

    When one or more entries are added to an empty Buffer, all threads blocked in get or remove are notified. There is no guarantee that concurrent blocked get or remove requests will be "unblocked" and receive data in the order that they arrive.

    This class is Serializable from Commons Collections 3.1. This class contains an extra field in 3.2, however the serialization specification will handle this gracefully.

    Since:
    Commons Collections 3.0
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      boolean add​(java.lang.Object o)
      Deprecated.
       
      boolean addAll​(java.util.Collection c)
      Deprecated.
       
      static Buffer decorate​(Buffer buffer)
      Deprecated.
      Factory method to create a blocking buffer.
      static Buffer decorate​(Buffer buffer, long timeoutMillis)
      Deprecated.
      Factory method to create a blocking buffer with a timeout value.
      java.lang.Object get()
      Deprecated.
      Gets the next value from the buffer, waiting until an object is added if the buffer is empty.
      java.lang.Object get​(long timeout)
      Deprecated.
      Gets the next value from the buffer, waiting until an object is added for up to the specified timeout value if the buffer is empty.
      java.lang.Object remove()
      Deprecated.
      Removes the next value from the buffer, waiting until an object is added if the buffer is empty.
      java.lang.Object remove​(long timeout)
      Deprecated.
      Removes the next value from the buffer, waiting until an object is added for up to the specified timeout value if the buffer is empty.
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        clear, contains, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, remove, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArray, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
    • Method Detail

      • decorate

        public static Buffer decorate​(Buffer buffer)
        Deprecated.
        Factory method to create a blocking buffer.
        Parameters:
        buffer - the buffer to decorate, must not be null
        Returns:
        a new blocking Buffer
        Throws:
        java.lang.IllegalArgumentException - if buffer is null
      • decorate

        public static Buffer decorate​(Buffer buffer,
                                      long timeoutMillis)
        Deprecated.
        Factory method to create a blocking buffer with a timeout value.
        Parameters:
        buffer - the buffer to decorate, must not be null
        timeoutMillis - the timeout value in milliseconds, zero or less for no timeout
        Returns:
        a new blocking buffer
        Throws:
        java.lang.IllegalArgumentException - if the buffer is null
        Since:
        Commons Collections 3.2
      • add

        public boolean add​(java.lang.Object o)
        Deprecated.
        Specified by:
        add in interface java.util.Collection
        Overrides:
        add in class SynchronizedCollection
      • addAll

        public boolean addAll​(java.util.Collection c)
        Deprecated.
        Specified by:
        addAll in interface java.util.Collection
        Overrides:
        addAll in class SynchronizedCollection
      • get

        public java.lang.Object get()
        Deprecated.
        Gets the next value from the buffer, waiting until an object is added if the buffer is empty. This method uses the default timeout set in the constructor.
        Specified by:
        get in interface Buffer
        Overrides:
        get in class SynchronizedBuffer
        Returns:
        the next object in the buffer, which is not removed
        Throws:
        BufferUnderflowException - if an interrupt is received
      • get

        public java.lang.Object get​(long timeout)
        Deprecated.
        Gets the next value from the buffer, waiting until an object is added for up to the specified timeout value if the buffer is empty.
        Parameters:
        timeout - the timeout value in milliseconds
        Throws:
        BufferUnderflowException - if an interrupt is received
        BufferUnderflowException - if the timeout expires
        Since:
        Commons Collections 3.2
      • remove

        public java.lang.Object remove()
        Deprecated.
        Removes the next value from the buffer, waiting until an object is added if the buffer is empty. This method uses the default timeout set in the constructor.
        Specified by:
        remove in interface Buffer
        Overrides:
        remove in class SynchronizedBuffer
        Returns:
        the next object in the buffer, which is also removed
        Throws:
        BufferUnderflowException - if an interrupt is received
      • remove

        public java.lang.Object remove​(long timeout)
        Deprecated.
        Removes the next value from the buffer, waiting until an object is added for up to the specified timeout value if the buffer is empty.
        Parameters:
        timeout - the timeout value in milliseconds
        Throws:
        BufferUnderflowException - if an interrupt is received
        BufferUnderflowException - if the timeout expires
        Since:
        Commons Collections 3.2