12 #ifdef DtIFSPEC1516_2025
24 typedef DtMomObserver* (*DtMomObserverCreator)(DtMomMgr* momMgrPtr);
26 class DtMomObserver :
public DtRtiAmbassadorObserver
32 static DtMomObserver* create(DtMomMgr* momMgrPtr);
33 static void setCreator(DtMomObserverCreator functionPtr);
37 DtMomObserver( DtMomMgr* momMgrPtr );
40 virtual ~DtMomObserver()
override;
47 virtual unsigned long objectRegisterCount()
const;
51 virtual unsigned long objectDeleteCount()
const;
84 virtual void createFederationExecution(
85 std::wstring
const& federationExecutionName,
86 std::wstring
const& fomModule,
87 std::wstring
const& logicalTimeImplementationName,
90 virtual void createFederationExecution(
91 std::wstring
const& federationExecutionName,
92 std::vector<std::wstring>
const& fomModules,
93 std::wstring
const& logicalTimeImplementationName,
96 virtual void createFederationExecutionWithMIM(
97 std::wstring
const& federationExecutionName,
98 std::vector<std::wstring>
const& fomModules,
99 std::wstring
const& mimModule,
100 std::wstring
const& logicalTimeImplementationName,
103 virtual void destroyFederationExecution(
104 std::wstring
const& federationExecutionName,
107 virtual void joinFederationExecution(
108 std::wstring
const& federateType,
109 std::wstring
const& federationExecutionName,
110 std::vector<std::wstring>
const& additionalFomModules,
113 virtual void joinFederationExecution(
114 std::wstring
const& federateName,
115 std::wstring
const& federateType,
116 std::wstring
const& federationExecutionName,
117 std::vector<std::wstring>
const& additionalFomModules,
120 virtual void resignFederationExecution(
124 virtual void registerFederationSynchronizationPoint(
125 std::wstring
const& label,
129 virtual void registerFederationSynchronizationPoint(
130 std::wstring
const& label,
135 virtual void listFederationExecutions (
138 virtual void listFederationExecutionMembers(
139 std::wstring
const& federationExecutionName,
142 virtual void synchronizationPointAchieved (
143 std::wstring
const& label,
147 virtual void requestFederationSave(
148 std::wstring
const& label,
151 virtual void requestFederationSave(
152 std::wstring
const& label,
156 virtual void federateSaveBegun (
159 virtual void federateSaveComplete (
162 virtual void federateSaveNotComplete(
165 virtual void abortFederationSave(
168 virtual void queryFederationSaveStatus (
171 virtual void requestFederationRestore(
172 std::wstring
const& label,
175 virtual void federateRestoreComplete (
178 virtual void federateRestoreNotComplete (
181 virtual void abortFederationRestore(
184 virtual void queryFederationRestoreStatus (
191 virtual void publishObjectClassAttributes(
192 rti1516_2025::ObjectClassHandle
const& theClass,
196 virtual void unpublishObjectClass(
197 rti1516_2025::ObjectClassHandle
const& theClass,
200 virtual void unpublishObjectClassAttributes(
201 rti1516_2025::ObjectClassHandle
const& theClass,
205 virtual void publishInteractionClass(
206 rti1516_2025::InteractionClassHandle
const& theInteraction,
209 virtual void unpublishInteractionClass(
210 rti1516_2025::InteractionClassHandle
const& theInteraction,
213 virtual void publishObjectClassDirectedInteractions(
214 rti1516_2025::ObjectClassHandle
const& objectClass,
218 virtual void unpublishObjectClassDirectedInteractions(
219 rti1516_2025::ObjectClassHandle
const& objectClass,
222 virtual void unpublishObjectClassDirectedInteractions(
223 rti1516_2025::ObjectClassHandle
const& objectClass,
227 virtual void subscribeObjectClassAttributes(
228 rti1516_2025::ObjectClassHandle
const& theClass,
231 std::wstring
const& updateRateDesignator,
234 virtual void unsubscribeObjectClass(
235 rti1516_2025::ObjectClassHandle
const& theClass,
238 virtual void unsubscribeObjectClassAttributes(
239 rti1516_2025::ObjectClassHandle
const& theClass,
243 virtual void subscribeInteractionClass(
244 rti1516_2025::InteractionClassHandle
const& theClass,
248 virtual void unsubscribeInteractionClass(
249 rti1516_2025::InteractionClassHandle
const& theClass,
252 virtual void subscribeObjectClassDirectedInteractions(
253 rti1516_2025::ObjectClassHandle
const& objectClass,
255 bool universally =
false,
258 virtual void unsubscribeObjectClassDirectedInteractions(
259 rti1516_2025::ObjectClassHandle
const& objectClass,
262 virtual void unsubscribeObjectClassDirectedInteractions(
263 rti1516_2025::ObjectClassHandle
const& objectClass,
271 virtual void reserveObjectInstanceName(
272 std::wstring
const& theObjectInstanceName,
275 virtual void releaseObjectInstanceName(
276 std::wstring
const& theObjectInstanceName,
279 virtual void reserveMultipleObjectInstanceNames(
280 std::set<std::wstring>
const& theObjectInstanceNames,
283 virtual void releaseMultipleObjectInstanceNames(
284 std::set<std::wstring>
const& theObjectInstanceNames,
287 virtual void registerObjectInstance(
288 rti1516_2025::ObjectClassHandle
const& theClass,
289 rti1516_2025::ObjectInstanceHandle
const* objectHandle,
292 virtual void registerObjectInstance(
293 rti1516_2025::ObjectClassHandle
const& theClass,
294 std::wstring
const& theObjectInstanceName,
295 rti1516_2025::ObjectInstanceHandle
const* objectHandle,
298 virtual void updateAttributeValues(
299 rti1516_2025::ObjectInstanceHandle
const& theObject,
304 virtual void updateAttributeValues(
305 rti1516_2025::ObjectInstanceHandle
const& theObject,
309 rti1516_2025::MessageRetractionHandle
const* retractHandle,
312 virtual void sendInteraction(
313 rti1516_2025::InteractionClassHandle
const& theInteraction,
318 virtual void sendInteraction(
319 rti1516_2025::InteractionClassHandle
const& theInteraction,
323 rti1516_2025::MessageRetractionHandle
const* retractHandle,
326 virtual void sendDirectedInteraction(
327 rti1516_2025::InteractionClassHandle
const& interactionClass,
328 rti1516_2025::ObjectInstanceHandle
const& objectInstance,
333 virtual void sendDirectedInteraction(
334 rti1516_2025::InteractionClassHandle
const& interactionClass,
335 rti1516_2025::ObjectInstanceHandle
const& objectInstance,
341 virtual void deleteObjectInstance(
342 rti1516_2025::ObjectInstanceHandle
const& theObject,
346 virtual void deleteObjectInstance(
347 rti1516_2025::ObjectInstanceHandle
const& theObject,
350 rti1516_2025::MessageRetractionHandle
const* retractHandle,
353 virtual void localDeleteObjectInstance(
354 rti1516_2025::ObjectInstanceHandle
const& theObject,
357 virtual void requestAttributeValueUpdate(
358 rti1516_2025::ObjectInstanceHandle
const& theObject,
363 virtual void requestAttributeValueUpdate(
364 rti1516_2025::ObjectClassHandle
const& theClass,
369 virtual void changeDefaultAttributeTransportationType(
370 rti1516_2025::ObjectClassHandle
const& theObjectClass,
372 rti1516_2025::TransportationTypeHandle
const& theType,
375 virtual void requestAttributeTransportationTypeChange(
376 rti1516_2025::ObjectInstanceHandle
const& theObject,
378 rti1516_2025::TransportationTypeHandle
const& theType,
381 virtual void queryAttributeTransportationType(
382 rti1516_2025::ObjectInstanceHandle
const& theObject,
383 rti1516_2025::AttributeHandle
const& theAttribute,
386 virtual void requestInteractionTransportationTypeChange (
387 rti1516_2025::InteractionClassHandle
const& theClass,
388 rti1516_2025::TransportationTypeHandle
const& theType,
391 virtual void queryInteractionTransportationType(
392 rti1516_2025::FederateHandle
const& theFederate,
393 rti1516_2025::InteractionClassHandle
const& theInteraction,
401 virtual void unconditionalAttributeOwnershipDivestiture(
402 rti1516_2025::ObjectInstanceHandle
const& theObject,
407 virtual void negotiatedAttributeOwnershipDivestiture(
408 rti1516_2025::ObjectInstanceHandle
const& theObject,
413 virtual void confirmDivestiture(
414 rti1516_2025::ObjectInstanceHandle
const& theObject,
419 virtual void attributeOwnershipAcquisition(
420 rti1516_2025::ObjectInstanceHandle
const& theObject,
425 virtual void attributeOwnershipAcquisitionIfAvailable(
426 rti1516_2025::ObjectInstanceHandle
const& theObject,
431 virtual void attributeOwnershipReleaseDenied(
432 rti1516_2025::ObjectInstanceHandle
const& theObject,
437 virtual void attributeOwnershipDivestitureIfWanted(
438 rti1516_2025::ObjectInstanceHandle
const& theObject,
444 virtual void cancelNegotiatedAttributeOwnershipDivestiture(
445 rti1516_2025::ObjectInstanceHandle
const& theObject,
449 virtual void cancelAttributeOwnershipAcquisition(
450 rti1516_2025::ObjectInstanceHandle
const& theObject,
454 virtual void queryAttributeOwnership(
455 rti1516_2025::ObjectInstanceHandle
const& theObject,
459 virtual void isAttributeOwnedByFederate(
460 rti1516_2025::ObjectInstanceHandle
const& theObject,
461 rti1516_2025::AttributeHandle
const& theAttribute,
469 virtual void enableTimeRegulation(
473 virtual void disableTimeRegulation (
476 virtual void enableTimeConstrained (
479 virtual void disableTimeConstrained (
482 virtual void timeAdvanceRequest(
486 virtual void timeAdvanceRequestAvailable(
490 virtual void nextMessageRequest(
494 virtual void nextMessageRequestAvailable(
498 virtual void flushQueueRequest(
502 virtual void enableAsynchronousDelivery (
505 virtual void disableAsynchronousDelivery (
519 virtual void modifyLookahead(
526 virtual void retract(
527 rti1516_2025::MessageRetractionHandle
const& theHandle,
530 virtual void changeAttributeOrderType(
531 rti1516_2025::ObjectInstanceHandle
const& theObject,
536 virtual void changeDefaultAttributeOrderType(
537 rti1516_2025::ObjectClassHandle
const& theObjectClass,
542 virtual void changeInteractionOrderType(
543 rti1516_2025::InteractionClassHandle
const& theClass,
551 virtual void createRegion(
553 rti1516_2025::RegionHandle
const* handle,
556 virtual void commitRegionModifications(
560 virtual void deleteRegion(
561 rti1516_2025::RegionHandle
const& theRegion,
564 virtual void registerObjectInstanceWithRegions(
565 rti1516_2025::ObjectClassHandle
const& theClass,
567 theAttributeHandleSetRegionHandleSetPairVector,
568 rti1516_2025::ObjectInstanceHandle
const* objectHandle,
571 virtual void registerObjectInstanceWithRegions(
572 rti1516_2025::ObjectClassHandle
const& theClass,
574 theAttributeHandleSetRegionHandleSetPairVector,
575 std::wstring
const& theObjectInstanceName,
576 rti1516_2025::ObjectInstanceHandle
const* objectHandle,
579 virtual void associateRegionsForUpdates(
580 rti1516_2025::ObjectInstanceHandle
const& theObject,
582 theAttributeHandleSetRegionHandleSetPairVector,
585 virtual void unassociateRegionsForUpdates(
586 rti1516_2025::ObjectInstanceHandle
const& theObject,
588 theAttributeHandleSetRegionHandleSetPairVector,
591 virtual void subscribeObjectClassAttributesWithRegions(
592 rti1516_2025::ObjectClassHandle
const& theClass,
594 theAttributeHandleSetRegionHandleSetPairVector,
596 std::wstring
const& updateRateDesignator,
599 virtual void unsubscribeObjectClassAttributesWithRegions(
600 rti1516_2025::ObjectClassHandle
const& theClass,
602 theAttributeHandleSetRegionHandleSetPairVector,
605 virtual void subscribeInteractionClassWithRegions(
606 rti1516_2025::InteractionClassHandle
const& theClass,
611 virtual void unsubscribeInteractionClassWithRegions(
612 rti1516_2025::InteractionClassHandle
const& theClass,
616 virtual void sendInteractionWithRegions(
617 rti1516_2025::InteractionClassHandle
const& interactionClass,
623 virtual void sendInteractionWithRegions(
624 rti1516_2025::InteractionClassHandle
const& interactionClass,
631 virtual void requestAttributeValueUpdateWithRegions(
632 rti1516_2025::ObjectClassHandle
const& theClass,
641 virtual void getFederateHandle(
642 std::wstring
const& theName,
643 rti1516_2025::FederateHandle
const* returnValue,
646 virtual void getFederateName(
647 rti1516_2025::FederateHandle
const& theHandle,
648 std::wstring
const* returnValue,
651 virtual void getObjectClassHandle(
652 std::wstring
const& theName,
653 rti1516_2025::ObjectClassHandle
const* returnValue,
656 virtual void getObjectClassName(
657 rti1516_2025::ObjectClassHandle
const& theHandle,
658 std::wstring
const* returnValue,
661 virtual void getAttributeHandle(
662 rti1516_2025::ObjectClassHandle
const& whichClass,
663 std::wstring
const& theAttributeName,
664 rti1516_2025::AttributeHandle
const* returnValue,
667 virtual void getAttributeName(
668 rti1516_2025::ObjectClassHandle
const& whichClass,
669 rti1516_2025::AttributeHandle
const& theHandle,
670 std::wstring
const* returnValue,
673 virtual void getUpdateRateValue(
674 std::wstring
const& updateRateDesignator,
678 virtual void getUpdateRateValueForAttribute(
679 rti1516_2025::ObjectInstanceHandle
const& theObject,
680 rti1516_2025::AttributeHandle
const& theAttribute,
684 virtual void getInteractionClassHandle (
685 std::wstring
const& theName,
686 rti1516_2025::InteractionClassHandle
const* returnValue,
689 virtual void getInteractionClassName(
690 rti1516_2025::InteractionClassHandle
const& theHandle,
691 std::wstring
const* returnValue,
694 virtual void getParameterHandle(
695 rti1516_2025::InteractionClassHandle
const& whichClass,
696 std::wstring
const& theName,
697 rti1516_2025::ParameterHandle
const* returnValue,
700 virtual void getParameterName(
701 rti1516_2025::InteractionClassHandle
const& whichClass,
702 rti1516_2025::ParameterHandle
const& theHandle,
703 std::wstring
const* returnValue,
706 virtual void getObjectInstanceHandle(
707 std::wstring
const& theName,
708 rti1516_2025::ObjectInstanceHandle
const* returnValue,
711 virtual void getObjectInstanceName(
712 rti1516_2025::ObjectInstanceHandle
const& theHandle,
713 std::wstring
const* returnValue,
716 virtual void getKnownObjectClassHandle(
717 rti1516_2025::ObjectInstanceHandle
const& theObject,
718 rti1516_2025::ObjectClassHandle
const* returnValue,
721 virtual void getTransportationTypeHandle(
722 std::wstring
const& transportationName,
723 rti1516_2025::TransportationTypeHandle
const* returnValue,
726 virtual void getTransportationTypeName(
727 rti1516_2025::TransportationTypeHandle
const& transportationType,
728 std::wstring
const* returnValue,
731 virtual void getOrderType(
732 std::wstring
const& orderName,
736 virtual void getOrderName(
738 std::wstring
const* returnValue,
741 virtual void getAvailableDimensionsForObjectClass(
742 rti1516_2025::ObjectClassHandle
const& theClass,
746 virtual void getAvailableDimensionsForInteractionClass(
747 rti1516_2025::InteractionClassHandle
const& theClass,
751 virtual void getDimensionHandle(
752 std::wstring
const& theName,
753 rti1516_2025::DimensionHandle
const* returnValue,
756 virtual void getDimensionName(
757 rti1516_2025::DimensionHandle
const& theHandle,
758 std::wstring
const* returnValue,
761 virtual void getDimensionUpperBound(
762 rti1516_2025::DimensionHandle
const& theHandle,
763 unsigned long returnValue,
766 virtual void getDimensionHandleSet(
767 rti1516_2025::RegionHandle
const& theRegionHandle,
771 virtual void getRangeBounds(
772 rti1516_2025::RegionHandle
const& theRegionHandle,
773 rti1516_2025::DimensionHandle
const& theDimensionHandle,
777 virtual void setRangeBounds(
778 rti1516_2025::RegionHandle
const& theRegionHandle,
779 rti1516_2025::DimensionHandle
const& theDimensionHandle,
783 virtual void normalizeServiceGroup(
785 unsigned long returnValue,
788 virtual void normalizeFederateHandle(
789 rti1516_2025::FederateHandle
const& theFederateHandle,
790 unsigned long returnValue,
793 virtual void normalizeObjectClassHandle(
794 rti1516_2025::ObjectClassHandle
const& theObjectClassHandle,
795 unsigned long returnValue,
798 virtual void normalizeInteractionClassHandle(
799 rti1516_2025::InteractionClassHandle
const& theInteractionClassHandle,
800 unsigned long returnValue,
803 virtual void normalizeObjectInstanceHandle(
804 rti1516_2025::ObjectInstanceHandle
const& theObjectInstanceHandle,
805 unsigned long returnValue,
808 virtual void getObjectClassRelevanceAdvisorySwitch(
811 virtual void setObjectClassRelevanceAdvisorySwitch(
bool returnValue,
814 virtual void getAttributeRelevanceAdvisorySwitch(
817 virtual void setAttributeRelevanceAdvisorySwitch(
bool switchValue,
820 virtual void getAttributeScopeAdvisorySwitch(
823 virtual void setAttributeScopeAdvisorySwitch(
bool switchValue,
826 virtual void getInteractionRelevanceAdvisorySwitch(
829 virtual void setInteractionRelevanceAdvisorySwitch(
bool switchValue,
832 virtual void getConveyRegionDesignatorSetsSwitch(
835 virtual void setConveyRegionDesignatorSetsSwitch(
bool switchValue,
838 virtual void getAutomaticResignDirective(
844 virtual void getServiceReportingSwitch(
847 virtual void setServiceReportingSwitch(
bool switchValue,
850 virtual void getExceptionReportingSwitch(
853 virtual void setExceptionReportingSwitch(
bool switchValue,
856 virtual void getSendServiceReportsToFileSwitch(
859 virtual void setSendServiceReportsToFileSwitch(
bool switchValue,
862 virtual void getAutoProvideSwitch(
865 virtual void getDelaySubscriptionEvaluationSwitch(
868 virtual void getAdvisoriesUseKnownClassSwitch(
871 virtual void getAllowRelaxedDDMSwitch(
874 virtual void getNonRegulatedGrantSwitch(
877 virtual void evokeCallback(
double approximateMinimumTimeInSeconds,
880 virtual void evokeMultipleCallbacks(
881 double approximateMinimumTimeInSeconds,
882 double approximateMaximumTimeInSeconds,
885 virtual void enableCallbacks (
888 virtual void disableCallbacks (
891 virtual void decodeFederateHandle(
893 rti1516_2025::FederateHandle
const* returnValue,
896 virtual void decodeObjectClassHandle(
898 rti1516_2025::ObjectClassHandle
const* returnValue,
901 virtual void decodeInteractionClassHandle(
903 rti1516_2025::InteractionClassHandle
const* returnValue,
906 virtual void decodeObjectInstanceHandle(
908 rti1516_2025::ObjectInstanceHandle
const* returnValue,
911 virtual void decodeAttributeHandle(
913 rti1516_2025::AttributeHandle
const* returnValue,
916 virtual void decodeParameterHandle(
918 rti1516_2025::ParameterHandle
const* returnValue,
921 virtual void decodeDimensionHandle(
923 rti1516_2025::DimensionHandle
const* returnValue,
926 virtual void decodeMessageRetractionHandle(
928 rti1516_2025::MessageRetractionHandle
const* returnValue,
931 virtual void decodeRegionHandle(
933 rti1516_2025::RegionHandle
const* returnValue,
952 virtual int verboseLevel()
const;
967 unsigned long myRegisterCount;
968 unsigned long myDeleteCount;
969 bool myAllowEvokeCallbackToBeObserved;
971 static const DtMomArgument theDfltMomArgument;
972 static const DtMomArgument theDfltRetVal;
973 static DtMomObserverCreator theCreator;
std::set< DimensionHandle > DimensionHandleSet
Definition: Typedefs.h:33
Definition: LogicalTime.h:30
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:29
Definition: Exception.h:20
OrderType
Definition: Enums.h:28
Definition: Typedefs.h:62
ServiceGroup
Definition: Enums.h:81
CallbackModel
Definition: Enums.h:22
DtHandle DtObjectClassHandle
Definition: internalTypes.h:48
DtHandle DtInteractionClassHandle
Definition: internalTypes.h:52
std::vector< AttributeHandleSetRegionHandleSetPair > AttributeHandleSetRegionHandleSetPairVector
Definition: Typedefs.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
DtHandle DtObjectInstanceHandle
Definition: internalTypes.h:50
The RTI object maintains the internal RTI object state.
Definition: rtiObject.h:123
Definition: RangeBounds.h:15
An abstract base class which must be implemented, and used by a federate.
Definition: FederateAmbassador.h:26
std::set< InteractionClassHandle > InteractionClassHandleSet
Definition: Typedefs.h:30
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:39
The object manager class processes the object management services.
Definition: objMgr.h:81
Definition: Credentials.h:17
Definition: intClassInfo.h:40
Definition: RtiConfiguration.h:17
Definition: objClassInfo.h:36
Definition: VariableLengthData.h:28
Definition: LogicalTimeInterval.h:30
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:44
ResignAction
Definition: Enums.h:34
std::set< FederateHandle > FederateHandleSet
Definition: Typedefs.h:32
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:34