MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
messageCallbackManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: messageCallbackManager.h,v $ $Revision: 1.4 $ $State: Exp $
7 *********************************************************************/
8 
9 #ifndef DtMessageCallbackManager_H_
10 #define DtMessageCallbackManager_H_
11 
16 
17 #include <list>
18 #include <map>
19 #include <vlutil/vlExceptions.h>
20 
21 
34 template <typename T_Message, typename T_MessageKind>
36 {
37 public:
38 
39  typedef void (*DtCallbackFcn)(const T_Message& msg, void* userData);
40 
41 protected:
42  //DDW: Would have liked to have used simple struct with named members here,
43  //but vc7 complained about missing a == operator in list remove operation
45  typedef std::pair<DtCallbackFcn, void*> DtCallbackInfo;
47  typedef std::list<DtCallbackInfo> DtCallbackList;
49  typedef std::map<T_MessageKind, DtCallbackList> DtCallbackMap;
50 
51 public:
52 
55 
58 
61 
64 
68  //
70  void addMsgCallback(T_MessageKind k,
71  DtCallbackFcn fcn, void* userData);
72 
74  void removeMsgCallback(T_MessageKind k,
75  DtCallbackFcn fcn, void* userData);
76 
79  void addWildcardMsgCallback(DtCallbackFcn fcn, void* userData);
80 
82  void removeWildcardMsgCallback(DtCallbackFcn fcn, void* userData);
83 
85  void processMsg(const T_Message& msg) const;
86 
88  int numCallbacks(T_MessageKind k);
89 
90 
91 protected:
92 
96 
99 
100 };
101 
102 #include "messageCallbackManager.inl"
103 
104 #endif
105 
106 
void(* DtCallbackFcn)(const T_Message &msg, void *userData)
Definition: messageCallbackManager.h:39
void addMsgCallback(T_MessageKind k, DtCallbackFcn fcn, void *userData)
Add a callback function for the given message kind and user data.
std::list< DtCallbackInfo > DtCallbackList
A callback function list.
Definition: messageCallbackManager.h:47
The DtMessageCallbackManager template can be instantiated to declare a message callback manager for a...
Definition: messageCallbackManager.h:35
void removeWildcardMsgCallback(DtCallbackFcn fcn, void *userData)
Remove a function callback for the given user data.
std::pair< DtCallbackFcn, void * > DtCallbackInfo
The callback function and user data passed to it.
Definition: messageCallbackManager.h:45
void addWildcardMsgCallback(DtCallbackFcn fcn, void *userData)
/brief Add a function callback for the given user data.
int numCallbacks(T_MessageKind k)
Return the number of callbacks registered for the msg kind.
~DtMessageCallbackManager()
Destructor.
void processMsg(const T_Message &msg) const
Call the callbacks registered for the msg&#39;s kind.
std::map< T_MessageKind, DtCallbackList > DtCallbackMap
A map from message kind to a list of callback functions.
Definition: messageCallbackManager.h:49
DtMessageCallbackManager()
Constructor - Default.
DtCallbackMap myCallbacks
A map of message kinds to callback list.
Definition: messageCallbackManager.h:95
DtCallbackList myWildcardCallbacks
A list of callbacks processed for all message kinds.
Definition: messageCallbackManager.h:98
DtMessageCallbackManager & operator=(const DtMessageCallbackManager &orig)
Operator - Assignment.
void removeMsgCallback(T_MessageKind k, DtCallbackFcn fcn, void *userData)
Remove a callback function for the given message kind and user data.

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)