MAK RTIspy API Documentation for HLA Evolved
fedex.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: fedex.h,v $ $Revision: 1.24 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtFedExec_H_
13 #define DtFedExec_H_
14 
15 #include <rtiMsConfig.h>
16 #include <vlutil/vlString.h>
17 #include <vlutil/vlUtil.h>
18 #include "vlThreadedObject.h"
19 #include <rtiApiTypes.h>
20 #include <connection.h>
21 #include <resignMsg.h>
22 #include <fomMgr.h>
23 
24 #include "federate.h"
25 #include "timeInfoList.h"
27 #include "execCmds.h"
29 
30 #include <joinRespMsg.h>
31 #include <savRespMsg.h>
32 #include <syncPointMsg.h>
33 #include <savFinMsg.h>
34 #include <resEndMsg.h>
35 
36 #include "mtl/fedReader13.h"
37 #include "mtl/fedReader1516.h"
38 #include "mtl/fedReader1516e.h"
39 
40 
41 class DtRidFileTester;
42 
45 class DtRIDParameters;
46 class DtSyncPt;
47 class DtTimeInfo;
48 
49 class DtAliveMsg;
51 class DtConstrainedSyncMsg;
52 class DtDisableMsg;
53 class DtEnableRegulationMsg;
54 class DtEnableConstrainedMsg;
55 class DtJoinConfirmMsg;
56 class DtJoinMsg;
57 class DtNextEventRequestMsg;
58 class DtOwnershipMsg;
59 class DtResignMsg;
60 class DtRestoreBegunMsg;
63 class DtAbortRestoreMsg;
64 class DtSaveBegunMsg;
65 class DtSaveCompleteMsg;
66 class DtSaveRequestMsg;
67 class DtSaveRequestTsoMsg;
68 class DtAbortSaveMsg;
69 class DtInitiatedSaveMsg;
71 class DtSyncPointMsg;
73 class DtTimeAdvanceRequestMsg;
74 class DtReserveNameMsg;
77 class DtFedExec;
78 class DtFedJoinInfo;
82 
83 #ifdef DtIFSPEC1516
84 #define RTINAMESPACE rti1516
85 #elif defined(DtIFSPEC1516E)
86 #define RTINAMESPACE rti1516e
87 #else
88 // TODO Unimplemented for HLA 1.3
89 #endif
90 
92 typedef DtFedExec* (*DtFedExecCreator)(DtConnectionMgr* connMgr,
93  const std::vector<unsigned int> & crcs,
94  DtString const & fedExName,
95  std::string const & timeImplName,
96  MAKRti::DtFomType fedType,
97  const DtString& momModuleName,
98  const std::vector<DtString>& fedFileName,
99  int fedExHandle,
100  DtRIDParameters* params,
101  unsigned int momModuleCrc);
102 
103 
105 typedef void (*DtFederateCbFn)(DtFederate* federate, void* usr);
106 
108 typedef void (*DtFederateCbFn)(DtFederate* handle, void* usr );
109 
111 typedef void (*DtSyncPointCbFn)(DtSyncPt* pt, void* usr);
112 
114 typedef void (*DtSyncPointAchievedCbFn)(DtFederate* who, DtSyncPt* pt, void* usr);
115 
117 typedef std::map<DtFederateHandle, DtFederate*> DtFederateHandleInfoMap;
118 
120 typedef std::map<DtString, DtFederate*> DtFederateNameInfoMap;
121 
122 
124 {
125 
126 protected:
127 
129  DtFedExec(DtConnectionMgr* connMgr,
130  const std::vector<unsigned int> & crcs, DtString const & fedExName,
131  std::string const & timeImplName, MAKRti::DtFomType fedType,
132  const DtString& momModuleName,
133  const std::vector<DtString >& modules,
134  int fedExHandle, DtRIDParameters* params, unsigned int momModuleCrc);
135 
136 public:
137 
139  virtual ~DtFedExec();
140 
142  virtual DtConnectionMgr* connectMgr();
143 
145  virtual DtLogicalTimeFactory* fedTimeFactory();
146 
148  virtual const DtString& fedExName() const;
149 
151  virtual int fedExHandle() const;
152 
155  virtual const DtString& fedFileName() const;
156 
158  virtual const std::vector<DtString>& fomModules() const;
159 
161  virtual bool fullyCreated() const;
162 
164  virtual void setFullyCreated(bool val);
165 
167  virtual unsigned long creatorID() const;
168 
170  virtual void createDistributor( const unsigned long initiatingFedID,
171  const DtString& momModuleName,
172  const std::vector<DtString>& fomModules );
173 
175  virtual int numFederates() const;
176 
179  virtual DtFederate* getFederate(DtFederateHandle handle);
180 
183  virtual DtFederateHandle federateHandleOfConnection(unsigned long connId) const;
184 
186  virtual void disconnectFederate( DtFederate* fed );
187 
189  virtual bool removeFederateConnection(unsigned long id);
190 
195  virtual bool restoreFederateConnection( DtFederateHandle handle,
196  unsigned long newConnId, unsigned long& oldConnId);
197 
199  virtual void reconnectFederateSucceeded( DtFederate* fed );
200 
202  virtual void reconnectFederateFailed( DtFederate* fed );
203 
205  virtual bool resignFederate(DtFederateHandle handle,
206  DtResignAction action, DtResignReason reason );
207 
214  virtual void resetClockForHeartBeat();
215 
217  virtual bool tick();
218 
220  virtual void printFederates();
221 
223  virtual void addFederateJoinedCallback(DtFederateCbFn fn, void* usr);
224 
226  virtual void removeFederateJoinedCallback(DtFederateCbFn fn, void* usr);
227 
229  virtual void addFederateResignedCallback(DtFederateCbFn fn, void* usr);
230 
232  virtual void removeFederateResignedCallback(DtFederateCbFn fn, void* usr);
233 
236  virtual void addSyncPtRegisteredCallback(DtSyncPointCbFn fn, void* usr);
237 
240  virtual void removeSyncPtRegisteredCallback(DtSyncPointCbFn fn, void* usr);
241 
244  virtual void addSyncPtAchievedCallback(DtSyncPointAchievedCbFn fn, void* usr);
245 
248  virtual void removeSyncPtAchievedCallback(DtSyncPointAchievedCbFn fn, void* usr);
249 
252  virtual void addFederationSynchronizedCallback(DtSyncPointCbFn fn, void* usr);
253 
256  virtual void removeFederationSynchronizedCallback(DtSyncPointCbFn fn, void* usr);
257 
259  virtual void addFederateDisconnectedCallback(DtFederateCbFn fn, void* usr );
260 
262  virtual void removeFederateDisconnectedCallback(DtFederateCbFn fn, void* usr );
263 
264  //Register callbacks for federate reconnect.
265  virtual void addFederateReconnectSucceededCallback(DtFederateCbFn fn, void* usr );
266 
267  //Unregister callbacks for federate reconnect.
268  virtual void removeFederateReconnectSucceededCallback(DtFederateCbFn fn, void* usr );
269 
270  //Register callbacks for federate reconnect.
271  virtual void addFederateReconnectFailedCallback(DtFederateCbFn fn, void* usr );
272 
273  // Unregister callbacks for federate reconnect.
274  virtual void removeFederateReconnectFailedCallback(DtFederateCbFn fn, void* usr );
275 
277  void multFileReceivedCb( const DtFomModuleDistributionMsg& msg );
278 
280  void multFileRequestedCb( const DtFomModuleRequestMsg& msg );
281 
283  void pushFomModuleToJoinedFederates(DtFederate* newFederate,
284  DtString fileName,
285  unsigned int fileSize,
286  const char* fileBuffer );
287 
289  void pushFomModuleToSingleFederate(DtFederateHandle recipient,
290  DtString fileName,
291  unsigned int fileSize,
292  const char* fileBuffer );
293 
295  virtual void processRequestedModulesArrived( const DtRequestedModulesArrivedEvent& e );
296 
298  virtual void processFedFileRequestMsg( const DtFedFileRequestMsgEvent& e);
299 
301  virtual void processFileTransfer(const DtFedExTakeFileEvent& e);
302 
304  virtual DtFederateHandleInfoMap const& federates() const;
305 
306 #ifdef DtTIME
307 
308  virtual const DtTimeInfoList* regulatingFederates() const;
309 
311  virtual const DtTimeInfoList* constrainedFederates() const;
312 #endif
313 
315  virtual void disableNetworkTesting();
316 
318  virtual void enableNetworkTesting();
319 
321  virtual void changeLatencyTestMode( DtFederateHandle handle, bool runTest,
322  bool continuous, bool haltContinuous, bool observing,
323  unsigned int interactionPeriod, unsigned int numInteractions,
324  unsigned int payloadBytes );
325 
327  virtual bool transferRidParams(DtFederateHandle handle, const DtString& ridString);
328 
329 public:
330 
333 
334  static void processJoinMsg(const DtJoinMsg& msg, void* usr);
335  static void processJoinConfirm(const DtJoinConfirmMsg& msg, void* usr);
336  static void processAlive(const DtAliveMsg& msg,void* usr);
337  static void processResign(const DtResignMsg& msg, void* usr);
338  static void processSyncPoint(const DtSyncPointMsg& msg, void* usr);
339  static void processSyncPointQuery(const DtSyncPointQueryMsg& msg, void* usr);
340  static void processSaveRequest(const DtSaveRequestMsg& msg, void* usr);
341  static void processInitiatedSave(const DtInitiatedSaveMsg& msg, void* usr);
342  static void processSaveComplete(const DtSaveCompleteMsg& msg, void* usr);
343  static void processSaveBegun(const DtSaveBegunMsg& msg, void* usr);
344  static void processAbortSave(const DtAbortSaveMsg& msg, void* usr);
345  static void processRestoreRequest(const DtRestoreRequestMsg& msg, void* usr);
346  static void processRestoreBegun(const DtRestoreBegunMsg& msg, void* usr);
347  static void processRestoreComplete(const DtRestoreCompleteMsg& msg,
348  void* usr);
349  static void processAbortRestore(const DtAbortRestoreMsg& msg, void* usr);
350  static void processOwnership(const DtOwnershipMsg& msg, void* usr);
351  static void processReserveName(DtReserveNameMsg const& msg, void* usr);
352  static void processReserveMultiName(DtReserveMultiNameMsg const& msg, void* usr);
353  static void processReleaseMultiName(DtReleaseMultiNameMsg const& msg, void* usr);
354  static void processQuerySaveStatus(DtQuerySaveStatusMsg const& msg,
355  void* usr);
356  static void processQueryRestoreStatus(DtQueryRestoreStatusMsg const& msg,
357  void* usr);
358 #ifdef DtTIME
359  static void processSaveTimeAdvance(const DtSaveTimeAdvanceMsg& msg, void* usr);
360  static void processSaveRequestTso(const DtSaveRequestTsoMsg& msg, void* usr);
361  static void processEnableRegulation(const DtEnableRegulationMsg& msg,
362  void* usr);
363  static void processEnableConstrained(const DtEnableConstrainedMsg& msg,
364  void* usr);
365  static void processTimeAdvanceRequest(const DtTimeAdvanceRequestMsg& msg,
366  void* usr);
367  static void processDisable(const DtDisableMsg& msg, void* usr);
368  static void processConstrainedSync(const DtConstrainedSyncMsg& msg,
369  void* usr);
370  static void processNextEventRequest(const DtNextEventRequestMsg& msg,
371  void* usr);
372 #endif
373 
374 
376  static void multFileReceivedCb( const DtFomModuleDistributionMsg& msg, void* usr );
377 
379  static void multFileRequestedCb( const DtFomModuleRequestMsg& msg, void* usr );
380 
382  static DtFedExec* create(DtConnectionMgr* connMgr,
383  const std::vector<unsigned int> & crcs,
384  DtString const & fedExName,
385  std::string const & timeImplName,
386  MAKRti::DtFomType fedType,
387  DtString const& momModuleName,
388  const std::vector<DtString>& fomModules,
389  int fedExHandle,
390  DtRIDParameters* params,
391  unsigned int momModuleCrc);
392 
396  static void setCreatorFunction(DtFedExecCreator creator);
397 
398  static void init( DtRtiAssistantExecClient* assistant );
399 
400 protected:
401 
403  virtual const std::map< unsigned long, const std::vector<DtString>*>& joinFomModules() const;
404 
405  virtual const std::vector<DtString>& joinFomModulesForConnection(unsigned long connID) const;
406 
408  virtual const std::vector<DtString>& createFomModules() const;
409 
412 
413  virtual void processJoinMsg(const DtJoinMsg& msg);
414  virtual bool handleJoinFailureCases( const DtJoinMsg &msg );
415  virtual void requestFedFileUpload( const DtJoinMsg& msg );
416 
417  virtual void processJoinConfirm(const DtJoinConfirmMsg& msg);
418  virtual void processAlive(const DtAliveMsg& msg);
419  virtual void processResign(const DtResignMsg& msg);
420  virtual void processSyncPoint(const DtSyncPointMsg& msg);
421  virtual void processSyncPointQuery(const DtSyncPointQueryMsg& msg);
422  virtual void processSaveRequest(const DtSaveRequestMsg& msg);
423  virtual void processInitiatedSave(const DtInitiatedSaveMsg& msg);
424  virtual void processSaveComplete(const DtSaveCompleteMsg& msg);
425  virtual void processSaveBegun(const DtSaveBegunMsg& msg);
426  virtual void processAbortSave(const DtAbortSaveMsg& msg);
427  virtual void processRestoreRequest(const DtRestoreRequestMsg& msg);
428  virtual void processRestoreBegun(const DtRestoreBegunMsg& msg);
429  virtual void processRestoreComplete(const DtRestoreCompleteMsg& msg);
430  virtual void processAbortRestore(const DtAbortRestoreMsg& msg);
431  virtual void processOwnership(const DtOwnershipMsg& msg);
432  virtual void processReserveName(DtReserveNameMsg const& msg);
433  virtual void processReserveMultiName(DtReserveMultiNameMsg const& msg);
434  virtual void processReleaseMultiName(DtReleaseMultiNameMsg const& msg);
435  virtual void processQuerySaveStatus(DtQuerySaveStatusMsg const& msg);
436  virtual void processQueryRestoreStatus(DtQueryRestoreStatusMsg const& msg);
437 
438 #ifdef DtTIME
439  virtual void processEnableRegulation(const DtEnableRegulationMsg& msg);
440  virtual void processEnableConstrained(const DtEnableConstrainedMsg& msg);
441  virtual void processTimeAdvanceRequest(const DtTimeAdvanceRequestMsg& msg);
442  virtual void processDisable(const DtDisableMsg& msg);
443  virtual void processConstrainedSync( const DtConstrainedSyncMsg& msg);
444  virtual void processSaveRequestTso(const DtSaveRequestTsoMsg& msg);
445  virtual void processSaveTimeAdvance(const DtSaveTimeAdvanceMsg& msg);
446  virtual void processNextEventRequest(const DtNextEventRequestMsg& msg);
447 #endif
448 
450 
452  virtual void processRegisterSyncPoint(const DtSyncPointMsg& msg);
453 
455  virtual void processAchievedSyncPoint(const DtSyncPointMsg& msg);
456 
458  virtual void createSyncPoint(const DtSyncPointMsg& msg);
459 
461  virtual void processSyncPtAchievedCallbacks(DtSyncPt* point,
462  DtFederate* federate);
463 
465  virtual void processFederationSynchronizedCallbacks(DtSyncPt* point);
466 
470  virtual bool synchronized(DtSyncPt* point,
471  DtFederateHandleSet& unsuccessfulSet) const;
472 
474  virtual void sendSyncPointReport(const DtSyncPointQueryMsg& msg);
475 
477  virtual void sendSyncPointStatusReport(const DtSyncPointQueryMsg& msg);
478 
480  virtual DtFederate* addFederate(
481  const char* federateType, const char* federateName, DtFederateHandle handle,
482  unsigned long connHandle, int astntCompId, const char* fedHostName,
483  MAKRti::DtInetAddr host, DtHlaVersionId hlaVersion);
484 
487  virtual DtFederate* createFederate(
488  const char* federateType, const char* federateName,
489  DtFederateHandle handle, unsigned long connHandle, int astntCompId,
490  const char* fedHostname, MAKRti::DtInetAddr host,
491  DtHlaVersionId hlaVersion);
492 
494  virtual bool isMember(DtFederateHandle handle) const;
495 
498  virtual bool deleteFederate(DtFederateHandle handle);
499 
501 
503  virtual bool processCreateReady();
504 
506  virtual void processJoin(unsigned long connID, const DtFedJoinInfo* fedInfo);
507 
509  virtual void processJoinReady();
510 
512  virtual void destroyDistributor();
513 
515  virtual DtAsyncFileDistributorRunnable* distributor() const;
516 
522  virtual unsigned int numberFederatesAllowed(unsigned int numPartners) const;
523 
525  virtual void resetControl();
526 
528  virtual bool tickDistributor();
529 
531  virtual bool processEvents();
532 
533 protected:
534 
535 
536  DtFedReader * getReader(DtFomType theFomType);
537  DtFedReader * getReader( DtFomType theFomType, DtFomClassMgr* target);
538 
539  void populateWithUnknownFoms(std::vector<DtString> & mods, std::vector<DtString> & requestedMods);
540  bool isFomAvailable(const DtString & fomName);
541  bool doesCrcMatchKnownFomModuleCrc( const DtString & fomName, unsigned int myTakenFomCrc );
542 
544  virtual bool fedFileReady(const MAKRti::DtString& fileName) const;
545 
547  virtual bool fedFilesReady( const std::vector<MAKRti::DtString>* fileNames ) const;
548 
550  virtual bool addJoinFomModuleForConnection( unsigned long connId,
551  const std::vector<MAKRti::DtString>& modulesFromJoinRequest );
552 
554  virtual void removeJoinFomModuleForConnection( unsigned long connID );
555 
557 
559  virtual void tickSaveRestore();
560 
563  virtual void tickJoin();
564 
567  virtual void tickFederates();
568 
571 
572  virtual void sendSyncPointMsg(
573  DtSyncMsgType kind, int id,
574  DtSyncPointStatus status,
575  const char* name,
576  RTINAMESPACE::VariableLengthData const* theTag = NULL,
577  const DtFederateHandleSet* set = NULL,
578  const DtFederateHandleSet* unsuccessfulSet = NULL);
579 
580  virtual void sendResignMsg(
581  const char* name, DtFederateHandle fedHandle,
582  DtResignAction action, DtResignReason reason,
583  const DtTimeInfo* timeInfo );
584  virtual void sendEnableDisableNetworkTestingMsg(
585  const char* name, bool enabled );
586  virtual void sendTransferRidParamsMsg(
587  const char* name, DtFederateHandle fedHandle, const DtString& paramString);
588  virtual void sendJoinResponseMsg(unsigned long destinationIDValue,
589  unsigned short requestID, unsigned int crcOfFedFile, DtFederateHandle handle,
590  const char* federateName, int fedExHandle, const char* fedExName,
591  const DtString& momModule, const std::vector<MAKRti::DtString>& modules,
592  unsigned long flags, bool allowNetworkTesting, bool enableNetworkTesting,
593  DtHlaVersionId hlaVers,
595  const DtString& errorString = DtString::nullString());
596  virtual void sendSaveInitiateMsg(const char* labelVal);
597  virtual void sendSaveInitiateConstrainedMsg(const char* labelVal);
598  virtual void sendSaveResponse(DtFederateHandle fedHandle,
599  unsigned long requestID, const char* labelVal,
600  DtSaveResponseFlag response);
601  virtual void sendDesignatedFederate(DtFederateHandle fedHandle);
602  virtual void sendNameReservedMsg(DtFederateHandle requestingFederate,
603  char const* objectName, bool result);
604  virtual void sendMultiNameReservedMsg( DtFederateHandle requestingFederate,
605  std::set< std::wstring > const & objectNames,
606  bool result );
607 
608  virtual void sendRestoreStatus(DtFederateHandle requestingFederate,
609  RTINAMESPACE::FederateRestoreStatusVector const & restoreStatusList);
610 
611  virtual void sendSaveStatus(DtFederateHandle requestingFederate,
612  RTINAMESPACE::FederateHandleSaveStatusPairVector const & saveStatusList);
613 
614 #ifdef DtTIME
615  virtual void sendRegulationEnabledMsg(
616  DtFederateHandle handle,
617  DtRtiApiTime const & time);
618  virtual void sendConstrainedEnabledMsg(
619  DtFederateHandle handle,
620  DtRtiApiTime const & time,
621  DtRtiApiTime const & lbts);
622  virtual void sendLbtsMsg(DtFederateHandle laggardFederate,
623  DtRtiApiTime const & lbtsVal,
624  DtRtiApiTime const & lagLbtsVal);
625  virtual void sendNerLbtsMsg(
626  unsigned long nerCycle, DtFederateHandle laggardFederate,
627  bool nerPending, bool lagNerPending,
628  DtRtiApiTime const & lbtsVal,
629  DtRtiApiTime const & lagLbtsVal);
630  virtual void sendSyncConstrainedMsg();
631  virtual void sendResumeConstrainedMsg(DtFederateHandle laggardFederate,
632  DtRtiApiTime const & lbtsVal,
633  DtRtiApiTime const & lagLbtsVal);
634  virtual void sendSaveTimeMsg(char const* label,
635  DtRtiApiTime const & saveTime);
636 #endif
637 
638 
639 
640 
641  virtual void retireSyncPoint(const char* name);
642 
645  virtual void announceAllSyncPoints(DtFederateHandle hand);
646 
648  virtual void checkTimedSave();
649 
651  virtual void initiateSave(const char* label);
652 
655  virtual bool save( const char* label );
656 
659  virtual int initializeRestore( const char* label );
660 
663  virtual bool restore( const char* label );
664 
666  virtual void endSave(DtSaveFinishedResult result);
667 
669  virtual void endRestore(DtEndRestoreResult restoreResult);
670 
673  virtual DtString& getSaveFileName(const char* label, MAKRti::DtString& fileName,
674  bool extendName=true);
675 
678  virtual DtString& getRestoreFileName(const char* label, MAKRti::DtString& fileName);
679 
680 #ifdef DtTIME
681 
682  virtual void resignFederateTime(DtFederateHandle federateHandle);
683 
685  void disableFederateTimeRegulation(DtFederateHandle federateHandle);
686 
688  void removeRegulatingEntry(DtTimeInfo* entry);
689 
691  virtual void checkPendingConstrained(DtRtiApiTime const & lbts);
692 
694  virtual void checkPendingConstrained(DtTimeInfo* entry,
695  DtRtiApiTime const & lbts);
696 
699  virtual bool becomeConstrained(DtTimeInfo* entry);
700 
703  void adjustRegulatingEntry(DtTimeInfo* entry,
704  DtRtiApiTime const & time,
705  DtRtiApiTimeInterval const & lookahead,
706  bool isTimeAvailable);
707 
709  void checkNerCycle(DtFederateHandle fedHandle);
710 
712  virtual void processEnableRegulation(DtFederateHandle federateHandle,
713  DtRtiApiTime const & time,
714  DtRtiApiTimeInterval const & lookahead);
715 
718  virtual void processPendingRegulation(DtFederateHandle federateHandle,
719  DtRtiApiTime const & time,
720  DtRtiApiTimeInterval const & lookahead);
721 
723 
724 
725 
726 
727  virtual DtRtiApiTime& getTempTime();
729  virtual void putTempTime(DtRtiApiTime& timePtr);
731  virtual void destroyTempTimePool();
733 
735  virtual DtFederateHandle minLbtsFederate() const;
736 
738  virtual DtRtiApiTime const & minLbts() const;
739 
741  virtual DtRtiApiTime const & lagLbts() const;
742 
745  virtual bool minTimeAvailable() const;
746 
749  virtual bool lagTimeAvailable() const;
750 
752  virtual DtFederateHandle minNerLbtsFederate() const;
753 
755  virtual DtRtiApiTime const & minNerLbts() const;
756 
758  virtual DtRtiApiTime const & lagNerLbts() const;
759 
761  virtual bool minNerPending() const;
762 
764  virtual bool lagNerPending() const;
765 
767  virtual void setSaveTime(DtRtiApiTime const & timeVal);
768 
770  virtual DtRtiApiTime const & saveTime() const;
771 
772 #endif
773 
776  virtual int getNextFreeFedHandle();
777 
778 
780  DtFedExec();
781 
783  DtFedExec(const DtFedExec& orig);
784  DtFedExec& operator=(DtFedExec const& orig);
785 
786 protected:
788  unsigned int myCrcOfFedFile;
791  DtString myFedExName;
794  std::map< MAKRti::DtString, DtFederateHandle > myFederateHdlsByName;
797  DtString myMomModule;
798  unsigned int myMomModuleCrc;
799  std::vector<unsigned int> myCreationFedFilesCRCs;
800  MAKRti::DtFomType myFedType;
801  std::vector<DtString> myFomModules;
802  // ! This will be a Map with the keys being a FOM module name, and the value being its CRC.
803  // ! This map is populated at create and join
804  std::map<DtString, unsigned int> myFomModulesNameToCrcMap;
805  std::set<DtString> myFomModulesSet;
806  std::vector<DtString> myCreateFomModules;
807  std::map<unsigned long, const std::vector<DtString>* >myJoinFomModules;
812 
813  std::set< unsigned long > myConnectionsProcessJoined;
814 
816  std::map<DtFederateHandle, DtFedJoinInfo*> myJoiningFederates;
817  std::map<unsigned long, DtFedJoinInfo*> myJoiningFederatesByID;
822 
823  bool mySave;
824  bool myRestore;
825  std::set<DtFederateHandle> myPendingSaveFederates;
827  DtString mySaveLabel;
829  std::set<DtFederateHandle> myPendingRestoreFederates;
832  DtString mySavePath;
835  // When files are received from distributor, store them here until requester takes them.
836  std::map<DtString, DtFileInformation*> myTakenFiles;
837 
839  unsigned long myCreatorConnId;
840  std::set< unsigned long> myAwaitingJoinUpload;
842 
845 
854 
855  typedef std::set<std::string> DtFedExReservedNameSet;
856  typedef std::map< DtFederateHandle, DtFedExReservedNameSet >
860 
861 #ifdef DtTIME
862  DtLogicalTimeFactory* myLogicalTimeFactory;
863  DtTimeInfoList myRegulatingFederates;
864  DtTimeInfoList myConstrainedFederates;
865  DtTimeInfoList myPendingConstrained;
866  DtTimeInfoList myPendingTar;
867  DtTimeInfoList myPendingRegulation;
868  DtTimeInfoList myNerLbtsList;
869  DtTimeInfoList myNerRequested;
870  DtTimeInfoList myNerPending;
871  bool myNewNerRequestPending;
872  bool myForceNerCycle;
873  bool myTransmitLaggardLBTS;
874  DtList mySyncConstrained;
875  unsigned long myNerCycle;
876  DtFederateHandle myNerFederate;
877  DtList myTempTimePool;
878  std::auto_ptr<DtRtiApiTime> myPositiveInfinity;
879  std::auto_ptr<DtRtiApiTime> mySaveTime;
880  std::auto_ptr<DtRtiApiTime> myNerLbts;
881  std::auto_ptr<DtRtiApiTime> myLagNerLbts;
882 #endif
883 
886  static const std::vector<DtString> theEmptyStringSet;
889  unsigned long myInitiatorID;
895 
896  DtClock myClock;
897 
899 
900 protected:
901 
903  //DtFedReaderFactory myFedReaderFactory;
904  DtFedReader13 * myFedReader13;
905  DtFedReader1516 * myFedReader1516;
906  DtFedReader1516e * myFedReader1516e;
907 
908 private:
909  static const DtString nullStr;
911 };
912 
913 
914 
915 #endif
916 

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)