MAK RTIspy API Documentation for HLA 1.3
execObserverMgr.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2008 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: execObserverMgr.h,v $ $Revision: 1.3 $ $State: Exp $
7 *******************************************************************************/
8 
11 
12 #ifndef DtRtiexecObserverMgr_H_
13 #define DtRtiexecObserverMgr_H_
14 
15 #include "rtiMsConfig.h"
16 #include "rtiMsg.h"
17 #include "rtiMsgCbMgr.h"
18 #include "exec.h"
19 #include <vlutil/vlSmartPointers.h>
20 #include <vlutil/vlTime.h>
21 #include <map>
22 #include <list>
23 
26 class DtRtiExec;
27 class DtFedExec;
28 class DtFedExCbInfo;
29 class DtRtiexecObserver;
30 class DtFederate;
31 class DtSyncPt;
32 class DtTickCallbackInfo;
34 
35 class DtMsgCbInfo {
36 public:
38  DtRtiexecObserver* observer, bool isMomCallback ) :
39  myMsgKind( msgKind ), myFcn( fcn ), myObserver( observer ),
40  myIsMomCallback( isMomCallback ) {}
42 
43  bool operator<(const DtMsgCbInfo& other) const
44  {
45  return ( myMsgKind < other.myMsgKind ||
46  ( myMsgKind == other.myMsgKind && myFcn < other.myFcn ) ||
47  ( myMsgKind == other.myMsgKind && myFcn == other.myFcn && myObserver < other.myObserver ) );
48  }
49 
54 };
55 
59 {
60 
61 public:
62 
65 
67  virtual ~DtRtiexecObserverMgr();
68 
70  virtual void setExec( DtBoost::shared_ptr<DtRtiExec> exec );
71 
73  virtual void addObserver( DtBoost::shared_ptr<DtRtiexecObserver> observer );
74 
76  virtual void removeObserver( DtBoost::shared_ptr<DtRtiexecObserver> observer );
77 
79  virtual void removeAllObservers();
80 
82  virtual void addRtiMsgCallback( DtRtiMsgKind msgKind,
84  bool isMomCallback );
85 
87  virtual void removeRtiMsgCallback( DtRtiMsgKind msgKind,
89  bool isMomCallback );
90 
93  virtual void addTickCallback( DtTickCbFn fcn, DtRtiexecObserver* observer,
94  DtTime interval );
95 
97  virtual void removeTickCallback( DtTickCbFn fcn, DtRtiexecObserver* observer );
98 
101  virtual void addTickCallback( DtTickWithExecCbFn fcn, DtRtiexecObserver* observer,
102  DtTime interval );
103 
105  virtual void removeTickCallback( DtTickWithExecCbFn fcn, DtRtiexecObserver* observer );
106 
108  static void federationCreatedCallback( DtFedExec* exec, void* usr );
109  void federationCreatedCallback( DtFedExec* exec );
110 
112  static void federationDestroyedCallback( DtFedExec* exec, void* usr );
113  void federationDestroyedCallback( DtFedExec* exec );
114 
116  static void federateJoinedCallback( DtFederate* federate, void* usr );
117  void federateJoinedCallback( DtFedExec* exec, DtFederate* federate );
118 
120  static void federateResignedCallback( DtFederate* federate, void* usr );
121  void federateResignedCallback( DtFedExec* exec, DtFederate* federate );
122 
124  static void syncPtRegisteredCallback( DtSyncPt* pt, void* usr );
125  void syncPtRegisteredCallback( DtFedExec* exec, DtSyncPt* pt );
126 
128  static void federationSynchronizedCallback( DtSyncPt* pt, void* usr );
129  void federationSynchronizedCallback( DtFedExec* exec, DtSyncPt* pt );
130 
132  static void syncPtAchievedCallback( DtFederate* fed, DtSyncPt* pt, void* usr );
133  void syncPtAchievedCallback( DtFedExec* exec, DtFederate* fed, DtSyncPt* pt );
134 
136  static void federateDisconnectedCallback( DtFederate* fed, void* usr );
137  void federateDisconnectedCallback( DtFedExec* exec, DtFederate* fed );
138 
140  static void federateReconnectSucceededCallback( DtFederate* fed, void* usr );
141  void federateReconnectSucceededCallback( DtFedExec* exec, DtFederate* fed);
142 
144  static void federateReconnectFailedCallback( DtFederate* fed, void* usr );
145  void federateReconnectFailedCallback( DtFedExec* exec, DtFederate* fed);
146 
148  static void updateLogFileNameCallback( const DtFilename& logFile, void* usr );
149  void updateLogFileNameCallback( const DtFilename& logFile );
150 
152  virtual unsigned long connectionId() const;
153 
154 protected:
155 
158 
160  DtRtiexecObserverMgr& operator=( const DtRtiexecObserverMgr& orig );
161 
162 protected:
163 
164  typedef std::map<DtFedExec*, DtFedExCbInfo*> DtFedexToCbInfoMap;
165  typedef std::set<DtMsgCbInfo> DtMsgCbSet;
166  typedef std::set<DtTickCallbackInfo> DtTickCbSet;
167  typedef std::set<DtTickWithExecCallbackInfo> DtTickWithExecCbSet;
168  typedef std::list< DtBoost::shared_ptr<DtRtiexecObserver> > DtExecObsList;
169 
171  DtBoost::shared_ptr<DtRtiExec> myExec;
172 
175 
178 
181 
184 
187 };
188 
189 
190 #endif
191 
192 

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)