Yate
MessageQueue Class Reference

A message queue. More...

#include <yatengine.h>

Inheritance diagram for MessageQueue:
MessageHook Mutex RefObject Lockable GenObject

Public Member Functions

 MessageQueue (const char *hookName, int numWorkers=0)
 
 ~MessageQueue ()
 
virtual bool enqueue (Message *msg)
 
bool dequeue ()
 
void addFilter (const char *name, const char *value)
 
void removeFilter (const String &name)
 
virtual void clear ()
 
void removeThread (Thread *thread)
 
unsigned int count () const
 
const NamedListgetFilters () const
 
virtual bool matchesFilter (const Message &msg)
 
- Public Member Functions inherited from RefObject
 RefObject ()
 
virtual ~RefObject ()
 
virtual void * getObject (const String &name) const
 
virtual bool alive () const
 
bool ref ()
 
bool deref ()
 
int refcount () const
 
virtual void destruct ()
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual const StringtoString () const
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 
- Public Member Functions inherited from Mutex
 Mutex (bool recursive=false, const char *name=0)
 
 Mutex (const Mutex &original)
 
 ~Mutex ()
 
Mutexoperator= (const Mutex &original)
 
virtual bool lock (long maxwait=-1)
 
virtual bool unlock ()
 
virtual bool locked () const
 
const char * owner () const
 
bool recursive () const
 
virtual MutexlockableMutex ()
 
- Public Member Functions inherited from Lockable
virtual ~Lockable ()
 
virtual bool check (long maxwait=-1)
 
virtual bool unlockAll ()
 
virtual SemaphorelockableSemaphore ()
 
virtual RWLocklockableRWLock ()
 

Protected Member Functions

virtual void received (Message &msg)
 
- Protected Member Functions inherited from RefObject
virtual void zeroRefs ()
 
bool resurrect ()
 
virtual void destroyed ()
 

Friends

class Engine
 

Additional Inherited Members

- Static Public Member Functions inherited from RefObject
static bool alive (const RefObject *obj)
 
static bool efficientIncDec ()
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 
- Static Public Member Functions inherited from Mutex
static int count ()
 
static int locks ()
 
static bool efficientTimedLock ()
 
- Static Public Member Functions inherited from Lockable
static void wait (unsigned long maxwait)
 
static unsigned long wait ()
 
static void startUsingNow ()
 
static void enableSafety (bool safe=true)
 
static bool safety ()
 

Detailed Description

A message queue.

MessageQueue class allows to create a private queue for a message who matches the specified filters.

Constructor & Destructor Documentation

◆ MessageQueue()

MessageQueue ( const char * hookName,
int numWorkers = 0 )

Creates a new message queue.

Parameters
hookNameName of the message served by this queue
numWorkersThe number of workers who serve this queue

◆ ~MessageQueue()

Destroys the message queue

Member Function Documentation

◆ addFilter()

void addFilter ( const char * name,
const char * value )

Add a new filter to this queue

Parameters
nameThe filter name
valueThe filter value

◆ clear()

virtual void clear ( )
virtual

Clear private data

Implements MessageHook.

◆ count()

unsigned int count ( ) const
inline

Helper method to obtain the number of unprocessed messages in the queue

Returns
The number of queued messages.

◆ dequeue()

bool dequeue ( )

Process a message from the waiting queue

Returns
False if the message queue is empty

◆ enqueue()

virtual bool enqueue ( Message * msg)
virtual

Append a message in the queue

Parameters
msgThe message to enqueue, will be destroyed after the processing is done
Returns
True if successfully queued, false otherwise

Implements MessageHook.

◆ getFilters()

const NamedList & getFilters ( ) const
inline

Obtain the filter list for this queue

Returns
The filter list

◆ matchesFilter()

virtual bool matchesFilter ( const Message & msg)
virtual

Check if the given message can be inserted in this queue

Parameters
msgThe message to check
Returns
True if the message can be inserted in this queue

Implements MessageHook.

◆ received()

virtual void received ( Message & msg)
protectedvirtual

Callback method for message processing Default calls Engine::dispatch

Parameters
msgThe message to process

◆ removeFilter()

void removeFilter ( const String & name)

Remove a filter form this queue

Parameters
nameThe filter name

◆ removeThread()

void removeThread ( Thread * thread)

Remove a thread from workers list

Parameters
threadThe thread to remove

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