MAK RTIspy API Documentation for HLA 1.3
Public Types | Public Member Functions | Protected Types | Protected Attributes
DtMessageCallbackManager< T_Message, T_MessageKind > Class Template Reference

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 >:

List of all members.

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.
DtMessageCallbackManageroperator= (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< DtCallbackInfoDtCallbackList
 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.

Detailed Description

template<typename T_Message, typename T_MessageKind>
class DtMessageCallbackManager< T_Message, T_MessageKind >

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.

Parameters:
T_Message- the message class
T_MessageKind- the message kind enumeration type

Member Typedef Documentation

template<typename T_Message, typename T_MessageKind>
typedef void(* DtMessageCallbackManager< T_Message, T_MessageKind >::DtCallbackFcn)(const T_Message &msg, void *userData)
template<typename T_Message, typename T_MessageKind>
typedef std::pair<DtCallbackFcn, void*> DtMessageCallbackManager< T_Message, T_MessageKind >::DtCallbackInfo [protected]

The callback function and user data passed to it.

template<typename T_Message, typename T_MessageKind>
typedef std::list<DtCallbackInfo> DtMessageCallbackManager< T_Message, T_MessageKind >::DtCallbackList [protected]

A callback function list.

template<typename T_Message, typename T_MessageKind>
typedef std::map<T_MessageKind, DtCallbackList> DtMessageCallbackManager< T_Message, T_MessageKind >::DtCallbackMap [protected]

A map from message kind to a list of callback functions.


Constructor & Destructor Documentation

template<typename T_Message , typename T_MessageKind >
DtMessageCallbackManager< T_Message, T_MessageKind >::DtMessageCallbackManager ( )

Constructor - Default.

template<typename T_Message , typename T_MessageKind >
DtMessageCallbackManager< T_Message, T_MessageKind >::DtMessageCallbackManager ( const DtMessageCallbackManager< T_Message, T_MessageKind > &  orig)
template<typename T_Message , typename T_MessageKind >
DtMessageCallbackManager< T_Message, T_MessageKind >::~DtMessageCallbackManager ( )

Destructor.


Member Function Documentation

template<typename T_Message , typename T_MessageKind>
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.

Exceptions:
MAKRti::DtExceptionif function is NULL

Referenced by DtConnectionMgr::addMsgCallback().

template<typename T_Message , typename T_MessageKind >
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().

template<typename T_Message , typename T_MessageKind>
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().

template<typename T_Message , typename T_MessageKind >
DtMessageCallbackManager< T_Message, T_MessageKind > & DtMessageCallbackManager< T_Message, T_MessageKind >::operator= ( const DtMessageCallbackManager< T_Message, T_MessageKind > &  orig)
template<typename T_Message, typename T_MessageKind >
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().

template<typename T_Message , typename T_MessageKind>
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().

template<typename T_Message , typename T_MessageKind >
void DtMessageCallbackManager< T_Message, T_MessageKind >::removeWildcardMsgCallback ( DtCallbackFcn  fcn,
void *  userData 
)

Remove a function callback for the given user data.

Referenced by DtConnectionMgr::removeWildcardMsgCallback().


Member Data Documentation

template<typename T_Message, typename T_MessageKind>
DtCallbackMap DtMessageCallbackManager< T_Message, T_MessageKind >::myCallbacks [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=().

template<typename T_Message, typename T_MessageKind>
DtCallbackList DtMessageCallbackManager< T_Message, T_MessageKind >::myWildcardCallbacks [protected]

A list of callbacks processed for all message kinds.


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

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)