![]() |
MAK RTIspy API Documentation for HLA 1.3
|
The DtMessageCallbackManager template can be instantiated to declare a message callback manager for a given message class. More...
Inheritance diagram for DtMessageCallbackManager< T_Message, T_MessageKind >:
Collaboration diagram for DtMessageCallbackManager< T_Message, T_MessageKind >:Public Types | |
| typedef void(* | DtCallbackFcn )(const T_Message &msg, void *userData) |
Public Member Functions | |
| DtMessageCallbackManager () | |
| Constructor - Default. | |
| DtMessageCallbackManager (const DtMessageCallbackManager &orig) | |
| Constructor - Copy. | |
| ~DtMessageCallbackManager () | |
| Destructor. | |
| DtMessageCallbackManager & | operator= (const DtMessageCallbackManager &orig) |
| Operator - Assignment. | |
| void | addMsgCallback (T_MessageKind k, DtCallbackFcn fcn, void *userData) |
| Add a callback function for the given message kind and user data. | |
| void | removeMsgCallback (T_MessageKind k, DtCallbackFcn fcn, void *userData) |
| Remove a callback function for the given message kind and user data. | |
| void | addWildcardMsgCallback (DtCallbackFcn fcn, void *userData) |
| /brief Add a function callback for the given user data. | |
| void | removeWildcardMsgCallback (DtCallbackFcn fcn, void *userData) |
| Remove a function callback for the given user data. | |
| void | processMsg (const T_Message &msg) const |
| Call the callbacks registered for the msg's kind. | |
| int | numCallbacks (T_MessageKind k) |
| Return the number of callbacks registered for the msg kind. | |
Protected Types | |
| typedef std::pair < DtCallbackFcn, void * > | DtCallbackInfo |
| The callback function and user data passed to it. | |
| typedef std::list< DtCallbackInfo > | DtCallbackList |
| A callback function list. | |
| typedef std::map < T_MessageKind, DtCallbackList > | DtCallbackMap |
| A map from message kind to a list of callback functions. | |
Protected Attributes | |
| DtCallbackMap | myCallbacks |
| A map of message kinds to callback list. | |
| DtCallbackList | myWildcardCallbacks |
| A list of callbacks processed for all message kinds. | |
The DtMessageCallbackManager template can be instantiated to declare a message callback manager for a given message class.
The resulting message callback manager is used to register callbacks for specific message kinds. Processing a message will result in the invocation of all functions registered for the message kind. The callbacks are registered with user data that is supplied as a parameter to the function call. Typically, the user data is a pointer to the class instance that is registering a static function. The static function then performs a cast of the user data to the class and invokes a virtual function to handle the message.
| T_Message | - the message class |
| T_MessageKind | - the message kind enumeration type |
| typedef void(* DtMessageCallbackManager< T_Message, T_MessageKind >::DtCallbackFcn)(const T_Message &msg, void *userData) |
|
protected |
The callback function and user data passed to it.
|
protected |
A callback function list.
|
protected |
A map from message kind to a list of callback functions.
| DtMessageCallbackManager< T_Message, T_MessageKind >::DtMessageCallbackManager | ( | ) |
Constructor - Default.
| DtMessageCallbackManager< T_Message, T_MessageKind >::DtMessageCallbackManager | ( | const DtMessageCallbackManager< T_Message, T_MessageKind > & | orig | ) |
Constructor - Copy.
References DtMessageCallbackManager< T_Message, T_MessageKind >::myCallbacks.
| DtMessageCallbackManager< T_Message, T_MessageKind >::~DtMessageCallbackManager | ( | ) |
Destructor.
| void DtMessageCallbackManager< T_Message, T_MessageKind >::addMsgCallback | ( | T_MessageKind | k, |
| DtCallbackFcn | fcn, | ||
| void * | userData | ||
| ) |
Add a callback function for the given message kind and user data.
The function is called for messages of the given kind with the user data as a parameter.
| MAKRti::DtException | if function is NULL |
Referenced by DtConnectionMgr::addMsgCallback().
| void DtMessageCallbackManager< T_Message, T_MessageKind >::addWildcardMsgCallback | ( | DtCallbackFcn | fcn, |
| void * | userData | ||
| ) |
/brief Add a function callback for the given user data.
The function is called for all messages with the user data as a parameter.
Referenced by DtConnectionMgr::addWildcardMsgCallback().
| int DtMessageCallbackManager< T_Message, T_MessageKind >::numCallbacks | ( | T_MessageKind | k | ) |
Return the number of callbacks registered for the msg kind.
Referenced by DtConnectionMgr::momProcessMsg(), DtRtiShmQNetMgr::processMsg(), and DtConnectionMgr::processMsg().
| DtMessageCallbackManager< T_Message, T_MessageKind > & DtMessageCallbackManager< T_Message, T_MessageKind >::operator= | ( | const DtMessageCallbackManager< T_Message, T_MessageKind > & | orig | ) |
Operator - Assignment.
References DtMessageCallbackManager< T_Message, T_MessageKind >::myCallbacks.
| void DtMessageCallbackManager< T_Message, T_MessageKind >::processMsg | ( | const T_Message & | msg | ) | const |
Call the callbacks registered for the msg's kind.
Referenced by DtConnectionMgr::momProcessMsg(), DtRtiShmQNetMgr::processMsg(), and DtConnectionMgr::processMsg().
| void DtMessageCallbackManager< T_Message, T_MessageKind >::removeMsgCallback | ( | T_MessageKind | k, |
| DtCallbackFcn | fcn, | ||
| void * | userData | ||
| ) |
Remove a callback function for the given message kind and user data.
Referenced by DtConnectionMgr::removeMsgCallback().
| void DtMessageCallbackManager< T_Message, T_MessageKind >::removeWildcardMsgCallback | ( | DtCallbackFcn | fcn, |
| void * | userData | ||
| ) |
Remove a function callback for the given user data.
Referenced by DtConnectionMgr::removeWildcardMsgCallback().
|
protected |
A map of message kinds to callback list.
Each callback list holds callbacks for the specific message kind.
Referenced by DtMessageCallbackManager< T_Message, T_MessageKind >::DtMessageCallbackManager(), and DtMessageCallbackManager< T_Message, T_MessageKind >::operator=().
|
protected |
A list of callbacks processed for all message kinds.