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>
26 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
96 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
99 typedef void (*DtFedMgrPostTickCallbackFcn) (
void*);
116 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
134 virtual void createFederationExecution(
135 const char* executionName,
const char* timeImplName,
137 const std::vector<DtString>& fomModules,
138 const char* mimModule) = 0;
140 const char* fed) = 0;
144 virtual void destroyFederationExecution (
145 const char* executionName) = 0;
148 virtual void listFederationExecutions() = 0;
154 virtual rti1516::FederateHandle joinFederationExecution(
155 const char* federateType,
156 const char* federationExecutionName,
157 rti1516::FederateAmbassador* federateAmbassador,
158 unsigned long flags) = 0;
159 #elif defined(DtIFSPEC1516E)
160 virtual rti1516e::FederateHandle joinFederationExecution(
161 const char* federateName,
162 const char* federateType,
163 const char* federationExecutionName,
164 const std::vector<DtString>& fomModules,
165 unsigned long flags) = 0;
167 virtual RTI::FederateHandle joinFederationExecution (
168 const char* yourName,
169 const char* executionName,
170 RTI::FederateAmbassador* federateAmbassadorReference,
171 unsigned long flags) = 0;
176 virtual void resignFederationExecution(
178 #elif defined(DtIFSPEC1516E)
179 virtual void resignFederationExecution(
182 virtual void resignFederationExecution(
188 virtual bool automaticReserveObjectName(
const char *);
192 virtual void registerFederationSynchronizationPoint(
194 rti1516::VariableLengthData
const & theTag) = 0;
195 #elif defined(DtIFSPEC1516E)
196 virtual void registerFederationSynchronizationPoint(
200 virtual void registerFederationSynchronizationPoint(
202 const char* theTag) = 0;
206 virtual void waitForResignResponse(
bool serviceCall =
true);
209 virtual void waitForReserveNameResponse(
bool serviceCall =
true);
213 virtual void registerFederationSynchronizationPoint(
215 rti1516::VariableLengthData
const & theTag,
217 #elif defined(DtIFSPEC1516E)
218 virtual void registerFederationSynchronizationPoint(
223 virtual void registerFederationSynchronizationPoint(
230 virtual void synchronizationPointAchieved(
const char* label,
bool successfully=
true) = 0;
235 virtual MAKRti::DtString fedFileName(MAKRti::DtString execName);
240 virtual MAKRti::DtString timeImplName(MAKRti::DtString execName);
248 virtual void setTopLevelAmbassador(rti1516::RTIambassador* ambPtr);
249 #elif defined(DtIFSPEC1516E)
253 virtual void setTopLevelAmbassador(RTI::RTIambassador* ambPtr);
259 virtual void pretick();
260 virtual void posttick();
262 virtual void postTickCallbacks();
265 virtual void removePostTickCallback(
const MAKRti::DtString& label);
268 virtual void requestFederationSave (
const char *label,
270 const rti1516::LogicalTime* time=NULL) =0;
273 virtual void queryFederationSaveStatus()=0;
276 virtual void queryFederationRestoreStatus()=0;
277 #elif defined(DtIFSPEC1516E)
278 virtual void requestFederationSave (
const char *label,
283 virtual void queryFederationSaveStatus()=0;
286 virtual void queryFederationRestoreStatus()=0;
289 virtual void abortFederationSave () =0;
292 virtual void abortFederationRestore () =0;
294 virtual void requestFederationSave (
const char *label,
296 const RTI::FedTime* time=NULL) =0;
300 virtual void federateSaveBegun () =0;
303 virtual void federateSaveComplete () =0;
306 virtual void federateSaveNotComplete () =0;
309 virtual void requestFederationRestore (
const char *label) =0;
312 virtual void federateRestoreComplete () =0;
315 virtual void federateRestoreNotComplete () =0;
318 virtual char* getTransportationName(MAKRti::DtTransportType transport);
321 virtual char* getOrderName(MAKRti::DtOrderType order);
324 virtual MAKRti::DtTransportType getTransportationHandle(MAKRti::DtString transport);
327 virtual MAKRti::DtOrderType getOrderHandle(MAKRti::DtString order);
333 virtual MAKRti::DtString
const & fedType()
const;
336 virtual MAKRti::DtString
const & fedName()
const;
339 virtual MAKRti::DtString
const & fedExName()
const;
342 virtual unsigned long fedExHandle()
const;
345 virtual bool isJoined()
const;
350 rti1516::RTIambassador* rtiAmb();
351 rti1516::RTIambassador* rtiAmb()
const;
352 #elif defined(DtIFSPEC1516E)
356 RTI::RTIambassador* rtiAmb();
357 RTI::RTIambassador* rtiAmb()
const;
364 virtual rti1516::FederateAmbassador * federateAmbassador()
const;
365 #elif defined(DtIFSPEC1516E)
368 virtual RTI::FederateAmbassador * federateAmbassador()
const;
397 virtual DtTimeMgr* timeMgr();
399 virtual DtTimeMgr* timeMgr()
const;
407 virtual DtMomMgr* momMgr();
409 virtual DtMomMgr* momMgr()
const;
413 virtual DtDataDistMgr* ddmMgr();
415 virtual DtDataDistMgr* ddmMgr()
const;
426 virtual bool forcedToResign()
const;
429 virtual void setMomResign();
432 virtual void resetMomResign();
435 virtual bool saveInitiated()
const;
438 virtual bool saveBegun()
const;
441 virtual bool restoreRequested()
const;
444 virtual bool restoreInitiated()
const;
447 virtual bool restoreBegun()
const;
450 virtual const MAKRti::DtString& restoreLabel()
const;
453 virtual const MAKRti::DtString& lastRestoreLabel()
const;
456 const MAKRti::DtString& currentFedFileName()
const;
457 void setCurrentFedFileName(
const MAKRti::DtString& );
460 const MAKRti::DtString& mimName()
const;
461 void setMimName(
const MAKRti::DtString& );
464 void addFomModule(
const MAKRti::DtString& name,
char* buffer );
468 const std::vector<std::wstring>& fomModuleNames()
const;
471 void addJoinFomModuleNames(
const std::vector<MAKRti::DtString>& moduleNames);
472 const std::vector<std::wstring>& joinFomModuleNames()
const;
476 const char* fomModuleData(MAKRti::DtU32 moduleIndicator)
const;
480 const char* joinFomModuleData(MAKRti::DtU32 moduleIndicator)
const;
483 const char* mimData()
const;
487 const MAKRti::DtString& currentTimeImplName()
const;
488 void setCurrentTimeImplName(
const MAKRti::DtString& );
491 virtual const MAKRti::DtString& saveLabel()
const;
492 virtual void setSaveLabel(
const MAKRti::DtString& value);
495 virtual const MAKRti::DtString& lastSaveLabel()
const;
496 virtual void setLastSaveLabel(
const MAKRti::DtString& value);
500 virtual void testSaveProgress() = 0;
504 virtual void initiateSave();
509 virtual void initiateTimedSave(rti1516::LogicalTime
const& saveTime);
510 #elif defined(DtIFSPEC1516E)
513 virtual void initiateTimedSave(RTI::FedTime
const& saveTime);
527 virtual MAKRti::DtString& getSaveFileName(
const char* label,
529 bool extendName=
true);
536 virtual MAKRti::DtString& getRestoreFileName(
const char* label,
540 virtual unsigned long tickCount()
const;
543 virtual bool isTicking()
const;
551 unsigned long flags()
const;
553 DtResignAction automaticResignDirective()
const;
564 virtual const MAKRti::DtString& getFederateNameFromHandle(
DtFederateHandle handle );
565 virtual DtFederateHandle getFederateHandleFromName(
const MAKRti::DtString& name );
579 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
583 static void setCreatorFunction(DtFederateMgrCreator fn);
589 static void setInternalCreatorFunction(DtFederateMgrCreator fn);
599 virtual void processResign(
const DtResignMsg& msg);
649 virtual void sendAlive();
652 virtual void sendResignMsg(
const char* fedExName,
656 void sendTickedMsg();
659 virtual void applyRidParameters();
665 virtual MAKRti::DtFilename fedFileNameToUse(MAKRti::DtString fileName, MAKRti::DtString executionName );
668 virtual int mapFomDepComplexity(DtString fomFileName);
670 virtual void mapFomNameToFileName(std::vector<DtString>* fomFileNames);
672 virtual void sortFomFileNames(std::vector<DtString>* fomFileNames);
675 virtual void testReadFedFile(MAKRti::DtString fileName, MAKRti::DtString executionName);
679 virtual void readFedFile(MAKRti::DtString fileName, MAKRti::DtString executionName);
683 virtual void readFedFilePtr(
const FILE* fp,
684 const MAKRti::DtString& fileName,
685 const MAKRti::DtString& executionName );
689 virtual void addFedExNameMapping(
const MAKRti::DtString& execName,
690 const MAKRti::DtString& timeImplName,
const MAKRti::DtString& fed);
692 virtual void addFomModuleNameMapping(
const MAKRti::DtString executionName,
693 const std::vector<MAKRti::DtString>& modules);
695 virtual void addFomModuleNameMapping(
const MAKRti::DtString executionName,
696 const MAKRti::DtString& modules );
701 #elif defined(DtIFSPEC1516E)
709 virtual void postJoinInit(
710 const char* federateType,
711 const char* executionName,
712 const char* federateName
714 , rti1516::FederateAmbassador* federateAmbassadorReference);
715 #elif defined(DtIFSPEC1516E)
718 , RTI::FederateAmbassador* federateAmbassadorReference);
721 virtual void postJoinConfirmInit();
731 static void processResign(
const DtResignMsg& msg,
void* usr);
749 static void processRestore(
const DtRestoreMsg& msg,
void* usr);
787 virtual void createObjectMgr();
790 virtual void createInteractionMgr();
793 virtual void createDdmMgr();
796 virtual void createTimeMgr();
799 virtual void createMomMgr();
802 virtual void createTestMgr();
809 #elif defined(DtIFSPEC1516E)
826 DtFedReader * getReader( DtFomType theFomType,
DtFomClassMgr* target);
827 DtFedReader * getReader( DtFomType theFomType );
828 void addToParsedFomMap( DtFedReader * myFedReader,
const MAKRti::DtString & fileNameToUse,
DtFomClassMgr* fedTarget,
unsigned long theCrc = 0);
832 rti1516::RTIambassador* myRtiAmb;
833 #elif defined(DtIFSPEC1516E)
862 DtDataDistMgr* myDdmMgr;
866 DtTimeMgr* myTimeMgr;
900 std::vector<std::wstring> myFomModulesNames;
902 std::vector<std::wstring> myJoinFomModulesNames;
903 std::vector<char*> myFomModuleData;
913 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
DtFedReader * myFedReader
Temporary internal reader used until changes made to VR-Link fed reader.
Definition: fedMgr.h:929
std::pair< DtFedMgrPostTickCallbackFcn, void * > DtFedMgrPostTickCallbackInfo
Definition: fedMgr.h:100
DtRtiAmbassadorBaseImplementor * myAmbImpl
The federate's RTI Ambassador Implementor.
Definition: fedMgr.h:840
std::map< DtString, DtString > DtFileNameToFomNameMap
Definition: fedMgr.h:106
MAKRti::DtString myFedName
Federate name.
Definition: fedMgr.h:885
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:926
MAKRti::DtString myCurrentTimeImplName
Current time implementation name.
Definition: fedMgr.h:897
std::multimap< int, DtString > DtComplexToFomsMMap
Definition: fedMgr.h:107
std::map< DtString, int > DtFomToComplexMap
Definition: fedMgr.h:104
DtFomClassMgr * myFom
The FOM manager.
Definition: fedMgr.h:850
Definition: savRespMsg.h:29
virtual bool restore(DtRtiSaveFile &file)
Perform the actual restore.
Definition: fedMgr.h:520
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:959
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:960
std::map< MAKRti::DtString, std::set< MAKRti::DtString > > myFedFileNames
Definition: fedMgr.h:939
DtParsedFomsMap myParsedFoms
Map containing FOMs parsed into FedTargets.
Definition: fedMgr.h:942
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:922
bool myMomSaveEvokeCallbacks
State of evoking callbacks prior to MOM resign.
Definition: fedMgr.h:999
Definition: LogicalTime.h:35
DtInteractionMgr * myInterMgr
The interaction manager.
Definition: fedMgr.h:853
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:101
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:822
DtBoost::shared_ptr< DtRtiAssistantLrcClient > myAssistantClient
Manages the connection to the RTI Assistant.
Definition: fedMgr.h:963
Definition: fedHandleSet.h:102
unsigned long myFedExHandle
Federation handle.
Definition: fedMgr.h:878
DtFomNameToFileNameMap myFomToFileMap
Definition: fedMgr.h:956
Definition: resignMsg.h:36
Definition: resignDirectiveMsg.h:24
DtFomSorter * myFomSorter
Definition: fedMgr.h:1038
std::pair< DtString, DtString > DtFomFilePair
Definition: fedMgr.h:957
DtTime myLastTickTime
The last tick time.
Definition: fedMgr.h:1025
DtFedReader * myFedReader1516e
Definition: fedMgr.h:932
std::map< MAKRti::DtString, std::pair< char *, int > > DtFileNameToDataMap
Definition: fedMgr.h:103
bool myMomResign
Indicates MOM caused resign.
Definition: fedMgr.h:996
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:951
unsigned long myTickCount
Tick counter.
Definition: fedMgr.h:1008
std::map< DtString, DtString > DtFomNameToFileNameMap
Definition: fedMgr.h:105
DtFedReader * myFedReader13
Definition: fedMgr.h:930
MAKRti::DtString myFedType
Federate type.
Definition: fedMgr.h:881
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:88
bool myRestoreRequested
Indicates restore requested.
Definition: fedMgr.h:974
bool mySaveBegun
Indicates save begun.
Definition: fedMgr.h:972
DtLogicalTimeFactory * myLogicalTimeFactory
Logical time factory Even if NULL, need to have this factory.
Definition: fedMgr.h:912
bool myIsTicking
indicates currently processing tick
Definition: fedMgr.h:1011
DtConnectionMgr * myConnectMgr
The connection manager.
Definition: fedMgr.h:847
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:1045
MAKRti::DtTime myLastHeartbeat
Time of last heartbeat.
Definition: fedMgr.h:908
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:45
bool myRestoreInitiated
Indicates restore initiated.
Definition: fedMgr.h:976
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:953
DtComplexToFomsMMap myComplexToFomsMMap
Definition: fedMgr.h:950
MAKRti::DtString myMimName
MIM name.
Definition: fedMgr.h:894
unsigned long myFlags
Definition: fedMgr.h:1016
bool myIgnoreForcedResign
Prevents forcing duplicate resign.
Definition: fedMgr.h:990
DtFederateHandle myFedHandle
Federate handle.
Definition: fedMgr.h:888
bool myRestoreBegun
Indicates restore begun.
Definition: fedMgr.h:978
float mySignalTickInterval
The Signal Tick Interval.
Definition: fedMgr.h:1022
bool myResignInProgress
Indicates a resign is in progress.
Definition: fedMgr.h:1002
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:859
MAKRti::DtFilename myStandardMimPath
Definition: fedMgr.h:1029
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:986
DtFedReader * myFedReader1516
Definition: fedMgr.h:931
std::map< DtFederateHandle, MAKRti::DtString > myFederateHandleToName
Definition: fedMgr.h:1033
RTI::FedTimeFactory myHlaTimeFactory
Definition: fedMgr.h:915
RTI::RTIambassador * myRtiAmb
The federate's RTI Ambassador.
Definition: fedMgr.h:836
DtObjectMgr * myObjMgr
The object manager.
Definition: fedMgr.h:856
MAKRti::DtTime myResponseInterval
Interval to wait for response message during a message protocol.
Definition: fedMgr.h:872
std::pair< DtString, int > DtFomCompPair
Definition: fedMgr.h:954
Definition: resRepMsg.h:24
The DtAssistantExitMsg defines a wrapper for the RTI Assistant exit message used by the Assistant to ...
Definition: assistantExitMsg.h:32
MAKRti::DtString myLastSaveLabel
The last save label.
Definition: fedMgr.h:982
This file contains enumerations used by the interface.
std::map< MAKRti::DtString, DtFederateHandle > myFederateNameToHandle
Definition: fedMgr.h:1032
std::map< MAKRti::DtString, DtFomClassMgr * > DtParsedFomsMap
Definition: fedMgr.h:102
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:937
This file contains the rti1516e::RTIambassador class.
MAKRti::DtString myCurrentFedFileName
Current FED/FDD file name.
Definition: fedMgr.h:891
virtual bool save(DtRtiSaveFile &file)
Perform the actual save.
Definition: fedMgr.h:517
#define DT_DLL_LRC
Definition: rtiMsConfig.h:126
MAKRti::DtString myFedExName
Federation execution name.
Definition: fedMgr.h:875
Definition: saveFile.h:21
MAKRti::DtString mySaveLabel
The save label.
Definition: fedMgr.h:980
DtTestManager * myTestMgr
Definition: fedMgr.h:1018
bool myForcedToResign
Indicates forced resign occurred.
Definition: fedMgr.h:993
MAKRti::DtResignAction myResignAction
The resign action.
Definition: fedMgr.h:1036
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:1014
MAKRti::DtClock myClock
Clock for timing.
Definition: fedMgr.h:1005
DtFedAmbWrapper * myPrinter
Prints data for federate ambassador calls.
Definition: fedMgr.h:919
MAKRti::DtString myRestoreLabel
The restore label.
Definition: fedMgr.h:984
static DtFederateMgrCreator theCreator
The plugin creator.
Definition: fedMgr.h:1042
bool mySaveInitiated
Indicates save initiated.
Definition: fedMgr.h:970
bool myNetworkTestEnabled
Definition: fedMgr.h:1019
DtPostTickCallbackMap myPostTickCallbacks
Definition: fedMgr.h:1027