If you can read this text, it means you are not experiencing this website at its best. This website is designed for used with a standards-compliant browser.
Current version: 2.3.1
ZThreads
A platform-independent, multi-threading and synchronization library for C++
Home Documentation Downloads CVS Contact

# BlockingQueue Class Template Reference

`#include <BlockingQueue.h>`

Inheritance diagram for BlockingQueue:

List of all members.

## Public Member Functions
| BlockingQueue ()
| Create a new BlockingQueue.
virtual | ~BlockingQueue ()
| Destroy this BlockingQueue.
virtual void | add (const T &item)
virtual bool | add (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 void | acquire ()
virtual bool | tryAcquire (unsigned long timeout)
virtual void | release ()

## Detailed Description

### template<class T, class LockType, typename StorageType = std::deque<T>>
class ZThread::BlockingQueue< T, LockType, StorageType >

Author:
  Eric Crahen <http://www.code-foo.com>

Date:
  <2003-07-16T12:01:43-0400>

Version:
  2.3.0

Like a LockedQueue, a BlockingQueue is a Queue implementation that provides serialized access to the items added to it. It differs by causing threads accessing the next() methods to block until a value becomes available.

## Member Function Documentation

virtual void acquire | ( |  | ) | `[inline, virtual]`

  | 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.

virtual bool add | ( | T | item,
|  | unsigned long | timeout
| ) | `[inline, virtual]`

| See also: Queue::add(const T& item, unsigned long timeout)

virtual void add | ( | const T & | item | ) | `[inline, virtual]`

| See also: Queue::add(const T& item) Implements Queue.

virtual void cancel | ( |  | ) | `[inline, virtual]`

| See also: Queue::cancel() Postcondition: If threads are blocked on one of the next() functions then they will be awakened with a Cancellation_Exception. Implements Queue.

virtual bool isCanceled | ( |  | ) | `[inline, virtual]`

| See also: Queue::isCanceled() Implements Cancelable.

virtual T next | ( | unsigned long | timeout | ) | `[inline, virtual]`

  | Get a value from this Queue. The calling thread may block indefinitely. 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.
  Interrupted_Exception | thrown if the calling thread is interrupted before a value becomes available.
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. See also: Queue::next(unsigned long timeout) Implements Queue.

virtual T next | ( |  | ) | `[inline, virtual]`

  | Get a value from this Queue. The calling thread may block indefinitely. Returns: T next available value Exceptions:
  Cancellation_Exception | thrown if this Queue has been canceled.
  Interrupted_Exception | thrown if the calling thread is interrupted before a value becomes available.
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. See also: Queue::next() Implements Queue.

virtual void release | ( |  | ) | `[inline, virtual]`

| Release 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. Postcondition: The Lockable is released only if no exception was thrown. Implements Lockable.

virtual size_t size | ( | unsigned long | timeout | ) | `[inline, virtual]`

| See also: Queue::size(unsigned long timeout) Implements Queue.

virtual size_t size | ( |  | ) | `[inline, virtual]`

| See also: Queue::size() Implements Queue.

virtual bool tryAcquire | ( | unsigned long | timeout | ) | `[inline, virtual]`

  | 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: true if the operation completes and the Lockable is acquired before the timeout expires. false if the operation times out before the Lockable can be acquired. 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:

- BlockingQueue.h