UCommon
Public Member Functions
ucommon::queueof< T > Class Template Reference

A templated typed class for thread-safe queue of object pointers. More...

#include <containers.h>

Inheritance diagram for ucommon::queueof< T >:
Inheritance graph
[legend]
Collaboration diagram for ucommon::queueof< T >:
Collaboration graph
[legend]

Public Member Functions

T * fifo (timeout_t timeout=0)
 Get and remove first typed object posted to the queue.
T * lifo (timeout_t timeout=0)
 Get and remove last typed object posted to the queue.
T * operator[] (unsigned offset)
 Examine past item in the queue.
T * peek (unsigned offset=0)
 Examine past item in the queue.
bool post (T *object, timeout_t timeout=0)
 Post a typed object into the queue by it's pointer.
 queueof (mempager *memory, size_t size=0)
 Create templated queue of typed objects.
bool remove (T *object)
 Remove a specific typed object pointer for the queue.
- Public Member Functions inherited from ucommon::queue
size_t getCount (void)
 Get number of object points currently in the queue.
bool post (ObjectProtocol *object, timeout_t timeout=0)
 Post an object into the queue by it's pointer.
 queue (mempager *pager=((void *) 0), size_t number=0)
 Create a queue that uses a memory pager for internally managed member objects for a specified maximum number of object pointers.
bool remove (ObjectProtocol *object)
 Remove a specific object pointer for the queue.
 ~queue ()
 Destroy queue.

Additional Inherited Members

- Static Public Member Functions inherited from ucommon::queue
static size_t count (queue &queue)
 Convenience function to get count of objects in the queue.
static ObjectProtocolfifo (queue &queue, timeout_t timeout=0)
 Convenience function get first object from the queue.
static ObjectProtocollifo (queue &queue, timeout_t timeout=0)
 Convenience function get last object from the queue.
static bool post (queue &queue, ObjectProtocol *object, timeout_t timeout=0)
 Convenience function to post object into the queue.
static bool remove (queue &queue, ObjectProtocol *object)
 Convenience function to remove an object from the queue.
- Protected Attributes inherited from ucommon::queue
size_t limit

Detailed Description

template<class T>
class ucommon::queueof< T >

A templated typed class for thread-safe queue of object pointers.

This allows one to use the queue class in a typesafe manner for a specific object type derived from Object rather than generically for any derived object class.

Author:
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 669 of file containers.h.


Constructor & Destructor Documentation

template<class T >
ucommon::queueof< T >::queueof ( mempager memory,
size_t  size = 0 
)
inline

Create templated queue of typed objects.

Parameters:
memorypool for internal use by queue.
sizeof queue to construct. Uses 0 if no size limit.

Definition at line 677 of file containers.h.


Member Function Documentation

template<class T >
T* ucommon::queueof< T >::fifo ( timeout_t  timeout = 0)
inline

Get and remove first typed object posted to the queue.

This can wait for a specified timeut of the queue is empty. The object is still retained and must be released or deleted by the receiving function.

Parameters:
timeoutto wait if empty in milliseconds.
Returns:
object from queue or NULL if empty and timed out.

Reimplemented from ucommon::queue.

Definition at line 707 of file containers.h.

template<class T >
T* ucommon::queueof< T >::lifo ( timeout_t  timeout = 0)
inline

Get and remove last typed object posted to the queue.

This can wait for a specified timeout of the queue is empty. The object is still retained and must be released or deleted by the receiving function.

Parameters:
timeoutto wait if empty in milliseconds.
Returns:
object from queue or NULL if empty and timed out.

Reimplemented from ucommon::queue.

Definition at line 717 of file containers.h.

template<class T >
T* ucommon::queueof< T >::operator[] ( unsigned  offset)
inline

Examine past item in the queue.

This is a typecast of the peek operation.

Parameters:
offsetin queue.
Returns:
item pointer if valid or NULL.

Reimplemented from ucommon::queue.

Definition at line 735 of file containers.h.

template<class T >
T* ucommon::queueof< T >::peek ( unsigned  offset = 0)
inline

Examine past item in the queue.

This is a typecast of the peek operation.

Parameters:
offsetin queue.
Returns:
item pointer if valid or NULL.

Reimplemented from ucommon::queue.

Definition at line 726 of file containers.h.

template<class T >
bool ucommon::queueof< T >::post ( T *  object,
timeout_t  timeout = 0 
)
inline

Post a typed object into the queue by it's pointer.

This can wait for a specified timeout if the queue is full, for example, for another thread to remove an object pointer. This retains the object.

Parameters:
objectto post.
timeoutto wait if queue is full in milliseconds.
Returns:
true if object posted, false if queue full and timeout expired.

Definition at line 697 of file containers.h.

template<class T >
bool ucommon::queueof< T >::remove ( T *  object)
inline

Remove a specific typed object pointer for the queue.

This can remove a member from any location in the queue, whether beginning, end, or somewhere in the middle. This releases the object.

Parameters:
objectto remove.
Returns:
true if object was removed, false if not found.

Definition at line 686 of file containers.h.

Here is the call graph for this function:


The documentation for this class was generated from the following file: