#include <BoundedQueue.h>

Public Member Functions | |
BoundedQueue (size_t capacity) | |
virtual | ~BoundedQueue () |
Destroy this Queue. | |
size_t | capacity () |
virtual void | add (const T &item) |
virtual bool | add (const T &item, unsigned long timeout) |
virtual T | next () |
virtual T | next (unsigned long timeout) |
virtual void | cancel () |
virtual bool | isCanceled () |
virtual size_t | size () |
virtual size_t | size (unsigned long timeout) |
virtual bool | empty () |
virtual bool | empty (unsigned long timeout) |
virtual void | acquire () |
virtual bool | tryAcquire (unsigned long timeout) |
virtual void | release () |
![]() | |
virtual | ~Queue () |
Destroy a Queue. | |
virtual void | add (const T &item)=0 |
virtual bool | add (const T &item, unsigned long timeout)=0 |
virtual T | next ()=0 |
virtual T | next (unsigned long timeout)=0 |
virtual void | cancel ()=0 |
virtual size_t | size ()=0 |
virtual size_t | size (unsigned long timeout)=0 |
virtual bool | empty () |
virtual bool | empty (unsigned long timeout) |
![]() | |
virtual | ~Cancelable () |
Destroy a Cancelable object. | |
virtual void | cancel ()=0 |
virtual bool | isCanceled ()=0 |
![]() | |
virtual | ~Lockable () |
Destroy a Lockable object. | |
virtual void | acquire ()=0 |
virtual bool | tryAcquire (unsigned long timeout)=0 |
virtual void | release ()=0 |
Detailed Description
class ZThread::BoundedQueue< T, LockType, StorageType >
- Date
- <2003-07-16T13:54:04-0400>
- Version
- 2.3.0
A BoundedQueue provides serialized access to a set of values. It differs from other Queues by adding a maximum capacity, giving it the following properties:
- Threads calling the empty() methods will be blocked until the BoundedQueue becomes empty.
- Threads calling the next() methods will be blocked until the BoundedQueue has a value to return.
- Threads calling the add() methods will be blocked until the number of values in the Queue drops below the maximum capacity.
- See also
- Queue
Constructor & Destructor Documentation
◆ BoundedQueue()
|
inline |
Create a BoundedQueue with the given capacity.
- Parameters
-
capacity maximum number of values to allow in the Queue at at any time
Member Function Documentation
◆ acquire()
|
inlinevirtual |
Acquire the Lockable object.
This method may or may not block the caller for an indefinite amount of time. Those details are defined by specializations of this class.
- Exceptions
-
Interrupted_Exception thrown if the calling thread is interrupted before the operation completes.
- Postcondition
- The Lockable is acquired only if no exception was thrown.
Implements Lockable.
◆ add() [1/2]
|
inlinevirtual |
Add a value to this Queue.
If the number of values in the queue matches the value returned by capacity() then the calling thread will be blocked until at least one value is removed from the Queue.
- Parameters
-
item value to be added to the Queue
- Exceptions
-
Cancellation_Exception thrown if this Queue has been canceled. Interrupted_Exception thrown if the thread was interrupted while waiting to add a value
- Precondition
- The Queue should not have been canceled prior to the invocation of this function.
- Postcondition
- If no exception is thrown, a copy of item will have been added to the Queue.
- See also
- Queue::add(const T& item)
Implements Queue< T >.
◆ add() [2/2]
|
inlinevirtual |
Add a value to this Queue.
If the number of values in the queue matches the value returned by capacity() then the calling thread will be blocked until at least one value is removed from the Queue.
- Parameters
-
item value to be added to the Queue timeout maximum amount of time (milliseconds) this method may block the calling thread.
- Returns
- true if a copy of item can be added before timeout milliseconds elapse.
- false otherwise.
- Exceptions
-
Cancellation_Exception thrown if this Queue has been canceled. Interrupted_Exception thrown if the thread was interrupted while waiting to add a value
- Precondition
- The Queue should not have been canceled prior to the invocation of this function.
- Postcondition
- If no exception is thrown, a copy of item will have been added to the Queue.
Implements Queue< T >.
◆ cancel()
|
inlinevirtual |
Cancel this queue.
- Postcondition
- Any threads blocked by an add() function will throw a Cancellation_Exception.
- Any threads blocked by a next() function will throw a Cancellation_Exception.
- See also
- Queue::cancel()
Implements Queue< T >.
◆ capacity()
|
inline |
Get the maximum capacity of this Queue.
- Returns
- size_t maximum capacity
◆ empty() [1/2]
|
inlinevirtual |
Test whether any values are available in this Queue.
The calling thread is blocked until there are no values present in the Queue.
- Returns
- true if there are no values available.
- false if there are values available.
- See also
- Queue::empty()
Reimplemented from Queue< T >.
◆ empty() [2/2]
|
inlinevirtual |
Test whether any values are available in this Queue.
The calling thread is blocked until there are no values present in the Queue.
- Parameters
-
timeout maximum amount of time (milliseconds) this method may block the calling thread.
- Returns
- true if there are no values available.
- false if there are values available.
- Exceptions
-
Timeout_Exception thrown if timeout milliseconds expire before a value becomes available
- See also
- Queue::empty()
Reimplemented from Queue< T >.
◆ isCanceled()
|
inlinevirtual |
- See also
- Queue::isCanceled()
Implements Cancelable.
◆ next() [1/2]
|
inlinevirtual |
Retrieve and remove a value from this Queue.
If invoked when there are no values present to return then the calling thread will be blocked until a value arrives in the Queue.
- Returns
- T next available value
- Exceptions
-
Cancellation_Exception thrown if this Queue has been canceled. Interrupted_Exception thrown if the thread was interrupted while waiting to retrieve a value
- Precondition
- The Queue should not have been canceled prior to the invocation of this function.
- Postcondition
- The value returned will have been removed from the Queue.
Implements Queue< T >.
◆ next() [2/2]
|
inlinevirtual |
Retrieve and remove a value from this Queue.
If invoked when there are no values present to return then the calling thread will be blocked until a value arrives in the Queue.
- Parameters
-
timeout maximum amount of time (milliseconds) this method may block the calling thread.
- Returns
- T next available value
- Exceptions
-
Cancellation_Exception thrown if this Queue has been canceled. Timeout_Exception thrown if the timeout expires before a value can be retrieved.
- Precondition
- The Queue should not have been canceled prior to the invocation of this function.
- Postcondition
- The value returned will have been removed from the Queue.
Implements Queue< T >.
◆ release()
|
inlinevirtual |
◆ size() [1/2]
|
inlinevirtual |
- See also
- Queue::size()
Implements Queue< T >.
◆ size() [2/2]
|
inlinevirtual |
Implements Queue< T >.
◆ tryAcquire()
|
inlinevirtual |
Attempt to acquire the Lockable object.
This method may or may not block the caller for a definite amount of time. Those details are defined by specializations of this class; however, this method includes a timeout value that can be used to limit the maximum amount of time that a specialization could block.
- Parameters
-
timeout - maximum amount of time (milliseconds) this method could block
- Returns
- Exceptions
-
Interrupted_Exception thrown if the calling thread is interrupted before the operation completes.
- Postcondition
- The Lockable is acquired only if no exception was thrown.
Implements Lockable.
The documentation for this class was generated from the following file:
- BoundedQueue.h