Provided by: libcommoncpp2-doc_1.8.1-10_all bug

NAME

       ost::ThreadQueue - Somewhat generic queue processing class to establish a producer
       consumer queue.

SYNOPSIS

       #include <buffer.h>

       Inherits ost::Mutex, ost::Thread, and ost::Semaphore.

   Classes
       struct _data

   Public Member Functions
       ThreadQueue (const char *id, int pri, size_t stack=0)
           Create instance of our queue and give it a process priority.
       virtual ~ThreadQueue ()
           Destroy the queue.
       void setTimer (timeout_t timeout)
           Set the queue timeout.
       void post (const void *data, unsigned len)
           Put some unspecified data into this queue.

   Protected Types
       typedef struct ost::ThreadQueue::_data data_t

   Protected Member Functions
       virtual void final ()
       virtual void startQueue (void)
           Start of dequeing.
       virtual void stopQueue (void)
           End of dequeing, we expect the queue is empty for now.
       virtual void onTimer (void)
           A derivable method to call when the timout is expired.
       virtual void runQueue (void *data)=0
           Virtual callback method to handle processing of a queued data items.

   Protected Attributes
       timeout_t timeout
       bool started
       data_t * first
       data_t * last
       String name

   Additional Inherited Members

Detailed Description

       Somewhat generic queue processing class to establish a producer consumer queue.

       This may be used to buffer cdr records, or for other purposes where an in-memory queue is
       needed for rapid posting. This class is derived from Mutex and maintains a linked list. A
       thread is used to dequeue data and pass it to a callback method that is used in place of
       'run' for each item present on the queue. The conditional is used to signal the run thread
       when new data is posted.

       This class was changed by Angelo Naselli to have a timeout on the queue

       in memory data queue interface.

       Author
           David Sugar dyfet@ostel.com

Member Typedef Documentation

   typedef struct ost::ThreadQueue::_data ost::ThreadQueue::data_t [protected]

Constructor & Destructor Documentation

   ost::ThreadQueue::ThreadQueue (const char * id, int pri, size_t stack = 0)
       Create instance of our queue and give it a process priority.

       Parameters
           id queue ID.
           pri process priority.
           stack stack size.

   virtual ost::ThreadQueue::~ThreadQueue () [virtual]
       Destroy the queue.

Member Function Documentation

   virtual void ost::ThreadQueue::final () [protected],  [virtual]
       Reimplemented from ost::Thread.

   virtual void ost::ThreadQueue::onTimer (void) [protected],  [virtual]
       A derivable method to call when the timout is expired.

   void ost::ThreadQueue::post (const void * data, unsigned len)
       Put some unspecified data into this queue. A new qd structure is created and sized to
       contain a copy of the actual content.

       Parameters
           data pointer to data.
           len size of data.

   virtual void ost::ThreadQueue::runQueue (void * data) [protected],  [pure virtual]
       Virtual callback method to handle processing of a queued data items. After the item is
       processed, it is deleted from memory. We can call multiple instances of runQueue in order
       if multiple items are waiting.

       Parameters
           data item being dequed.

   void ost::ThreadQueue::setTimer (timeout_t timeout)
       Set the queue timeout. When the timer expires, the onTimer() method is called for the
       thread

       Parameters
           timeout timeout in milliseconds.

   virtual void ost::ThreadQueue::startQueue (void) [protected],  [virtual]
       Start of dequeing. Maybe we need to connect a database or something, so we have a
       virtual...

   virtual void ost::ThreadQueue::stopQueue (void) [protected],  [virtual]
       End of dequeing, we expect the queue is empty for now. Maybe we need to disconnect a
       database or something, so we have another virtual.

Member Data Documentation

   data_t* ost::ThreadQueue::first [protected]
   data_t * ost::ThreadQueue::last [protected]
   String ost::ThreadQueue::name [protected]
   bool ost::ThreadQueue::started [protected]
   timeout_t ost::ThreadQueue::timeout [protected]

Author

       Generated automatically by Doxygen for GNU CommonC++ from the source code.