MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 #include <resignRespMsg.h>
36 
37 #include "mtl/fedReader13.h"
38 #include "mtl/fedReader1516.h"
39 #include "mtl/fedReader1516e.h"
40 
41 
42 class DtRidFileTester;
43 
46 class DtRIDParameters;
47 class DtSyncPt;
48 class DtTimeInfo;
49 
50 class DtAliveMsg;
52 class DtConstrainedSyncMsg;
53 class DtDisableMsg;
54 class DtEnableRegulationMsg;
55 class DtEnableConstrainedMsg;
56 class DtJoinConfirmMsg;
57 class DtJoinMsg;
58 class DtNextEventRequestMsg;
59 class DtOwnershipMsg;
60 class DtResignMsg;
61 class DtRestoreBegunMsg;
64 class DtAbortRestoreMsg;
65 class DtSaveBegunMsg;
66 class DtSaveCompleteMsg;
67 class DtSaveRequestMsg;
68 class DtSaveRequestTsoMsg;
69 class DtAbortSaveMsg;
70 class DtInitiatedSaveMsg;
72 class DtSyncPointMsg;
74 class DtTimeAdvanceRequestMsg;
75 class DtReserveNameMsg;
78 class DtFedExec;
79 class DtFedJoinInfo;
83 
84 #ifdef DtIFSPEC1516
85 #define RTINAMESPACE rti1516
86 #elif defined(DtIFSPEC1516E)
87 #define RTINAMESPACE rti1516e
88 #else
89 // TODO Unimplemented for HLA 1.3
90 #endif
91 
93 typedef DtFedExec* (*DtFedExecCreator)(DtConnectionMgr* connMgr,
94  const std::vector<unsigned int> & crcs,
95  DtString const & fedExName,
96  std::string const & timeImplName,
97  MAKRti::DtFomType fedType,
98  const DtString& momModuleName,
99  const std::vector<DtString>& fedFileName,
100  int fedExHandle,
101  DtRIDParameters* params,
102  unsigned int momModuleCrc);
103 
104 
106 typedef void (*DtFederateCbFn)(DtFederate* federate, void* usr);
107 
109 typedef void (*DtFederateCbFn)(DtFederate* handle, void* usr );
110 
112 typedef void (*DtSyncPointCbFn)(DtSyncPt* pt, void* usr);
113 
115 typedef void (*DtSyncPointAchievedCbFn)(DtFederate* who, DtSyncPt* pt, void* usr);
116 
118 typedef std::map<DtFederateHandle, DtFederate*> DtFederateHandleInfoMap;
119 
121 typedef std::map<DtString, DtFederate*> DtFederateNameInfoMap;
122 
123 
125 {
126 
127 protected:
128 
130  DtFedExec(DtConnectionMgr* connMgr,
131  const std::vector<unsigned int> & crcs, DtString const & fedExName,
132  std::string const & timeImplName, MAKRti::DtFomType fedType,
133  const DtString& momModuleName,
134  const std::vector<DtString >& modules,
135  int fedExHandle, DtRIDParameters* params, unsigned int momModuleCrc);
136 
137 public:
138 
140  virtual ~DtFedExec();
141 
143  virtual DtConnectionMgr* connectMgr();
144 
146  virtual DtLogicalTimeFactory* fedTimeFactory();
147 
149  virtual const DtString& fedExName() const;
150 
152  virtual int fedExHandle() const;
153 
156  virtual const DtString& fedFileName() const;
157 
159  virtual const std::vector<DtString>& fomModules() const;
160 
162  virtual bool fullyCreated() const;
163 
165  virtual void setFullyCreated(bool val);
166 
168  virtual unsigned long creatorID() const;
169 
171  virtual void createDistributor( const unsigned long initiatingFedID,
172  const DtString& momModuleName,
173  const std::vector<DtString>& fomModules );
174 
176  virtual int numFederates() const;
177 
180  virtual DtFederate* getFederate(DtFederateHandle handle);
181 
184  virtual DtFederateHandle federateHandleOfConnection(unsigned long connId) const;
185 
187  virtual void disconnectFederate( DtFederate* fed );
188 
190  virtual bool removeFederateConnection(unsigned long id);
191 
196  virtual bool restoreFederateConnection( DtFederateHandle handle,
197  unsigned long newConnId, unsigned long& oldConnId);
198 
200  virtual void reconnectFederateSucceeded( DtFederate* fed );
201 
203  virtual void reconnectFederateFailed( DtFederate* fed );
204 
206  virtual bool resignFederate(DtFederateHandle handle,
207  DtResignAction action, DtResignReason reason );
208 
215  virtual void resetClockForHeartBeat();
216 
218  virtual bool tick();
219 
221  virtual void printFederates();
222 
224  virtual void addFederateJoinedCallback(DtFederateCbFn fn, void* usr);
225 
227  virtual void removeFederateJoinedCallback(DtFederateCbFn fn, void* usr);
228 
230  virtual void addFederateResignedCallback(DtFederateCbFn fn, void* usr);
231 
233  virtual void removeFederateResignedCallback(DtFederateCbFn fn, void* usr);
234 
237  virtual void addSyncPtRegisteredCallback(DtSyncPointCbFn fn, void* usr);
238 
241  virtual void removeSyncPtRegisteredCallback(DtSyncPointCbFn fn, void* usr);
242 
245  virtual void addSyncPtAchievedCallback(DtSyncPointAchievedCbFn fn, void* usr);
246 
249  virtual void removeSyncPtAchievedCallback(DtSyncPointAchievedCbFn fn, void* usr);
250 
253  virtual void addFederationSynchronizedCallback(DtSyncPointCbFn fn, void* usr);
254 
257  virtual void removeFederationSynchronizedCallback(DtSyncPointCbFn fn, void* usr);
258 
260  virtual void addFederateDisconnectedCallback(DtFederateCbFn fn, void* usr );
261 
263  virtual void removeFederateDisconnectedCallback(DtFederateCbFn fn, void* usr );
264 
265  //Register callbacks for federate reconnect.
266  virtual void addFederateReconnectSucceededCallback(DtFederateCbFn fn, void* usr );
267 
268  //Unregister callbacks for federate reconnect.
269  virtual void removeFederateReconnectSucceededCallback(DtFederateCbFn fn, void* usr );
270 
271  //Register callbacks for federate reconnect.
272  virtual void addFederateReconnectFailedCallback(DtFederateCbFn fn, void* usr );
273 
274  // Unregister callbacks for federate reconnect.
275  virtual void removeFederateReconnectFailedCallback(DtFederateCbFn fn, void* usr );
276 
278  void multFileReceivedCb( const DtFomModuleDistributionMsg& msg );
279 
281  void multFileRequestedCb( const DtFomModuleRequestMsg& msg );
282 
284  void pushFomModuleToJoinedFederates(DtFederate* newFederate,
285  DtString fileName,
286  unsigned int fileSize,
287  const char* fileBuffer );
288 
290  void pushFomModuleToSingleFederate(DtFederateHandle recipient,
291  DtString fileName,
292  unsigned int fileSize,
293  const char* fileBuffer );
294 
296  virtual void processRequestedModulesArrived( const DtRequestedModulesArrivedEvent& e );
297 
299  virtual void processFedFileRequestMsg( const DtFedFileRequestMsgEvent& e);
300 
302  virtual void processFileTransfer(const DtFedExTakeFileEvent& e);
303 
305  virtual DtFederateHandleInfoMap const& federates() const;
306 
307 #ifdef DtTIME
308 
309  virtual const DtTimeInfoList* regulatingFederates() const;
310 
312  virtual const DtTimeInfoList* constrainedFederates() const;
313 #endif
314 
316  virtual void disableNetworkTesting();
317 
319  virtual void enableNetworkTesting();
320 
322  virtual void changeLatencyTestMode( DtFederateHandle handle, bool runTest,
323  bool continuous, bool haltContinuous, bool observing,
324  unsigned int interactionPeriod, unsigned int numInteractions,
325  unsigned int payloadBytes );
326 
328  virtual bool transferRidParams(DtFederateHandle handle, const DtString& ridString);
329 
330 public:
331 
334 
335  static void processJoinMsg(const DtJoinMsg& msg, void* usr);
336  static void processJoinConfirm(const DtJoinConfirmMsg& msg, void* usr);
337  static void processAlive(const DtAliveMsg& msg,void* usr);
338  static void processResign(const DtResignMsg& msg, void* usr);
339  static void processSyncPoint(const DtSyncPointMsg& msg, void* usr);
340  static void processSyncPointQuery(const DtSyncPointQueryMsg& msg, void* usr);
341  static void processSaveRequest(const DtSaveRequestMsg& msg, void* usr);
342  static void processInitiatedSave(const DtInitiatedSaveMsg& msg, void* usr);
343  static void processSaveComplete(const DtSaveCompleteMsg& msg, void* usr);
344  static void processSaveBegun(const DtSaveBegunMsg& msg, void* usr);
345  static void processAbortSave(const DtAbortSaveMsg& msg, void* usr);
346  static void processRestoreRequest(const DtRestoreRequestMsg& msg, void* usr);
347  static void processRestoreBegun(const DtRestoreBegunMsg& msg, void* usr);
348  static void processRestoreComplete(const DtRestoreCompleteMsg& msg,
349  void* usr);
350  static void processAbortRestore(const DtAbortRestoreMsg& msg, void* usr);
351  static void processOwnership(const DtOwnershipMsg& msg, void* usr);
352  static void processReserveName(DtReserveNameMsg const& msg, void* usr);
353  static void processReserveMultiName(DtReserveMultiNameMsg const& msg, void* usr);
354  static void processReleaseMultiName(DtReleaseMultiNameMsg const& msg, void* usr);
355  static void processQuerySaveStatus(DtQuerySaveStatusMsg const& msg,
356  void* usr);
357  static void processQueryRestoreStatus(DtQueryRestoreStatusMsg const& msg,
358  void* usr);
359 #ifdef DtTIME
360  static void processSaveTimeAdvance(const DtSaveTimeAdvanceMsg& msg, void* usr);
361  static void processSaveRequestTso(const DtSaveRequestTsoMsg& msg, void* usr);
362  static void processEnableRegulation(const DtEnableRegulationMsg& msg,
363  void* usr);
364  static void processEnableConstrained(const DtEnableConstrainedMsg& msg,
365  void* usr);
366  static void processTimeAdvanceRequest(const DtTimeAdvanceRequestMsg& msg,
367  void* usr);
368  static void processDisable(const DtDisableMsg& msg, void* usr);
369  static void processConstrainedSync(const DtConstrainedSyncMsg& msg,
370  void* usr);
371  static void processNextEventRequest(const DtNextEventRequestMsg& msg,
372  void* usr);
373 #endif
374 
375 
377  static void multFileReceivedCb( const DtFomModuleDistributionMsg& msg, void* usr );
378 
380  static void multFileRequestedCb( const DtFomModuleRequestMsg& msg, void* usr );
381 
383  static DtFedExec* create(DtConnectionMgr* connMgr,
384  const std::vector<unsigned int> & crcs,
385  DtString const & fedExName,
386  std::string const & timeImplName,
387  MAKRti::DtFomType fedType,
388  DtString const& momModuleName,
389  const std::vector<DtString>& fomModules,
390  int fedExHandle,
391  DtRIDParameters* params,
392  unsigned int momModuleCrc);
393 
397  static void setCreatorFunction(DtFedExecCreator creator);
398 
399  static void init( DtRtiAssistantExecClient* assistant );
400 
401 protected:
402 
404  virtual const std::map< unsigned long, const std::vector<DtString>*>& joinFomModules() const;
405 
406  virtual const std::vector<DtString>& joinFomModulesForConnection(unsigned long connID) const;
407 
409  virtual const std::vector<DtString>& createFomModules() const;
410 
413 
414  virtual void processJoinMsg(const DtJoinMsg& msg);
415  virtual bool handleJoinFailureCases( const DtJoinMsg &msg );
416  virtual void requestFedFileUpload( const DtJoinMsg& msg );
417 
418  virtual void processJoinConfirm(const DtJoinConfirmMsg& msg);
419  virtual void processAlive(const DtAliveMsg& msg);
420  virtual void processResign(const DtResignMsg& msg);
421  virtual void processSyncPoint(const DtSyncPointMsg& msg);
422  virtual void processSyncPointQuery(const DtSyncPointQueryMsg& msg);
423  virtual void processSaveRequest(const DtSaveRequestMsg& msg);
424  virtual void processInitiatedSave(const DtInitiatedSaveMsg& msg);
425  virtual void processSaveComplete(const DtSaveCompleteMsg& msg);
426  virtual void processSaveBegun(const DtSaveBegunMsg& msg);
427  virtual void processAbortSave(const DtAbortSaveMsg& msg);
428  virtual void processRestoreRequest(const DtRestoreRequestMsg& msg);
429  virtual void processRestoreBegun(const DtRestoreBegunMsg& msg);
430  virtual void processRestoreComplete(const DtRestoreCompleteMsg& msg);
431  virtual void processAbortRestore(const DtAbortRestoreMsg& msg);
432  virtual void processOwnership(const DtOwnershipMsg& msg);
433  virtual void processReserveName(DtReserveNameMsg const& msg);
434  virtual void processReserveMultiName(DtReserveMultiNameMsg const& msg);
435  virtual void processReleaseMultiName(DtReleaseMultiNameMsg const& msg);
436  virtual void processQuerySaveStatus(DtQuerySaveStatusMsg const& msg);
437  virtual void processQueryRestoreStatus(DtQueryRestoreStatusMsg const& msg);
438 
439 #ifdef DtTIME
440  virtual void processEnableRegulation(const DtEnableRegulationMsg& msg);
441  virtual void processEnableConstrained(const DtEnableConstrainedMsg& msg);
442  virtual void processTimeAdvanceRequest(const DtTimeAdvanceRequestMsg& msg);
443  virtual void processDisable(const DtDisableMsg& msg);
444  virtual void processConstrainedSync( const DtConstrainedSyncMsg& msg);
445  virtual void processSaveRequestTso(const DtSaveRequestTsoMsg& msg);
446  virtual void processSaveTimeAdvance(const DtSaveTimeAdvanceMsg& msg);
447  virtual void processNextEventRequest(const DtNextEventRequestMsg& msg);
448 #endif
449 
451 
453  virtual void processRegisterSyncPoint(const DtSyncPointMsg& msg);
454 
456  virtual void processAchievedSyncPoint(const DtSyncPointMsg& msg);
457 
459  virtual void createSyncPoint(const DtSyncPointMsg& msg);
460 
462  virtual void processSyncPtAchievedCallbacks(DtSyncPt* point,
463  DtFederate* federate);
464 
466  virtual void processFederationSynchronizedCallbacks(DtSyncPt* point);
467 
471  virtual bool synchronized(DtSyncPt* point,
472  DtFederateHandleSet& unsuccessfulSet) const;
473 
475  virtual void sendSyncPointReport(const DtSyncPointQueryMsg& msg);
476 
478  virtual void sendSyncPointStatusReport(const DtSyncPointQueryMsg& msg);
479 
481  virtual DtFederate* addFederate(
482  const char* federateType, const char* federateName, DtFederateHandle handle,
483  unsigned long connHandle, int astntCompId, const char* fedHostName,
484  MAKRti::DtInetAddr host, DtHlaVersionId hlaVersion);
485 
488  virtual DtFederate* createFederate(
489  const char* federateType, const char* federateName,
490  DtFederateHandle handle, unsigned long connHandle, int astntCompId,
491  const char* fedHostname, MAKRti::DtInetAddr host,
492  DtHlaVersionId hlaVersion);
493 
495  virtual bool isMember(DtFederateHandle handle) const;
496 
499  virtual bool deleteFederate(DtFederateHandle handle);
500 
502 
504  virtual bool processCreateReady();
505 
507  virtual void processJoin(unsigned long connID, const DtFedJoinInfo* fedInfo);
508 
510  virtual void processJoinReady();
511 
513  virtual void destroyDistributor();
514 
516  virtual DtAsyncFileDistributorRunnable* distributor() const;
517 
523  virtual unsigned int numberFederatesAllowed(unsigned int numPartners) const;
524 
526  virtual void resetControl();
527 
529  virtual bool tickDistributor();
530 
532  virtual bool processEvents();
533 
534 protected:
535 
536 
537  DtFedReader * getReader(DtFomType theFomType);
538  DtFedReader * getReader( DtFomType theFomType, DtFomClassMgr* target);
539 
540  void populateWithUnknownFoms(std::vector<DtString> & mods, std::vector<DtString> & requestedMods);
541  bool isFomAvailable(const DtString & fomName);
542  bool doesCrcMatchKnownFomModuleCrc( const DtString & fomName, unsigned int myTakenFomCrc );
543 
545  virtual bool fedFileReady(const MAKRti::DtString& fileName) const;
546 
548  virtual bool fedFilesReady( const std::vector<MAKRti::DtString>* fileNames ) const;
549 
551  virtual bool addJoinFomModuleForConnection( unsigned long connId,
552  const std::vector<MAKRti::DtString>& modulesFromJoinRequest );
553 
555  virtual void removeJoinFomModuleForConnection( unsigned long connID );
556 
558 
560  virtual void tickSaveRestore();
561 
564  virtual void tickJoin();
565 
568  virtual void tickFederates();
569 
572 
573  virtual void sendSyncPointMsg(
574  DtSyncMsgType kind, int id,
575  DtSyncPointStatus status,
576  const char* name,
577  RTINAMESPACE::VariableLengthData const* theTag = NULL,
578  const DtFederateHandleSet* set = NULL,
579  const DtFederateHandleSet* unsuccessfulSet = NULL);
580 
581  virtual void sendResignMsg(
582  const char* name, DtFederateHandle fedHandle,
583  DtResignAction action, DtResignReason reason,
584  const DtTimeInfo* timeInfo );
585  virtual void sendEnableDisableNetworkTestingMsg(
586  const char* name, bool enabled );
587  virtual void sendTransferRidParamsMsg(
588  const char* name, DtFederateHandle fedHandle, const DtString& paramString);
589  virtual void sendJoinResponseMsg(unsigned long destinationIDValue,
590  unsigned short requestID, unsigned int crcOfFedFile, DtFederateHandle handle,
591  const char* federateName, int fedExHandle, const char* fedExName,
592  const DtString& momModule, const std::vector<MAKRti::DtString>& modules,
593  unsigned long flags, bool allowNetworkTesting, bool enableNetworkTesting,
594  DtHlaVersionId hlaVers,
596  const DtString& errorString = DtString::nullString());
597  virtual void sendResignResponseMsgIfNecessary( const DtResignMsg& msg, DtResignResponse response, DtFederateHandle fedHandle );
598  virtual void sendSaveInitiateMsg(const char* labelVal);
599  virtual void sendSaveInitiateConstrainedMsg(const char* labelVal);
600  virtual void sendSaveResponse(DtFederateHandle fedHandle,
601  unsigned long requestID, const char* labelVal,
602  DtSaveResponseFlag response);
603  virtual void sendDesignatedFederate(DtFederateHandle fedHandle);
604  virtual void sendNameReservedMsg(DtFederateHandle requestingFederate,
605  char const* objectName, bool result);
606  virtual void sendMultiNameReservedMsg( DtFederateHandle requestingFederate,
607  std::set< std::wstring > const & objectNames,
608  bool result );
609 
610  virtual void sendRestoreStatus(DtFederateHandle requestingFederate,
611  RTINAMESPACE::FederateRestoreStatusVector const & restoreStatusList);
612 
613  virtual void sendSaveStatus(DtFederateHandle requestingFederate,
614  RTINAMESPACE::FederateHandleSaveStatusPairVector const & saveStatusList);
615 
616 #ifdef DtTIME
617  virtual void sendRegulationEnabledMsg(
618  DtFederateHandle handle,
619  DtRtiApiTime const & time);
620  virtual void sendConstrainedEnabledMsg(
621  DtFederateHandle handle,
622  DtRtiApiTime const & time,
623  DtRtiApiTime const & lbts);
624  virtual void sendLbtsMsg(DtFederateHandle laggardFederate,
625  DtRtiApiTime const & lbtsVal,
626  DtRtiApiTime const & lagLbtsVal);
627  virtual void sendNerLbtsMsg(
628  unsigned long nerCycle, DtFederateHandle laggardFederate,
629  bool nerPending, bool lagNerPending,
630  DtRtiApiTime const & lbtsVal,
631  DtRtiApiTime const & lagLbtsVal);
632  virtual void sendSyncConstrainedMsg();
633  virtual void sendResumeConstrainedMsg(DtFederateHandle laggardFederate,
634  DtRtiApiTime const & lbtsVal,
635  DtRtiApiTime const & lagLbtsVal);
636  virtual void sendSaveTimeMsg(char const* label,
637  DtRtiApiTime const & saveTime);
638 #endif
639 
640 
641 
642 
643  virtual void retireSyncPoint(const char* name);
644 
647  virtual void announceAllSyncPoints(DtFederateHandle hand);
648 
650  virtual void checkTimedSave();
651 
653  virtual void initiateSave(const char* label);
654 
657  virtual bool save( const char* label );
658 
661  virtual int initializeRestore( const char* label );
662 
665  virtual bool restore( const char* label );
666 
668  virtual void endSave(DtSaveFinishedResult result);
669 
671  virtual void endRestore(DtEndRestoreResult restoreResult);
672 
675  virtual DtString& getSaveFileName(const char* label, MAKRti::DtString& fileName,
676  bool extendName=true);
677 
680  virtual DtString& getRestoreFileName(const char* label, MAKRti::DtString& fileName);
681 
682 #ifdef DtTIME
683 
684  virtual void resignFederateTime(DtFederateHandle federateHandle);
685 
687  void disableFederateTimeRegulation(DtFederateHandle federateHandle);
688 
690  void removeRegulatingEntry(DtTimeInfo* entry);
691 
693  virtual void checkPendingConstrained(DtRtiApiTime const & lbts);
694 
696  virtual void checkPendingConstrained(DtTimeInfo* entry,
697  DtRtiApiTime const & lbts);
698 
701  virtual bool becomeConstrained(DtTimeInfo* entry);
702 
705  void adjustRegulatingEntry(DtTimeInfo* entry,
706  DtRtiApiTime const & time,
707  DtRtiApiTimeInterval const & lookahead,
708  bool isTimeAvailable);
709 
711  void checkNerCycle(DtFederateHandle fedHandle);
712 
714  virtual void processEnableRegulation(DtFederateHandle federateHandle,
715  DtRtiApiTime const & time,
716  DtRtiApiTimeInterval const & lookahead);
717 
720  virtual void processPendingRegulation(DtFederateHandle federateHandle,
721  DtRtiApiTime const & time,
722  DtRtiApiTimeInterval const & lookahead);
723 
725 
726 
727 
728 
729  virtual DtRtiApiTime& getTempTime();
731  virtual void putTempTime(DtRtiApiTime& timePtr);
733  virtual void destroyTempTimePool();
735 
737  virtual DtFederateHandle minLbtsFederate() const;
738 
740  virtual DtRtiApiTime const & minLbts() const;
741 
743  virtual DtRtiApiTime const & lagLbts() const;
744 
747  virtual bool minTimeAvailable() const;
748 
751  virtual bool lagTimeAvailable() const;
752 
754  virtual DtFederateHandle minNerLbtsFederate() const;
755 
757  virtual DtRtiApiTime const & minNerLbts() const;
758 
760  virtual DtRtiApiTime const & lagNerLbts() const;
761 
763  virtual bool minNerPending() const;
764 
766  virtual bool lagNerPending() const;
767 
769  virtual void setSaveTime(DtRtiApiTime const & timeVal);
770 
772  virtual DtRtiApiTime const & saveTime() const;
773 
774 #endif
775 
778  virtual int getNextFreeFedHandle();
779 
780 
782  DtFedExec();
783 
785  DtFedExec(const DtFedExec& orig);
786  DtFedExec& operator=(DtFedExec const& orig);
787 
788 protected:
790  unsigned int myCrcOfFedFile;
793  DtString myFedExName;
796  std::map< MAKRti::DtString, DtFederateHandle > myFederateHdlsByName;
799  DtString myMomModule;
800  unsigned int myMomModuleCrc;
801  std::vector<unsigned int> myCreationFedFilesCRCs;
802  MAKRti::DtFomType myFedType;
803  std::vector<DtString> myFomModules;
804  // ! This will be a Map with the keys being a FOM module name, and the value being its CRC.
805  // ! This map is populated at create and join
806  std::map<DtString, unsigned int> myFomModulesNameToCrcMap;
807  std::set<DtString> myFomModulesSet;
808  std::vector<DtString> myCreateFomModules;
809  std::map<unsigned long, const std::vector<DtString>* >myJoinFomModules;
814 
815  std::set< unsigned long > myConnectionsProcessJoined;
816 
818  std::map<DtFederateHandle, DtFedJoinInfo*> myJoiningFederates;
819  std::map<unsigned long, DtFedJoinInfo*> myJoiningFederatesByID;
824 
825  bool mySave;
826  bool myRestore;
827  std::set<DtFederateHandle> myPendingSaveFederates;
829  DtString mySaveLabel;
831  std::set<DtFederateHandle> myPendingRestoreFederates;
834  DtString mySavePath;
837  // When files are received from distributor, store them here until requester takes them.
838  std::map<DtString, DtFileInformation*> myTakenFiles;
839 
841  unsigned long myCreatorConnId;
842  std::set< unsigned long> myAwaitingJoinUpload;
844 
847 
856 
857  typedef std::set<std::string> DtFedExReservedNameSet;
858  typedef std::map< DtFederateHandle, DtFedExReservedNameSet >
862 
863 #ifdef DtTIME
864  DtLogicalTimeFactory* myLogicalTimeFactory;
865  DtTimeInfoList myRegulatingFederates;
866  DtTimeInfoList myConstrainedFederates;
867  DtTimeInfoList myPendingConstrained;
868  DtTimeInfoList myPendingTar;
869  DtTimeInfoList myPendingRegulation;
870  DtTimeInfoList myNerLbtsList;
871  DtTimeInfoList myNerRequested;
872  DtTimeInfoList myNerPending;
873  bool myNewNerRequestPending;
874  bool myForceNerCycle;
875  bool myTransmitLaggardLBTS;
876  DtList mySyncConstrained;
877  unsigned long myNerCycle;
878  DtFederateHandle myNerFederate;
879  DtList myTempTimePool;
880  std::auto_ptr<DtRtiApiTime> myPositiveInfinity;
881  std::auto_ptr<DtRtiApiTime> mySaveTime;
882  std::auto_ptr<DtRtiApiTime> myNerLbts;
883  std::auto_ptr<DtRtiApiTime> myLagNerLbts;
884 #endif
885 
888  static const std::vector<DtString> theEmptyStringSet;
891  unsigned long myInitiatorID;
897 
898  DtClock myClock;
899 
901 
902 protected:
903 
905  //DtFedReaderFactory myFedReaderFactory;
906  DtFedReader13 * myFedReader13;
907  DtFedReader1516 * myFedReader1516;
908  DtFedReader1516e * myFedReader1516e;
909 
910 private:
911  static const DtString nullStr;
913 };
914 
915 
916 
917 #endif
918 

Document ID: Generated on Wed Mar 11 20:26:49 EDT 2015 from SVN revision 150939
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)