MAK RTIspy API Documentation for HLA 1516
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  static void updateWebServerCallback( const DtInetAddr& webSpyIpAddr, int webSpyPort, void* usr );
153  void updateWebServerCallback( const DtInetAddr& webSpyIpAddr, int webSpyPort );
154 
156  virtual unsigned long connectionId() const;
157 
158 protected:
159 
162 
164  DtRtiexecObserverMgr& operator=( const DtRtiexecObserverMgr& orig );
165 
166 protected:
167 
168  typedef std::map<DtFedExec*, DtFedExCbInfo*> DtFedexToCbInfoMap;
169  typedef std::set<DtMsgCbInfo> DtMsgCbSet;
170  typedef std::set<DtTickCallbackInfo> DtTickCbSet;
171  typedef std::set<DtTickWithExecCallbackInfo> DtTickWithExecCbSet;
172  typedef std::list< DtBoost::shared_ptr<DtRtiexecObserver> > DtExecObsList;
173 
175  DtBoost::shared_ptr<DtRtiExec> myExec;
176 
179 
182 
185 
188 
191 };
192 
193 
194 #endif
195 
196 

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)