25 #if defined(DtIFSPEC13)
27 #elif defined(DtIFSPEC1516)
29 #elif defined(DtIFSPEC1516E)
36 #include <vlutil/vlList.h>
52 class DtAssocSubRegMsg;
69 typedef DtMomMgr* (*DtMomMgrCreator)(
DtFederateMgr* fedMgrPtr);
84 DtMomMgr(DtMomMgr
const& );
87 DtMomMgr& operator= (DtMomMgr
const& );
92 virtual void postJoinInit();
97 virtual void postJoinConfirmInit();
100 virtual bool isPostJoined()
const;
103 virtual void resign();
106 virtual void preTick();
109 virtual void postTick();
128 virtual RTI_API::RTIambassador* rtiAmb();
129 virtual RTI_API::RTIambassador* rtiAmb()
const;
156 #if defined(DtIFSPEC13)
157 virtual void processException(
const RTI_API::Exception& exception);
159 virtual void processException(MAKRti::DtString
const & serviceName,
const RTI_API::Exception& exception);
166 #if defined(DtIFSPEC13)
167 virtual void observe(
168 const char* functionName,
169 RTI::Exception* except,
170 DtMomArgument
const & argument1,
171 DtMomArgument
const & argument2,
172 DtMomArgument
const & argument3,
173 DtMomArgument
const & argument4,
174 DtMomArgument
const & argument5,
175 DtMomArgument
const & returnArgument,
176 enum DtMomInitiatorOptions option);
178 virtual void observe(
179 const char* functionName,
180 DtMomArgumentList
const & arguments,
181 DtServiceGroup serviceGroup,
182 DtMomArgumentList
const& returnArg,
183 RTI_API::Exception* except =
NULL );
189 virtual bool serviceReportingSwitch()
const;
190 virtual void setServiceReportingSwitch(
bool value);
195 virtual bool sendServiceReportsToFileSwitch()
const;
196 virtual void setSendServiceReportsToFileSwitch(
bool value);
201 virtual bool exceptionReportingSwitch()
const;
202 virtual void setExceptionReportingSwitch(
bool value);
206 virtual int verboseLevel()
const;
207 virtual void setVerboseLevel(
int level);
212 virtual void designateFederationPublisher();
215 virtual DtMomHandleList
const & federateList()
const;
219 virtual unsigned long objectRegisterCount()
const;
223 virtual unsigned long objectDeleteCount()
const;
227 virtual unsigned long objectRemoveCount()
const;
231 virtual unsigned long objectDiscoverCount()
const;
235 virtual void resetTimeTrack(
bool clearAccumulation);
239 virtual void switchToGrantedTime();
243 virtual void switchToAdvancingTime();
247 virtual unsigned long grantedTime()
const;
250 virtual unsigned long deltaGrantedTime(MAKRti::DtTime currentTime)
const;
253 virtual void resetGrantedTime();
257 virtual unsigned long advancingTime()
const;
260 virtual unsigned long deltaAdvancingTime(MAKRti::DtTime currentTime)
const;
263 virtual void resetAdvancingTime();
266 virtual void updateTimeConstrained();
269 virtual void updateTimeRegulating();
272 virtual void updateAsynchronousDelivery();
275 virtual void updateFederateState();
278 virtual void updateTimeState();
281 virtual void updateLastSave();
284 virtual void updateNextSave();
287 virtual void updateConveyRegion();
290 virtual void updateConveyProducingFederate();
293 virtual void updateAutoProvide();
296 virtual void updateFromRID();
299 virtual void sendAlive();
307 virtual void prepareToRestore();
313 #if defined(DtIFSPEC13)
314 virtual DtHandle federateRegion()
const;
315 virtual DtHandle federateServiceRegion(DtServiceGroup serviceGroup)
const;
317 virtual RTI_API::RegionHandleSet
const& federateRegion()
const;
318 virtual RTI_API::RegionHandleSet
const& federateServiceRegion(DtServiceGroup serviceGroup)
const;
330 static void setCreatorFunction(DtMomMgrCreator fn);
333 virtual void processResign(
const DtResignMsg& msg);
338 virtual DtMomServices* serviceManager();
341 virtual DtMomInspector * inspector();
344 virtual DtMomFederatePublisher *federatePublisher();
347 virtual DtMomFederationPublisher *federationPublisher();
350 virtual DtMomInteractionFactory* factory();
354 virtual bool addPublishedInteraction(
char const* name);
357 #if defined(DtIFSPEC13)
360 virtual void sendInteraction(DtMomInteraction* response, RTI_API::RegionHandleSet
const& regionSet);
364 #if defined(DtIFSPEC13)
365 virtual void reportMomException(MAKRti::DtString
const & interactionName, MAKRti::DtString
const & exceptionDescription,
366 bool invalidParamCount);
368 virtual void reportMomException(std::wstring
const & interactionName, std::wstring
const & exceptionDescription,
369 bool invalidParamCount);
374 virtual void testInteraction(DtMomInteraction& interaction);
382 virtual void processAlive(
const DtAliveMsg& msg);
400 virtual void processLocDelete(
const DtLocDelMsg& msg);
409 virtual void processAssocSubReg(
const DtAssocSubRegMsg& msg);
415 virtual void alive (
DtHandle handle);
423 virtual void processRequestUpdatesSentInteraction(
const DtRequestUpdatesSentInteraction& interaction);
425 virtual void processRequestPublicationsInteraction(
const DtRequestPublicationsInteraction& interaction);
426 virtual void processRequestReflectionsReceivedInteraction(
const DtRequestReflectionsReceivedInteraction& interaction);
427 virtual void processRequestObjectsOwnedInteraction(
const DtRequestObjectsOwnedInteraction& interaction);
428 virtual void processRequestInteractionsSentInteraction(
const DtRequestInteractionsSentInteraction& interaction);
429 virtual void processRequestObjectsUpdatedInteraction(
const DtRequestObjectsUpdatedInteraction& interaction);
430 virtual void processRequestSubscriptionsInteraction(
const DtRequestSubscriptionsInteraction& interaction);
431 virtual void processRequestObjectInformationInteraction(
const DtRequestObjectInformationInteraction& interaction);
432 virtual void processRequestInteractionsReceivedInteraction(
const DtRequestInteractionsReceivedInteraction& interaction);
433 virtual void processRequestObjectsReflectedInteraction(
const DtRequestObjectsReflectedInteraction& interaction);
434 #if !defined(DtIFSPEC13)
435 virtual void processRequestSyncPointStatusInteraction(DtRequestSyncPointStatusInteraction
const & interaction);
436 virtual void processRequestSyncPointsInteraction(DtRequestSyncPointsInteraction
const & interaction);
437 #if !defined(DtIFSPEC1516)
438 virtual void processRequestFomModuleDataInteraction(DtRequestFomModuleDataInteraction
const & interaction);
439 virtual void processRequestFederationFomModuleDataInteraction(
440 DtRequestFederationFomModuleDataInteraction
const & interaction);
441 virtual void processRequestMimDataInteraction(DtRequestMimDataInteraction
const & interaction);
447 virtual void processModifyAttributeStateInteraction(
const DtModifyAttributeStateInteraction& interaction);
449 virtual void processSetTimingInteraction(
const DtSetTimingInteraction& interaction);
450 #if (defined(DtIFSPEC13) || defined(DtIFSPEC1516) || defined(DtIFSPEC1516E))
451 virtual void processSetExceptionLoggingInteraction(
const DtSetExceptionLoggingInteraction& interaction);
452 virtual void processSetServiceReportingInteraction(
const DtSetServiceReportingInteraction& interaction);
454 #if !defined(DtIFSPEC13)
455 virtual void processSetFederationSwitchesInteraction(DtSetFederationSwitchesInteraction
const & interaction);
456 virtual void processSetFederateSwitchesInteraction(DtSetFederateSwitchesInteraction
const & interaction);
469 static void processRequest(
const DtRequestMsg& msg,
void* usr);
472 static void processSub(
const DtSubObjMsg& msg,
void* usr);
475 static void processUnSub(
const DtUnsubObjMsg& msg,
void* usr);
478 static void processLocDelete(
const DtLocDelMsg& msg,
void* usr);
484 static void processSaveTime(
const DtSaveTimeMsg& msg,
void* usr);
493 static void processAlive(
const DtAliveMsg& msg,
void* usr);
496 static void processAssocSubReg(
const DtAssocSubRegMsg& msg,
void* usr);
507 static void processModifyAttributeStateInteraction(
const DtModifyAttributeStateInteraction& interaction,
void* usr);
509 static void processSetTimingInteraction(DtSetTimingInteraction
const& interaction,
void* usr);
510 #if (defined(DtIFSPEC13) || defined(DtIFSPEC1516) || defined(DtIFSPEC1516E))
511 static void processSetExceptionLoggingInteraction(DtSetExceptionLoggingInteraction
const & interaction,
void* usr);
512 static void processSetServiceReportingInteraction(DtSetServiceReportingInteraction
const& interaction,
void* usr);
514 #if !defined(DtIFSPEC13)
515 static void processSetFederationSwitchesInteraction(DtSetFederationSwitchesInteraction
const & interaction,
void* usr);
516 static void processSetFederateSwitchesInteraction(DtSetFederateSwitchesInteraction
const & interaction,
void* usr);
521 static void processRequestUpdatesSentInteraction(DtRequestUpdatesSentInteraction
const & interaction,
void* usr);
523 static void processRequestPublicationsInteraction(DtRequestPublicationsInteraction
const & interaction,
void* usr);
524 static void processRequestReflectionsReceivedInteraction(DtRequestReflectionsReceivedInteraction
const & interaction,
526 static void processRequestObjectsOwnedInteraction(DtRequestObjectsOwnedInteraction
const & interaction,
void* usr);
527 static void processRequestInteractionsSentInteraction(
const DtRequestInteractionsSentInteraction& interaction,
void* usr);
528 static void processRequestObjectsUpdatedInteraction(DtRequestObjectsUpdatedInteraction
const & interaction,
void* usr);
529 static void processRequestSubscriptionsInteraction(DtRequestSubscriptionsInteraction
const & interaction,
void* usr);
530 static void processRequestObjectInformationInteraction(DtRequestObjectInformationInteraction
const & interaction,
532 static void processRequestInteractionsReceivedInteraction(DtRequestInteractionsReceivedInteraction
const & interaction,
534 static void processRequestObjectsReflectedInteraction(DtRequestObjectsReflectedInteraction
const & interaction,
void* usr);
535 #if !defined(DtIFSPEC13)
536 static void processRequestSyncPointStatusInteraction(DtRequestSyncPointStatusInteraction
const & interaction,
void* usr);
537 static void processRequestSyncPointsInteraction(DtRequestSyncPointsInteraction
const & interaction,
void* usr);
538 #if !defined(DtIFSPEC1516)
539 static void processRequestFomModuleDataInteraction(DtRequestFomModuleDataInteraction
const & interaction,
void* usr);
540 static void processRequestFederationFomModuleDataInteraction(DtRequestFederationFomModuleDataInteraction
const & interaction,
542 static void processRequestMimDataInteraction(DtRequestMimDataInteraction
const & interaction,
void* usr);
548 static void processChangeAttributeOrderTypeInteraction(DtChangeAttributeOrderTypeInteraction
const & interaction,
void* usr);
550 static void processChangeAttributeTransportationTypeInteraction(
551 DtChangeAttributeTransportationTypeInteraction
const & interaction,
void* usr);
552 static void processChangeInteractionOrderTypeInteraction(DtChangeInteractionOrderTypeInteraction
const & interaction,
554 static void processChangeInteractionTransportationTypeInteraction(
555 DtChangeInteractionTransportationTypeInteraction
const & interaction,
void* usr);
556 static void processDeleteObjectInstanceInteraction(DtDeleteObjectInstanceInteraction
const & interaction,
void* usr);
557 static void processDisableAsynchronousDeliveryInteraction(DtDisableAsynchronousDeliveryInteraction
const & interaction,
559 static void processDisableTimeConstrainedInteraction(DtDisableTimeConstrainedInteraction
const & interaction,
void* usr);
560 static void processDisableTimeRegulationInteraction(DtDisableTimeRegulationInteraction
const & interaction,
void* usr);
561 static void processEnableAsynchronousDeliveryInteraction(DtEnableAsynchronousDeliveryInteraction
const & interaction,
563 static void processEnableTimeConstrainedInteraction(DtEnableTimeConstrainedInteraction
const & interaction,
void* usr);
564 static void processEnableTimeRegulationInteraction(DtEnableTimeRegulationInteraction
const & interaction,
void* usr);
565 static void processFederateRestoreCompleteInteraction(DtFederateRestoreCompleteInteraction
const & interaction,
void* usr);
566 static void processFederateSaveBegunInteraction(DtFederateSaveBegunInteraction
const & interaction,
void* usr);
567 static void processFederateSaveCompleteInteraction(DtFederateSaveCompleteInteraction
const & interaction,
void* usr);
568 static void processFlushQueueRequestInteraction(DtFlushQueueRequestInteraction
const & interaction,
void* usr);
569 static void processLocalDeleteObjectInstanceInteraction(DtLocalDeleteObjectInstanceInteraction
const & interaction,
571 static void processModifyLookaheadInteraction(DtModifyLookaheadInteraction
const & interaction,
void* usr);
572 static void processNextEventRequestInteraction(DtNextEventRequestInteraction
const & interaction,
void* usr);
573 static void processNextEventRequestAvailableInteraction(DtNextEventRequestAvailableInteraction
const & interaction,
575 static void processPublishInteractionClassInteraction(DtPublishInteractionClassInteraction
const & interaction,
void* usr);
576 static void processPublishObjectClassInteraction(DtPublishObjectClassInteraction
const & interaction,
void* usr);
577 static void processResignFederationExecutionInteraction(DtResignFederationExecutionInteraction
const & interaction,
579 static void processSubscribeInteractionClassInteraction(DtSubscribeInteractionClassInteraction
const & interaction,
581 static void processSubscribeObjectClassAttributesInteraction(DtSubscribeObjectClassAttributesInteraction
const & interaction,
583 static void processSynchronizationPointAchievedInteraction(DtSynchronizationPointAchievedInteraction
const & interaction,
585 static void processTimeAdvanceRequestInteraction(DtTimeAdvanceRequestInteraction
const & interaction,
void* usr);
586 static void processTimeAdvanceRequestAvailableInteraction(DtTimeAdvanceRequestAvailableInteraction
const & interaction,
588 static void processUnconditionalAttributeOwnershipDivestitureInteraction(
589 DtUnconditionalAttributeOwnershipDivestitureInteraction
const & interaction,
void* usr);
590 static void processUnpublishInteractionClassInteraction(DtUnpublishInteractionClassInteraction
const & interaction,
592 static void processUnpublishObjectClassInteraction(DtUnpublishObjectClassInteraction
const & interaction,
void* usr);
593 static void processUnsubscribeInteractionClassInteraction(DtUnsubscribeInteractionClassInteraction
const & interaction,
595 static void processUnsubscribeObjectClassInteraction(DtUnsubscribeObjectClassInteraction
const & interaction,
void* usr);
605 DtMomInspector* myInspector;
608 DtMomServices* myServiceManager;
611 DtMomInteractionFactory* myFactory;
614 DtMomInterCbMgr* myCallbackMgr;
620 DtMomFederatePublisher* myFederatePublisher;
623 DtMomFederationPublisher* myFederationPublisher;
626 DtMomHandleList myFederateList;
629 bool myServiceReporting;
632 bool mySendServiceReportsToFile;
635 FILE* myServiceReportFile;
636 bool myFailedToOpenServiceReportFile;
639 bool myExceptionLogging;
645 unsigned long myAlertCount;
648 unsigned long myReportServiceID;
651 bool myMomInvocation;
654 DtMomObserver* myMomObserver;
657 DtMomWrapper* myMomWrapper;
691 DtRtiApiUniquePtr<DtRtiApiTime> myTime;
693 DtRtiApiUniquePtr<DtRtiApiTimeInterval> myInterval;
694 DtRtiApiUniquePtr<DtRtiApiTime> myNullTime;
695 DtRtiApiUniquePtr<DtRtiApiTimeInterval> myNullInterval;
697 #if defined(DtIFSPEC13)
702 DtHandle myFederateServiceRegion[DtServiceGroupMax];
704 RTI_API::RegionHandleSet myFederateRegion;
708 RTI_API::RegionHandleSet myFederateServiceRegion[DtServiceGroupMax];
712 MAKRti::DtTime myBeginAdvancingTime;
715 MAKRti::DtTime myBeginGrantedTime;
718 unsigned long myGrantedTime;
721 unsigned long myAdvancingTime;
724 MAKRti::DtClock myClock;
731 static DtMomMgrCreator theCreator;
Definition: aliveMsg.h:24
virtual EventRetractionHandle sendInteraction(InteractionClassHandle theInteraction, const ParameterHandleValuePairSet &theParameters, const FedTime &theTime, const char *theTag)
Definition: joinRespMsg.h:28
Definition: joinConfMsg.h:24
Definition: ambObsList.h:20
This class manages the RTI's start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
Definition: saveTimeMsg.h:21
Definition: resignMsg.h:36
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
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:93
#define NULL
Definition: baseTypes13.h:8
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:67
Instances of DtInteractionMgr manage the sending and receiving of interactions.
Definition: interMgr.h:46
Definition: subObjMsg.h:23
The object manager class processes the object management services.
Definition: objMgr.h:81
ResignAction
Definition: datatypes.pb.h:305
Definition: intClassInfo.h:40
unsigned long DtHandle
The internal types.
Definition: internalTypes.h:41
std::set< DtInteractionClassHandle > DtInteractionClassHandleStdSet
Definition: internalTypes.h:53
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
Definition: saveFile.h:21
The declaration of internal types.
Definition: unsubObjMsg.h:24
Definition: fomModuleManager.h:39
Definition: locDelMsg.h:28
Definition: reqObjMsg.h:31
std::set< DtFederateHandle > DtFederateHandleStdSet
Definition: internalTypes.h:47
DtInteractionMsg is a message type that represents an HLA Interaction.
Definition: interactMsg.h:26