MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | 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 >:

Public Types

typedef void(* DtCallbackFcn )(const T_Message &msg, void *userData)
 

Public Member Functions

 DtMessageCallbackManager ()
 Constructor - Default. More...
 
 DtMessageCallbackManager (const DtMessageCallbackManager &orig)
 Constructor - Copy. More...
 
 ~DtMessageCallbackManager ()
 Destructor. More...
 
DtMessageCallbackManageroperator= (const DtMessageCallbackManager &orig)
 Operator - Assignment. More...
 
void addMsgCallback (T_MessageKind k, DtCallbackFcn fcn, void *userData)
 Add a callback function for the given message kind and user data. More...
 
void removeMsgCallback (T_MessageKind k, DtCallbackFcn fcn, void *userData)
 Remove a callback function for the given message kind and user data. More...
 
void addWildcardMsgCallback (DtCallbackFcn fcn, void *userData)
 /brief Add a function callback for the given user data. More...
 
void removeWildcardMsgCallback (DtCallbackFcn fcn, void *userData)
 Remove a function callback for the given user data. More...
 
void processMsg (const T_Message &msg) const
 Call the callbacks registered for the msg's kind. More...
 
int numCallbacks (T_MessageKind k)
 Return the number of callbacks registered for the msg kind. More...
 

Protected Types

typedef std::pair
< DtCallbackFcn, void * > 
DtCallbackInfo
 The callback function and user data passed to it. More...
 
typedef std::list< DtCallbackInfoDtCallbackList
 A callback function list. More...
 
typedef std::map
< T_MessageKind,
DtCallbackList
DtCallbackMap
 A map from message kind to a list of callback functions. More...
 

Protected Attributes

DtCallbackMap myCallbacks
 A map of message kinds to callback list. More...
 
DtCallbackList myWildcardCallbacks
 A list of callbacks processed for all message kinds. More...
 

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)

Constructor - Copy.

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

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.

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

Operator - Assignment.

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.

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.

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.

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.

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

Document ID: Generated on Mon Sep 7 15:40:32 EDT 2020 from SVN revision 217499
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)