MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
274  void provideFederateInfo(const DtRtiConnectionInfo& conn,
275  const MAKRti::DtString& federationName, unsigned federateHandle,
276  const DtAssistantFederateInfo** info);
277 
279  void provideFederationInfo(const DtRtiConnectionInfo& conn,
280  const MAKRti::DtString& federationName,
281  const DtAssistantFederationInfo** info);
282 
286  void requestFederateLoc(const DtRtiConnectionInfo& connInfo,
287  const MAKRti::DtString& federationName, unsigned federateHdl);
288 
290  void removeFederationsForRtiexec( const DtAssistantComponentInfo* );
291 
292 signals:
293 
295  void federationAdded(const DtRtiConnectionInfo& conn,
296  const MAKRti::DtString& federationName);
297 
299  void federationUpdated(const DtRtiConnectionInfo& conn,
300  const MAKRti::DtString& federationName);
301 
303  void federationRemoved(const DtRtiConnectionInfo& conn,
304  const MAKRti::DtString& federationName);
305 
307  void federateAdded(const DtRtiConnectionInfo& conn,
308  const MAKRti::DtString& federationName,
309  unsigned federateHandle);
310 
312  void federateUpdated(const DtRtiConnectionInfo& conn,
313  const MAKRti::DtString& federationName,
314  unsigned federateHandle);
315 
317  void federateRemoved(const DtRtiConnectionInfo& conn,
318  const MAKRti::DtString& federationName,
319  unsigned federateHandle);
320 
322  void rtiexecHasNoFederations(const DtRtiConnectionInfo& conn);
323 
326  void federateLocReceived(const DtRtiConnectionInfo& connInfo,
327  const MAKRti::DtString& federationName, unsigned federateHdl,
328  const DtAssistantInfo& astnt, unsigned compId);
329 
330 protected:
331 
332  typedef std::map< DtAssistantInfo, bool > DtRemoteObserversMap;
333  typedef std::map< DtRtiConnectionInfo, DtRemoteObserversMap > DtConnToObserversMap;
334  typedef std::map< DtRtiConnectionInfo, DtFederationStateByNameMap > DtConnToFederationStateMap;
335  typedef std::map< DtRtiConnectionInfo, int > DtConnToCompIdMap;
336 
338  virtual void processRtiexecConnUpdate( const DtRtiConnectionInfoDataPair& rtiexec );
339 
341  virtual void processLightweightConnUpdate( const DtRtiConnectionInfoDataPair& conn );
342 
344  virtual void processConnectionRemoval( const DtRtiConnectionInfoDataPair& conn );
345 
348  virtual bool localFederateInfo(int compId,
349  const DtAssistantFederateInfo** federate,
350  DtAssistantFederationInfo** federation);
351 
352 protected:
353 
355  DtBoost::shared_ptr<DtAssistantComponentMgr> myCompMgr;
356 
358  DtBoost::shared_ptr<DtAssistantConnectionInfoMgr> myConnInfoMgr;
359 
362 
366 
369  std::set< DtRtiConnectionInfo > myRtiexecsRequestedForRemoteStart;
370 
373  std::set< DtRtiConnectionInfo > myRtiexecsStartedByRemoteRequest;
374 
378 
381  std::set< DtRtiConnectionInfo > myRemotelyViewedConnectionsNeedingUpdate;
382 
385 
388 
390  MAKRti::DtClock myClock;
391 
395 
397  std::map<std::pair<int, MAKRti::DtTime>, std::map<int, MAKRti::DtString> > myRequestedRtiexecUpdates;
398 
401 
403  MAKRti::DtTime myLastTickTime;
404 
406  std::map<int, bool> myFederateSignalTickMessages;
407 
409  typedef std::pair<MAKRti::DtString, unsigned> DtFedexFederatePair;
410  typedef std::map<DtRtiConnectionInfo, std::set<DtFedexFederatePair> > DtFedsByConn;
412 
415  static const int theTimeToWaitForExecInfo;
416 
418  typedef std::map< int, DtAssistantFederateInfo > DtFedInfoByCompIdMap;
419  typedef std::pair< MAKRti::DtString, unsigned int >FederationNameFederateHandlePair;
420  typedef std::pair< DtRtiConnectionInfo, FederationNameFederateHandlePair> DtConnectionFederationNameFedHandleTriple;
421  typedef std::map<DtConnectionFederationNameFedHandleTriple, DtAssistantFederateInfo> DtFedInfoByConnFederationPairMap;
424 };
425 
426 #endif

Document ID: Generated on Mon Mar 21 09:41:37 EDT 2016 from SVN revision 163228
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)