MAK RTIspy API Documentation for HLA 1516
federationsInfoMgr.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2011 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: federationsInfoMgr.h,v $ $Revision: 1.16 $ $State: Exp $
7 *********************************************************************/
8 
9 #ifndef federationsInfoMgr_H_
10 #define federationsInfoMgr_H_
11 
14 
15 #include "rtiMsConfig.h"
16 #include "assistantMgr.h"
17 #include "assistantInfo.h"
18 #include "federationInfo.h"
20 #include <vlutil/vlSmartPointers.h>
21 #include <vlutil/vlTime.h>
22 
24 class DtRtiAssistantPeer;
25 class DtAssistantMsg;
37 class DtAssistantLogMsg;
41 class DtAssistantExitMsg;
48 
52 {
53  Q_OBJECT
54 
55 public:
56 
58  DtAssistantFederationsInfoMgr( DtBoost::shared_ptr<DtRtiAssistantServer> server,
59  DtBoost::shared_ptr<DtRtiAssistantPeer> peer,
60  DtAssistantSignalRouter& signalRouter,
61  DtBoost::shared_ptr<DtAssistantComponentMgr> compMgr,
62  DtBoost::shared_ptr<DtAssistantConnectionInfoMgr> connInfoMgr );
63 
66 
67 private:
68 
71 
74 
75 
76 public:
77 
79  virtual const DtAssistantFederationInfo* federationInfo(
80  const DtRtiConnectionInfo& conn, const MAKRti::DtString& name) const;
81 
83  virtual const DtFederationStateByNameMap* federations(
84  const DtRtiConnectionInfo& conn) const;
85 
87  virtual const DtAssistantFederateInfo* federateInfo(
88  const DtRtiConnectionInfo& conn, const MAKRti::DtString& federationName,
89  unsigned federateHandle);
90 
92  virtual const DtFederateInfoByHandleMap* federates(
93  const DtRtiConnectionInfo& conn, const MAKRti::DtString& federationName) const;
94 
97  virtual bool isLocalRtiexecViewedRemotely(const DtRtiConnectionInfo& conn) const;
98 
100  virtual void tick();
101 
103  virtual void requestSingleUpdateFromConnectedRtiexecs(int id);
104 
107  virtual void pruneTimedOutSingleUpdates();
108 
111  virtual void viewFederationsForConnection(const DtRtiConnectionInfo& conn);
112 
115 
116 
117  static void processObserveMsg( const DtAssistantStateObserveMsg& msg, void* usr );
118 
120  virtual void processObserveMsg( const DtAssistantStateObserveMsg& msg );
121 
123  static void processExecObserveRspMsg( const DtAssistantExecObserveRspMsg& msg, void* usr );
124 
126  virtual void processExecObserveRspMsg( const DtAssistantExecObserveRspMsg& msg );
127 
129  static void processRemoteRtiexecPopupMsg( const DtAssistantPopupMsg& msg, void* usr );
130 
132  virtual void processRemoteRtiexecPopupMsg( const DtAssistantPopupMsg& msg );
133 
136  static void processFederationStateMsg( const DtAssistantFederationStateMsg& msg, void* usr );
137 
140  virtual void processFederationStateMsg( const DtAssistantFederationStateMsg& msg );
141 
143  static void processFederateStateMsg( const DtAssistantFederateStateMsg& msg, void* usr );
144 
147  virtual void processFederateStateMsg( const DtAssistantFederateStateMsg& msg );
148 
151  static void processExecStateMsgForConnection(
152  const DtAssistantExecStateMsg& msg, void* usr );
153 
156  virtual void processExecStateMsgForConnection( const DtAssistantExecStateMsg& msg );
157 
159  static void processTimeStateMsg( const DtAssistantTimeStateMsg& msg, void* usr );
160 
163  virtual void processTimeStateMsg( const DtAssistantTimeStateMsg& msg );
164 
166  static void processSyncPtStateMsg( const DtAssistantSyncPtUpdateMsg& msg, void* usr );
167 
170  virtual void processSyncPtStateMsg( const DtAssistantSyncPtUpdateMsg& msg );
171 
173  static void processAssistantCommandMsg(const DtAssistantCommandMsg& msg, void* usr);
174 
176  virtual void processAssistantCommandMsg(const DtAssistantCommandMsg& msg);
177 
179  static void processFederateDeleteMsg( const DtAssistantDeleteFederateMsg& msg, void* usr );
180 
182  static void processFederationDeleteMsg( const DtAssistantDeleteFederationMsg& msg, void* usr );
183 
185  static void processFederateRequestMsg( const DtAssistantFederateReqMsg& msg, void* usr );
186 
188  virtual void processFederateRequestMsg( const DtAssistantFederateReqMsg& msg );
189 
191  static void processFederateResponseMsg( const DtAssistantFederateRespMsg& msg, void* usr );
192 
194  virtual void processFederateResponseMsg( const DtAssistantFederateRespMsg& msg );
195 
198  static void forwardRtiexecNotifyMsg( const DtAssistantNotifyMsg& msg, void* usr );
199 
202  static void forwardRtiexecPopupMsg( const DtAssistantPopupMsg& msg, void* usr );
203 
206  static void forwardRtiexecLogMsg( const DtAssistantLogMsg& msg, void* usr );
207 
209  static void forwardLogRequestMsg( const DtAssistantLogRequestMsg& msg, void* usr );
210 
213  static void forwardRtiexecExitMsg( const DtAssistantExitMsg& msg, void* usr );
214 
218  virtual void forwardMsgToLocalRtiexec( const DtAssistantMsg& msg,
219  bool sendOnlyIfCommandsAccepted = false );
220 
223  virtual void forwardMsgFromLocalRtiexec( const DtAssistantMsg& msg );
224 
226  static void processSignalTickedMsg( const DtAssistantSignalTickedMsg& msg, void* usr );
227 
229  virtual void processSignalTickedMsg( const DtAssistantSignalTickedMsg& msg );
230 
232 
233 public slots:
234 
236  void processLocalFederateJoined( const DtAssistantComponentInfo* info,
237  const MAKRti::DtString& federateType,
238  const MAKRti::DtString& federateName,
239  unsigned federateHandle,
240  const MAKRti::DtString& federationName,
241  unsigned federationHandle,
242  DtHlaVersionId hlaVersion );
243 
245  void processLocalFederateResigned( const DtAssistantComponentInfo* );
246 
248  void processConnectionsUpdate( const DtRtiConnectionAndConfiguration& conns );
249 
251  void processConnectionsRemoval( const DtRtiConnectionAndConfiguration& conns );
252 
254  void sendAllFederationInfo();
255 
258  void pruneStaleFederationsAndObservers();
259 
261  void startRtiexec( const DtRtiConnectionInfoDataPair& conn,
262  const DtRtiConnectionConfigurationInfo& config,
263  bool requestedRemotely );
264 
267  void updateFederateWarningTickInterval( float interval );
268 
271  void sendObserveFederationsMsg();
272 
275  void processRtiexecWebServerChange(const DtAssistantComponentInfo*);
276 
278  void provideFederateInfo(const DtRtiConnectionInfo& conn,
279  const MAKRti::DtString& federationName, unsigned federateHandle,
280  const DtAssistantFederateInfo** info);
281 
283  void provideFederationInfo(const DtRtiConnectionInfo& conn,
284  const MAKRti::DtString& federationName,
285  const DtAssistantFederationInfo** info);
286 
290  void requestFederateLoc(const DtRtiConnectionInfo& connInfo,
291  const MAKRti::DtString& federationName, unsigned federateHdl);
292 
294  void removeFederationsForRtiexec( const DtAssistantComponentInfo* );
295 
296 signals:
297 
299  void federationAdded(const DtRtiConnectionInfo& conn,
300  const MAKRti::DtString& federationName);
301 
303  void federationUpdated(const DtRtiConnectionInfo& conn,
304  const MAKRti::DtString& federationName);
305 
307  void federationRemoved(const DtRtiConnectionInfo& conn,
308  const MAKRti::DtString& federationName);
309 
311  void federateAdded(const DtRtiConnectionInfo& conn,
312  const MAKRti::DtString& federationName,
313  unsigned federateHandle);
314 
316  void federateUpdated(const DtRtiConnectionInfo& conn,
317  const MAKRti::DtString& federationName,
318  unsigned federateHandle);
319 
321  void federateRemoved(const DtRtiConnectionInfo& conn,
322  const MAKRti::DtString& federationName,
323  unsigned federateHandle);
324 
326  void rtiexecHasNoFederations(const DtRtiConnectionInfo& conn);
327 
330  void viewedWebSpyInfoUpdated(const MAKRti::DtInetAddr& addr, int port);
331 
334  void federateLocReceived(const DtRtiConnectionInfo& connInfo,
335  const MAKRti::DtString& federationName, unsigned federateHdl,
336  const DtAssistantInfo& astnt, unsigned compId);
337 
338 protected:
339 
340  typedef std::map< DtAssistantInfo, bool > DtRemoteObserversMap;
341  typedef std::map< DtRtiConnectionInfo, DtRemoteObserversMap > DtConnToObserversMap;
342  typedef std::map< DtRtiConnectionInfo, DtFederationStateByNameMap > DtConnToFederationStateMap;
343  typedef std::map< DtRtiConnectionInfo, int > DtConnToCompIdMap;
344 
346  virtual void processRtiexecConnUpdate( const DtRtiConnectionInfoDataPair& rtiexec );
347 
349  virtual void processLightweightConnUpdate( const DtRtiConnectionInfoDataPair& conn );
350 
352  virtual void processConnectionRemoval( const DtRtiConnectionInfoDataPair& conn );
353 
356  virtual bool localFederateInfo(int compId,
357  const DtAssistantFederateInfo** federate,
358  DtAssistantFederationInfo** federation);
359 
360 protected:
361 
363  DtBoost::shared_ptr<DtAssistantComponentMgr> myCompMgr;
364 
366  DtBoost::shared_ptr<DtAssistantConnectionInfoMgr> myConnInfoMgr;
367 
370 
374 
377  std::set< DtRtiConnectionInfo > myRtiexecsRequestedForRemoteStart;
378 
381  std::set< DtRtiConnectionInfo > myRtiexecsStartedByRemoteRequest;
382 
386 
389  std::set< DtRtiConnectionInfo > myRemotelyViewedConnectionsNeedingUpdate;
390 
393 
396 
398  MAKRti::DtClock myClock;
399 
403 
405  std::map<std::pair<int, MAKRti::DtTime>, std::map<int, MAKRti::DtString> > myRequestedRtiexecUpdates;
406 
409 
411  MAKRti::DtTime myLastTickTime;
412 
414  std::map<int, bool> myFederateSignalTickMessages;
415 
417  typedef std::pair<MAKRti::DtString, unsigned> DtFedexFederatePair;
418  typedef std::map<DtRtiConnectionInfo, std::set<DtFedexFederatePair> > DtFedsByConn;
420 
423  static const int theTimeToWaitForExecInfo;
424 
426  typedef std::map< int, DtAssistantFederateInfo > DtFedInfoByCompIdMap;
427  typedef std::pair< MAKRti::DtString, unsigned int >FederationNameFederateHandlePair;
428  typedef std::pair< DtRtiConnectionInfo, FederationNameFederateHandlePair> DtConnectionFederationNameFedHandleTriple;
429  typedef std::map<DtConnectionFederationNameFedHandleTriple, DtAssistantFederateInfo> DtFedInfoByConnFederationPairMap;
432 };
433 
434 #endif

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)