15 #include <mtl/fedReader.h>
16 #include <vlutil/vlPrint.h>
17 #include <vlutil/vlTime.h>
18 #include <vlutil/vlString.h>
19 #include <vlutil/vlList.h>
20 #include <vlutil/vlSmartPointers.h>
25 #include <mtl/fomSorter.h>
27 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
92 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
95 typedef void (*DtFedMgrPostTickCallbackFcn) (
void*);
112 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
130 virtual void createFederationExecution(
131 const char* executionName,
const char* timeImplName,
133 const std::vector<DtString>& fomModules,
134 const char* mimModule) = 0;
136 const char* fed) = 0;
140 virtual void destroyFederationExecution (
141 const char* executionName) = 0;
144 virtual void listFederationExecutions() = 0;
150 virtual rti1516::FederateHandle joinFederationExecution(
151 const char* federateType,
152 const char* federationExecutionName,
153 rti1516::FederateAmbassador* federateAmbassador,
154 unsigned long flags) = 0;
155 #elif defined(DtIFSPEC1516E)
156 virtual rti1516e::FederateHandle joinFederationExecution(
157 const char* federateName,
158 const char* federateType,
159 const char* federationExecutionName,
160 const std::vector<DtString>& fomModules,
161 unsigned long flags) = 0;
163 virtual RTI::FederateHandle joinFederationExecution (
164 const char* yourName,
165 const char* executionName,
166 RTI::FederateAmbassador* federateAmbassadorReference,
167 unsigned long flags) = 0;
172 virtual void resignFederationExecution(
174 #elif defined(DtIFSPEC1516E)
175 virtual void resignFederationExecution(
178 virtual void resignFederationExecution(
184 virtual bool automaticReserveObjectName(
const char *);
188 virtual void registerFederationSynchronizationPoint(
190 rti1516::VariableLengthData
const & theTag) = 0;
191 #elif defined(DtIFSPEC1516E)
192 virtual void registerFederationSynchronizationPoint(
196 virtual void registerFederationSynchronizationPoint(
198 const char* theTag) = 0;
202 virtual void waitForResignResponse(
bool serviceCall =
true);
205 virtual void waitForReserveNameResponse(
bool serviceCall =
true);
209 virtual void registerFederationSynchronizationPoint(
211 rti1516::VariableLengthData
const & theTag,
213 #elif defined(DtIFSPEC1516E)
214 virtual void registerFederationSynchronizationPoint(
219 virtual void registerFederationSynchronizationPoint(
226 virtual void synchronizationPointAchieved(
const char* label,
bool successfully=
true) = 0;
231 virtual MAKRti::DtString fedFileName(MAKRti::DtString execName);
236 virtual MAKRti::DtString timeImplName(MAKRti::DtString execName);
244 virtual void setTopLevelAmbassador(rti1516::RTIambassador* ambPtr);
245 #elif defined(DtIFSPEC1516E)
249 virtual void setTopLevelAmbassador(RTI::RTIambassador* ambPtr);
255 virtual void pretick();
256 virtual void posttick();
258 virtual void postTickCallbacks();
261 virtual void removePostTickCallback(
const MAKRti::DtString& label);
264 virtual void requestFederationSave (
const char *label,
266 const rti1516::LogicalTime* time=NULL) =0;
269 virtual void queryFederationSaveStatus()=0;
272 virtual void queryFederationRestoreStatus()=0;
273 #elif defined(DtIFSPEC1516E)
274 virtual void requestFederationSave (
const char *label,
279 virtual void queryFederationSaveStatus()=0;
282 virtual void queryFederationRestoreStatus()=0;
285 virtual void abortFederationSave () =0;
288 virtual void abortFederationRestore () =0;
290 virtual void requestFederationSave (
const char *label,
292 const RTI::FedTime* time=NULL) =0;
296 virtual void federateSaveBegun () =0;
299 virtual void federateSaveComplete () =0;
302 virtual void federateSaveNotComplete () =0;
305 virtual void requestFederationRestore (
const char *label) =0;
308 virtual void federateRestoreComplete () =0;
311 virtual void federateRestoreNotComplete () =0;
314 virtual char* getTransportationName(MAKRti::DtTransportType transport);
317 virtual char* getOrderName(MAKRti::DtOrderType order);
320 virtual MAKRti::DtTransportType getTransportationHandle(MAKRti::DtString transport);
323 virtual MAKRti::DtOrderType getOrderHandle(MAKRti::DtString order);
329 virtual MAKRti::DtString
const & fedType()
const;
332 virtual MAKRti::DtString
const & fedName()
const;
335 virtual MAKRti::DtString
const & fedExName()
const;
338 virtual unsigned long fedExHandle()
const;
341 virtual bool isJoined()
const;
346 rti1516::RTIambassador* rtiAmb();
347 rti1516::RTIambassador* rtiAmb()
const;
348 #elif defined(DtIFSPEC1516E)
352 RTI::RTIambassador* rtiAmb();
353 RTI::RTIambassador* rtiAmb()
const;
360 virtual rti1516::FederateAmbassador * federateAmbassador()
const;
361 #elif defined(DtIFSPEC1516E)
364 virtual RTI::FederateAmbassador * federateAmbassador()
const;
393 virtual DtTimeMgr* timeMgr();
395 virtual DtTimeMgr* timeMgr()
const;
403 virtual DtMomMgr* momMgr();
405 virtual DtMomMgr* momMgr()
const;
409 virtual DtDataDistMgr* ddmMgr();
411 virtual DtDataDistMgr* ddmMgr()
const;
422 virtual bool forcedToResign()
const;
425 virtual void setMomResign();
428 virtual void resetMomResign();
431 virtual bool saveInitiated()
const;
434 virtual bool saveBegun()
const;
437 virtual bool restoreRequested()
const;
440 virtual bool restoreInitiated()
const;
443 virtual bool restoreBegun()
const;
446 virtual const MAKRti::DtString& restoreLabel()
const;
449 virtual const MAKRti::DtString& lastRestoreLabel()
const;
452 const MAKRti::DtString& currentFedFileName()
const;
453 void setCurrentFedFileName(
const MAKRti::DtString& );
456 const MAKRti::DtString& mimName()
const;
457 void setMimName(
const MAKRti::DtString& );
460 void addFomModule(
const MAKRti::DtString& name,
char* buffer );
464 const std::vector<std::wstring>& fomModuleNames()
const;
467 void addJoinFomModuleNames(
const std::vector<MAKRti::DtString>& moduleNames);
468 const std::vector<std::wstring>& joinFomModuleNames()
const;
472 const char* fomModuleData(MAKRti::DtU32 moduleIndicator)
const;
476 const char* joinFomModuleData(MAKRti::DtU32 moduleIndicator)
const;
479 const char* mimData()
const;
483 const MAKRti::DtString& currentTimeImplName()
const;
484 void setCurrentTimeImplName(
const MAKRti::DtString& );
487 virtual const MAKRti::DtString& saveLabel()
const;
488 virtual void setSaveLabel(
const MAKRti::DtString& value);
491 virtual const MAKRti::DtString& lastSaveLabel()
const;
492 virtual void setLastSaveLabel(
const MAKRti::DtString& value);
496 virtual void testSaveProgress() = 0;
500 virtual void initiateSave();
505 virtual void initiateTimedSave(rti1516::LogicalTime
const& saveTime);
506 #elif defined(DtIFSPEC1516E)
509 virtual void initiateTimedSave(RTI::FedTime
const& saveTime);
523 virtual MAKRti::DtString& getSaveFileName(
const char* label,
525 bool extendName=
true);
532 virtual MAKRti::DtString& getRestoreFileName(
const char* label,
536 virtual unsigned long tickCount()
const;
539 virtual bool isTicking()
const;
547 unsigned long flags()
const;
549 DtResignAction automaticResignDirective()
const;
560 virtual const MAKRti::DtString& getFederateNameFromHandle(
DtFederateHandle handle );
561 virtual DtFederateHandle getFederateHandleFromName(
const MAKRti::DtString& name );
575 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
579 static void setCreatorFunction(DtFederateMgrCreator fn);
585 static void setInternalCreatorFunction(DtFederateMgrCreator fn);
595 virtual void processResign(
const DtResignMsg& msg);
645 virtual void sendAlive();
648 virtual void sendResignMsg(
const char* fedExName,
652 void sendTickedMsg();
655 virtual void applyRidParameters();
661 virtual MAKRti::DtFilename fedFileNameToUse(MAKRti::DtString fileName, MAKRti::DtString executionName );
664 virtual int mapFomDepComplexity(DtString fomFileName);
666 virtual void mapFomNameToFileName(std::vector<DtString>* fomFileNames);
668 virtual void sortFomFileNames(std::vector<DtString>* fomFileNames);
671 virtual void testReadFedFile(MAKRti::DtString fileName, MAKRti::DtString executionName);
675 virtual void readFedFile(MAKRti::DtString fileName, MAKRti::DtString executionName);
679 virtual void readFedFilePtr(
const FILE* fp,
680 const MAKRti::DtString& fileName,
681 const MAKRti::DtString& executionName );
685 virtual void addFedExNameMapping(
const MAKRti::DtString& execName,
686 const MAKRti::DtString& timeImplName,
const MAKRti::DtString& fed);
688 virtual void addFomModuleNameMapping(
const MAKRti::DtString executionName,
689 const std::vector<MAKRti::DtString>& modules);
691 virtual void addFomModuleNameMapping(
const MAKRti::DtString executionName,
692 const MAKRti::DtString& modules );
697 #elif defined(DtIFSPEC1516E)
705 virtual void postJoinInit(
706 const char* federateType,
707 const char* executionName,
708 const char* federateName
710 , rti1516::FederateAmbassador* federateAmbassadorReference);
711 #elif defined(DtIFSPEC1516E)
714 , RTI::FederateAmbassador* federateAmbassadorReference);
717 virtual void postJoinConfirmInit();
727 static void processResign(
const DtResignMsg& msg,
void* usr);
745 static void processRestore(
const DtRestoreMsg& msg,
void* usr);
783 virtual void createObjectMgr();
786 virtual void createInteractionMgr();
789 virtual void createDdmMgr();
792 virtual void createTimeMgr();
795 virtual void createMomMgr();
798 virtual void createTestMgr();
805 #elif defined(DtIFSPEC1516E)
822 DtFedReader * getReader( DtFomType theFomType,
DtFomClassMgr* target);
823 DtFedReader * getReader( DtFomType theFomType );
824 void addToParsedFomMap( DtFedReader * myFedReader,
const MAKRti::DtString & fileNameToUse,
DtFomClassMgr* fedTarget,
unsigned long theCrc = 0);
828 rti1516::RTIambassador* myRtiAmb;
829 #elif defined(DtIFSPEC1516E)
858 DtDataDistMgr* myDdmMgr;
862 DtTimeMgr* myTimeMgr;
896 std::vector<std::wstring> myFomModulesNames;
898 std::vector<std::wstring> myJoinFomModulesNames;
899 std::vector<char*> myFomModuleData;
909 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
DtFedReader * myFedReader
Temporary internal reader used until changes made to VR-Link fed reader.
Definition: fedMgr.h:925
std::pair< DtFedMgrPostTickCallbackFcn, void * > DtFedMgrPostTickCallbackInfo
Definition: fedMgr.h:96
DtRtiAmbassadorBaseImplementor * myAmbImpl
The federate's RTI Ambassador Implementor.
Definition: fedMgr.h:836
std::map< DtString, DtString > DtFileNameToFomNameMap
Definition: fedMgr.h:102
MAKRti::DtString myFedName
Federate name.
Definition: fedMgr.h:881
This class is a base for the protocol specific DtRtiAmbassadorImplementor class.
Definition: ambImpBase.h:49
Definition: savFinMsg.h:32
DtRIDParameters * myParams
Initialization data.
Definition: fedMgr.h:922
MAKRti::DtString myCurrentTimeImplName
Current time implementation name.
Definition: fedMgr.h:893
std::multimap< int, DtString > DtComplexToFomsMMap
Definition: fedMgr.h:103
std::map< DtString, int > DtFomToComplexMap
Definition: fedMgr.h:100
DtFomClassMgr * myFom
The FOM manager.
Definition: fedMgr.h:846
Definition: savRespMsg.h:29
virtual bool restore(DtRtiSaveFile &file)
Perform the actual restore.
Definition: fedMgr.h:516
The DtTestMgrStatusMsg defines a msg for a client to report the results of a latency test...
Definition: testMgrStatusMsg.h:36
DtFileNameToFomNameMap myFileToFomMap
Definition: fedMgr.h:955
The DtAssistantLogEnableMsg defines a wrapper for the RTI Assistant logging enable message used by th...
Definition: assistantLogEnableMsg.h:31
std::pair< DtString, DtString > DtFileFomPair
Definition: fedMgr.h:956
std::map< MAKRti::DtString, std::set< MAKRti::DtString > > myFedFileNames
Definition: fedMgr.h:935
DtParsedFomsMap myParsedFoms
Map containing FOMs parsed into FedTargets.
Definition: fedMgr.h:938
This class manages the RTI's start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
!DtIFSPEC1516
Definition: fedTimeFactory.h:190
DtFedAmbWrapper * myFedAmbCatch
Catches exceptions from federate ambassador calls.
Definition: fedMgr.h:918
bool myMomSaveEvokeCallbacks
State of evoking callbacks prior to MOM resign.
Definition: fedMgr.h:995
Definition: LogicalTime.h:35
DtInteractionMgr * myInterMgr
The interaction manager.
Definition: fedMgr.h:849
Definition: assistantFederateSignalIntervalMsg.h:27
The client connection to the RTI Assistant for an LRC.
Definition: rtiAssistantLrcClient.h:32
std::map< MAKRti::DtString, DtFedMgrPostTickCallbackInfo > DtPostTickCallbackMap
Definition: fedMgr.h:97
A class provided by the HLA C++ Interface Specification which federates use to communicate with the R...
Definition: RTIambassador.h:35
bool myFedCallbackReached
Definition: fedMgr.h:818
DtBoost::shared_ptr< DtRtiAssistantLrcClient > myAssistantClient
Manages the connection to the RTI Assistant.
Definition: fedMgr.h:959
Definition: fedHandleSet.h:102
unsigned long myFedExHandle
Federation handle.
Definition: fedMgr.h:874
DtFomNameToFileNameMap myFomToFileMap
Definition: fedMgr.h:952
Definition: resignMsg.h:36
Definition: resignDirectiveMsg.h:24
std::pair< DtString, DtString > DtFomFilePair
Definition: fedMgr.h:953
DtTime myLastTickTime
The last tick time.
Definition: fedMgr.h:1021
DtFedReader * myFedReader1516e
Definition: fedMgr.h:928
std::map< MAKRti::DtString, std::pair< char *, int > > DtFileNameToDataMap
Definition: fedMgr.h:99
bool myMomResign
Indicates MOM caused resign.
Definition: fedMgr.h:992
Definition: VariableLengthData.h:34
DtTestMgrFedAmbWrapper is installed by the testManager and serves to catch testInteraction messages f...
Definition: testMgrFedAmbWrapper.h:42
std::pair< int, DtString > DtMMapPair
Definition: fedMgr.h:947
unsigned long myTickCount
Tick counter.
Definition: fedMgr.h:1004
std::map< DtString, DtString > DtFomNameToFileNameMap
Definition: fedMgr.h:101
DtFedReader * myFedReader13
Definition: fedMgr.h:926
MAKRti::DtString myFedType
Federate type.
Definition: fedMgr.h:877
ResignAction
Definition: Enums.h:33
Instances of DtFederateMgr process federation-level messages (such as create, destroy, join, resign, and sync points) and manages the objects responsible for handling general communication, objects, interactions, the FOM, MOM, and data distribution mmg.
Definition: fedMgr.h:84
bool myRestoreRequested
Indicates restore requested.
Definition: fedMgr.h:970
bool mySaveBegun
Indicates save begun.
Definition: fedMgr.h:968
DtLogicalTimeFactory * myLogicalTimeFactory
Logical time factory Even if NULL, need to have this factory.
Definition: fedMgr.h:908
bool myIsTicking
indicates currently processing tick
Definition: fedMgr.h:1007
DtConnectionMgr * myConnectMgr
The connection manager.
Definition: fedMgr.h:843
The DtLatencyReportMsg defines a msg for a client to report the results of a latency test...
Definition: latencyReportMsg.h:37
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:60
static DtFederateMgrCreator theInternalCreator
The internal creator.
Definition: fedMgr.h:1041
MAKRti::DtTime myLastHeartbeat
Time of last heartbeat.
Definition: fedMgr.h:904
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:45
bool myRestoreInitiated
Indicates restore initiated.
Definition: fedMgr.h:972
DtHandle DtFederateHandle
Definition: internalTypes.h:29
Definition: resEndMsg.h:31
This class defines a message sent between the exec and the assistant that enables and disables networ...
Definition: enableDisableNetworkTestingMsg.h:25
DtFomToComplexMap myFomToComplexMap
Definition: fedMgr.h:949
DtComplexToFomsMMap myComplexToFomsMMap
Definition: fedMgr.h:946
MAKRti::DtString myMimName
MIM name.
Definition: fedMgr.h:890
unsigned long myFlags
Definition: fedMgr.h:1012
bool myIgnoreForcedResign
Prevents forcing duplicate resign.
Definition: fedMgr.h:986
DtFederateHandle myFedHandle
Federate handle.
Definition: fedMgr.h:884
bool myRestoreBegun
Indicates restore begun.
Definition: fedMgr.h:974
float mySignalTickInterval
The Signal Tick Interval.
Definition: fedMgr.h:1018
bool myResignInProgress
Indicates a resign is in progress.
Definition: fedMgr.h:998
Definition: restoreMsg.h:23
The object manager class processes the object management services.
Definition: objMgr.h:90
DtMomMgr * myMomMgr
The MOM manager.
Definition: fedMgr.h:855
MAKRti::DtFilename myStandardMimPath
Definition: fedMgr.h:1025
The DtAssistantRidParamsMsg defines a wrapper for the RTI Assistant RID parameter message used by the...
Definition: assistantRidParamsMsg.h:33
MAKRti::DtString myLastRestoreLabel
The last restore label.
Definition: fedMgr.h:982
DtFedReader * myFedReader1516
Definition: fedMgr.h:927
std::map< DtFederateHandle, MAKRti::DtString > myFederateHandleToName
Definition: fedMgr.h:1029
RTI::FedTimeFactory myHlaTimeFactory
Definition: fedMgr.h:911
RTI::RTIambassador * myRtiAmb
The federate's RTI Ambassador.
Definition: fedMgr.h:832
DtObjectMgr * myObjMgr
The object manager.
Definition: fedMgr.h:852
MAKRti::DtTime myResponseInterval
Interval to wait for response message during a message protocol.
Definition: fedMgr.h:868
std::pair< DtString, int > DtFomCompPair
Definition: fedMgr.h:950
Definition: resRepMsg.h:24
The DtAssistantExitMsg defines a wrapper for the RTI Assistant exit message used by the Assistant to ...
Definition: assistantExitMsg.h:32
DtFomSorter myFomSorter
Definition: fedMgr.h:1034
MAKRti::DtString myLastSaveLabel
The last save label.
Definition: fedMgr.h:978
This file contains enumerations used by the interface.
std::map< MAKRti::DtString, DtFederateHandle > myFederateNameToHandle
Definition: fedMgr.h:1028
std::map< MAKRti::DtString, DtFomClassMgr * > DtParsedFomsMap
Definition: fedMgr.h:98
An abstract base class which must be implemented, and used by a federate.
Definition: FederateAmbassador.h:32
MAKRti::DtList myMappingList
List of federation execution names with FED files names and time implementation names.
Definition: fedMgr.h:933
This file contains the rti1516e::RTIambassador class.
MAKRti::DtString myCurrentFedFileName
Current FED/FDD file name.
Definition: fedMgr.h:887
virtual bool save(DtRtiSaveFile &file)
Perform the actual save.
Definition: fedMgr.h:513
#define DT_DLL_LRC
Definition: rtiMsConfig.h:126
MAKRti::DtString myFedExName
Federation execution name.
Definition: fedMgr.h:871
Definition: saveFile.h:21
MAKRti::DtString mySaveLabel
The save label.
Definition: fedMgr.h:976
DtTestManager * myTestMgr
Definition: fedMgr.h:1014
bool myForcedToResign
Indicates forced resign occurred.
Definition: fedMgr.h:989
MAKRti::DtResignAction myResignAction
The resign action.
Definition: fedMgr.h:1032
Definition: savInitMsg.h:23
DtTestManager runs network connectivity tests between local RTI components.
Definition: testManager.h:66
Definition: resInitMsg.h:22
bool myEnableFederateHeartbeat
is heartbeating enabled?
Definition: fedMgr.h:1010
MAKRti::DtClock myClock
Clock for timing.
Definition: fedMgr.h:1001
DtFedAmbWrapper * myPrinter
Prints data for federate ambassador calls.
Definition: fedMgr.h:915
MAKRti::DtString myRestoreLabel
The restore label.
Definition: fedMgr.h:980
static DtFederateMgrCreator theCreator
The plugin creator.
Definition: fedMgr.h:1038
bool mySaveInitiated
Indicates save initiated.
Definition: fedMgr.h:966
bool myNetworkTestEnabled
Definition: fedMgr.h:1015
DtPostTickCallbackMap myPostTickCallbacks
Definition: fedMgr.h:1023