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)
27 #include "RTI/RTIambassador.h"
28 #include "RTI/LogicalTimeFactory.h"
29 #include "RTI/Enums.h"
91 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
94 typedef void (*DtFedMgrPostTickCallbackFcn) (
void*);
105 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
124 const char* executionName,
const char* timeImplName,
126 const std::vector<DtString>& fomModules,
127 const char* mimModule) = 0;
129 const char* fed) = 0;
134 const char* executionName) = 0;
138 virtual void listFederationExecutions() = 0;
144 const char* federateType,
145 const char* federationExecutionName,
147 unsigned long flags) = 0;
148 #elif defined(DtIFSPEC1516E)
150 const char* federateName,
151 const char* federateType,
152 const char* federationExecutionName,
153 const std::vector<DtString>& fomModules,
154 unsigned long flags) = 0;
157 const char* yourName,
158 const char* executionName,
160 unsigned long flags) = 0;
167 #elif defined(DtIFSPEC1516E)
180 #elif defined(DtIFSPEC1516E)
187 const char* theTag) = 0;
196 #elif defined(DtIFSPEC1516E)
214 virtual MAKRti::DtString
fedFileName(MAKRti::DtString execName);
219 virtual MAKRti::DtString timeImplName(MAKRti::DtString execName);
228 #elif defined(DtIFSPEC1516E)
238 virtual void pretick();
239 virtual void posttick();
241 virtual void postTickCallbacks();
244 virtual void removePostTickCallback(
const MAKRti::DtString& label);
255 virtual void queryFederationRestoreStatus()=0;
256 #elif defined(DtIFSPEC1516E)
265 virtual void queryFederationRestoreStatus()=0;
268 virtual void abortFederationSave () =0;
271 virtual void abortFederationRestore () =0;
312 virtual MAKRti::DtString
const & fedType()
const;
315 virtual MAKRti::DtString
const & fedName()
const;
318 virtual MAKRti::DtString
const & fedExName()
const;
321 virtual unsigned long fedExHandle()
const;
324 virtual bool isJoined()
const;
331 #elif defined(DtIFSPEC1516E)
344 #elif defined(DtIFSPEC1516E)
377 virtual DtTimeMgr* timeMgr();
378 virtual DtTimeMgr* timeMgr()
const;
387 virtual DtMomMgr* momMgr();
388 virtual DtMomMgr* momMgr()
const;
393 virtual DtDataDistMgr* ddmMgr();
394 virtual DtDataDistMgr* ddmMgr()
const;
405 virtual bool forcedToResign()
const;
408 virtual bool saveInitiated()
const;
411 virtual bool saveBegun()
const;
414 virtual bool restoreRequested()
const;
417 virtual bool restoreInitiated()
const;
420 virtual bool restoreBegun()
const;
423 virtual const MAKRti::DtString& restoreLabel()
const;
426 virtual const MAKRti::DtString& lastRestoreLabel()
const;
429 const MAKRti::DtString& currentFedFileName()
const;
430 void setCurrentFedFileName(
const MAKRti::DtString& );
433 const MAKRti::DtString& mimName()
const;
434 void setMimName(
const MAKRti::DtString& );
438 void addFomModule(
const MAKRti::DtString& name,
char* buffer );
441 const std::vector<std::wstring>& fomModuleNames()
const;
444 void addJoinFomModuleNames(
const std::vector<MAKRti::DtString>& moduleNames);
445 const std::vector<std::wstring>& joinFomModuleNames()
const;
449 const char* fomModuleData(MAKRti::DtU32 moduleIndicator)
const;
453 const char* joinFomModuleData(MAKRti::DtU32 moduleIndicator)
const;
456 const char* mimData()
const;
460 const MAKRti::DtString& currentTimeImplName()
const;
461 void setCurrentTimeImplName(
const MAKRti::DtString& );
464 virtual const MAKRti::DtString& saveLabel()
const;
465 virtual void setSaveLabel(
const MAKRti::DtString& value);
468 virtual const MAKRti::DtString& lastSaveLabel()
const;
469 virtual void setLastSaveLabel(
const MAKRti::DtString& value);
473 virtual void testSaveProgress() = 0;
477 virtual void initiateSave();
483 #elif defined(DtIFSPEC1516E)
486 virtual void initiateTimedSave(
RTI::FedTime const& saveTime);
500 virtual MAKRti::DtString& getSaveFileName(
const char* label,
502 bool extendName=
true);
509 virtual MAKRti::DtString& getRestoreFileName(
const char* label,
513 virtual unsigned long tickCount()
const;
516 virtual bool isTicking()
const;
526 virtual void setWebServerConnected(
bool connected );
528 unsigned long flags()
const;
530 DtResignAction automaticResignDirective()
const;
540 virtual const MAKRti::DtString& getFederateNameFromHandle(
DtFederateHandle handle );
541 virtual DtFederateHandle getFederateHandleFromName(
const MAKRti::DtString& name );
556 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient);
560 static void setCreatorFunction(DtFederateMgrCreator fn);
566 static void setInternalCreatorFunction(DtFederateMgrCreator fn);
576 virtual void processResign(
const DtResignMsg& msg);
626 virtual void sendAlive();
629 virtual void sendResignMsg(
const char* fedExName,
633 void sendTickedMsg();
636 virtual void applyRidParameters();
642 virtual MAKRti::DtFilename fedFileNameToUse(MAKRti::DtString fileName, MAKRti::DtString executionName );
645 virtual void testReadFedFile(MAKRti::DtString fileName, MAKRti::DtString executionName);
649 virtual void readFedFile(MAKRti::DtString fileName, MAKRti::DtString executionName);
653 virtual void readFedFilePtr(
const FILE* fp,
654 const MAKRti::DtString& fileName,
655 const MAKRti::DtString& executionName );
659 virtual void addFedExNameMapping(
const MAKRti::DtString& execName,
660 const MAKRti::DtString& timeImplName,
const MAKRti::DtString& fed);
662 virtual void addFomModuleNameMapping(
const MAKRti::DtString executionName,
663 const std::vector<MAKRti::DtString>& modules);
665 virtual void addFomModuleNameMapping(
const MAKRti::DtString executionName,
666 const MAKRti::DtString& modules );
671 #elif defined(DtIFSPEC1516E)
679 virtual void postJoinInit(
680 const char* federateType,
681 const char* executionName,
682 const char* federateName
685 #elif defined(DtIFSPEC1516E)
699 static void processResign(
const DtResignMsg& msg,
void* usr);
717 static void processRestore(
const DtRestoreMsg& msg,
void* usr);
755 virtual void createObjectMgr();
758 virtual void createInteractionMgr();
761 virtual void createDdmMgr();
764 virtual void createTimeMgr();
767 virtual void createMomMgr();
770 virtual void createTestMgr();
777 #elif defined(DtIFSPEC1516E)
787 DtFedReader * getReader( DtFomType theFomType,
DtFomClassMgr* target);
788 DtFedReader * getReader( DtFomType theFomType );
789 void addToParsedFomMap( DtFedReader * myFedReader,
const MAKRti::DtString & fileNameToUse,
DtFomClassMgr* fedTarget,
unsigned long theCrc = 0);
793 #elif defined(DtIFSPEC1516E)
823 DtDataDistMgr* myDdmMgr;
827 DtTimeMgr* myTimeMgr;
861 std::vector<std::wstring> myFomModulesNames;
862 std::vector<std::wstring> myJoinFomModulesNames;
863 std::vector<char*> myFomModuleData;
873 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
967 std::map< MAKRti::DtString, DtFederateHandle > myFederateNameToHandle;
968 std::map< DtFederateHandle, MAKRti::DtString > myFederateHandleToName;