fesa::MsgQueueFactory Class Reference

This static class generates message queues on demand and stores the queues in a map. More...

#include <MsgQueueFactory.h>

List of all members.

Public Member Functions

 ~MsgQueueFactory ()
 Destructor.

Static Public Member Functions

static AbstractMsgQueuegetOrCreateMsgQueue (const std::string &name, uint32_t queuelength, bool blocking)
 searches for a queue with the specified name and creates a new one in case it does not find it

Static Private Attributes

static std::map< std::string,
AbstractMsgQueue * > 
blockingIPCQueueCol_
 Collection of blocking message queues key ---> name of the key element ---> abstract queue linked to the name.
static std::map< std::string,
AbstractMsgQueue * > 
nonBlockingIPCQueueCol_
 Collection of non blocking message queues key ---> name of the key element ---> abstract queue linked to the name.
static std::map< std::string,
AbstractMsgQueue * > 
localQueueCol_
 Collection of local message queues key ---> name of the key element ---> abstract queue linked to the name.

Detailed Description

This static class generates message queues on demand and stores the queues in a map.

Definition at line 20 of file MsgQueueFactory.h.


Constructor & Destructor Documentation

fesa::MsgQueueFactory::~MsgQueueFactory (  ) 

Destructor.

Definition at line 81 of file MsgQueueFactory.cpp.

References blockingIPCQueueCol_, localQueueCol_, and nonBlockingIPCQueueCol_.


Member Function Documentation

AbstractMsgQueue * fesa::MsgQueueFactory::getOrCreateMsgQueue ( const std::string &  name,
uint32_t  queuelength,
bool  blocking 
) [static]

searches for a queue with the specified name and creates a new one in case it does not find it

Parameters:
name The name of the requested Message queue
queuelength the maximum length of the message queue
blocking the access to the queue can be blocking or not
Exceptions:
Throws FesaErrorQueuenameDuplication exception when a second message queue with same name but different length exists
Returns:
the MessageQueue

Definition at line 31 of file MsgQueueFactory.cpp.

References blockingIPCQueueCol_, FesaErrorQueuenameDuplication, fesa::AbstractEquipment::getInstance(), fesa::AbstractEquipment::getProcessType(), fesa::AbstractMsgQueue::getQueueLength(), localQueueCol_, nonBlockingIPCQueueCol_, and fesa::unsplit.

Referenced by fesa::AbstractEventSourceFactory::createOnDemandEventSource(), fesa::NotificationConsumer::NotificationConsumer(), and fesa::NotificationProducer::NotificationProducer().


Member Data Documentation

std::map< std::string, AbstractMsgQueue * > fesa::MsgQueueFactory::blockingIPCQueueCol_ [static, private]

Collection of blocking message queues key ---> name of the key element ---> abstract queue linked to the name.

Definition at line 46 of file MsgQueueFactory.h.

Referenced by getOrCreateMsgQueue(), and ~MsgQueueFactory().

std::map< std::string, AbstractMsgQueue * > fesa::MsgQueueFactory::localQueueCol_ [static, private]

Collection of local message queues key ---> name of the key element ---> abstract queue linked to the name.

Definition at line 60 of file MsgQueueFactory.h.

Referenced by getOrCreateMsgQueue(), and ~MsgQueueFactory().

std::map< std::string, AbstractMsgQueue * > fesa::MsgQueueFactory::nonBlockingIPCQueueCol_ [static, private]

Collection of non blocking message queues key ---> name of the key element ---> abstract queue linked to the name.

Definition at line 53 of file MsgQueueFactory.h.

Referenced by getOrCreateMsgQueue(), and ~MsgQueueFactory().


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

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1