12 #ifndef RTI_STATE1516_H_
13 #define RTI_STATE1516_H_
26 class DtMomObserver :
public DtRtiAmbassadorObserver
30 static const DtMomArgument theDfltMomArgument;
31 static DtMomArgument theDfltRetVal;
34 DtMomObserver( DtMomMgr* momMgrPtr );
36 virtual ~DtMomObserver();
43 virtual unsigned long objectRegisterCount()
const;
47 virtual unsigned long objectDeleteCount()
const;
53 virtual void createFederationExecution
55 (std::wstring
const & federationExecutionName,
56 std::wstring
const & fullPathNameToTheFDDfile,
57 std::wstring
const & logicalTimeImplementationName,
58 rti1516::Exception* except=NULL);
61 virtual void destroyFederationExecution
62 (std::wstring
const & federationExecutionName,
63 rti1516::Exception* except=NULL);
66 virtual void joinFederationExecution
67 (std::wstring
const & federateType,
68 std::wstring
const & federationExecutionName,
69 rti1516::FederateAmbassador & federateAmbassador,
70 rti1516::FederateHandle federateHandle,
71 rti1516::Exception* except=NULL);
74 virtual void resignFederationExecution
76 rti1516::Exception* except=NULL);
79 virtual void registerFederationSynchronizationPoint
80 (std::wstring
const & label,
81 rti1516::VariableLengthData
const & theUserSuppliedTag,
82 rti1516::Exception* except=NULL);
84 virtual void registerFederationSynchronizationPoint
85 (std::wstring
const & label,
86 rti1516::VariableLengthData
const & theUserSuppliedTag,
88 rti1516::Exception* except=NULL);
91 virtual void synchronizationPointAchieved
92 (std::wstring
const & label,
93 rti1516::Exception* except=NULL);
96 virtual void requestFederationSave
97 (std::wstring
const & label,
98 rti1516::Exception* except=NULL);
100 virtual void requestFederationSave
101 (std::wstring
const & label,
102 rti1516::LogicalTime
const & theTime,
103 rti1516::Exception* except=NULL);
106 virtual void federateSaveBegun (
107 rti1516::Exception* except=NULL);
110 virtual void federateSaveComplete (
111 rti1516::Exception* except=NULL);
113 virtual void federateSaveNotComplete(
114 rti1516::Exception* except=NULL);
117 virtual void queryFederationSaveStatus (
118 rti1516::Exception* except=NULL);
121 virtual void requestFederationRestore
122 (std::wstring
const & label,
123 rti1516::Exception* except=NULL);
126 virtual void federateRestoreComplete (
127 rti1516::Exception* except=NULL);
129 virtual void federateRestoreNotComplete (
130 rti1516::Exception* except=NULL);
133 virtual void queryFederationRestoreStatus (
134 rti1516::Exception* except=NULL);
141 virtual void publishObjectClassAttributes
142 (rti1516::ObjectClassHandle theClass,
144 rti1516::Exception* except=NULL);
147 virtual void unpublishObjectClass
148 (rti1516::ObjectClassHandle theClass,
149 rti1516::Exception* except=NULL);
151 virtual void unpublishObjectClassAttributes
152 (rti1516::ObjectClassHandle theClass,
154 rti1516::Exception* except=NULL);
157 virtual void publishInteractionClass
158 (rti1516::InteractionClassHandle theInteraction,
159 rti1516::Exception* except=NULL);
162 virtual void unpublishInteractionClass
163 (rti1516::InteractionClassHandle theInteraction,
164 rti1516::Exception* except=NULL);
167 virtual void subscribeObjectClassAttributes
168 (rti1516::ObjectClassHandle theClass,
171 rti1516::Exception* except=NULL);
174 virtual void unsubscribeObjectClass
175 (rti1516::ObjectClassHandle theClass,
176 rti1516::Exception* except=NULL);
178 virtual void unsubscribeObjectClassAttributes
179 (rti1516::ObjectClassHandle theClass,
181 rti1516::Exception* except=NULL);
184 virtual void subscribeInteractionClass
185 (rti1516::InteractionClassHandle theClass,
187 rti1516::Exception* except=NULL);
190 virtual void unsubscribeInteractionClass
191 (rti1516::InteractionClassHandle theClass,
192 rti1516::Exception* except=NULL);
199 virtual void reserveObjectInstanceName
200 (std::wstring
const & theObjectInstanceName,
201 rti1516::Exception* except=NULL);
204 virtual void registerObjectInstance
205 (rti1516::ObjectClassHandle theClass,
206 rti1516::ObjectInstanceHandle objectHandle,
207 rti1516::Exception* except=NULL);
209 virtual void registerObjectInstance
210 (rti1516::ObjectClassHandle theClass,
211 std::wstring
const & theObjectInstanceName,
212 rti1516::ObjectInstanceHandle objectHandle,
213 rti1516::Exception* except=NULL);
216 virtual void updateAttributeValues
217 (rti1516::ObjectInstanceHandle theObject,
219 rti1516::VariableLengthData
const & theUserSuppliedTag,
220 rti1516::Exception* except=NULL);
222 virtual void updateAttributeValues
223 (rti1516::ObjectInstanceHandle theObject,
225 rti1516::VariableLengthData
const & theUserSuppliedTag,
226 rti1516::LogicalTime
const & theTime,
227 rti1516::MessageRetractionHandle retractHandle,
228 rti1516::Exception* except=NULL);
231 virtual void sendInteraction
232 (rti1516::InteractionClassHandle theInteraction,
234 rti1516::VariableLengthData
const & theUserSuppliedTag,
235 rti1516::Exception* except=NULL);
237 virtual void sendInteraction
238 (rti1516::InteractionClassHandle theInteraction,
240 rti1516::VariableLengthData
const & theUserSuppliedTag,
241 rti1516::LogicalTime
const & theTime,
242 rti1516::MessageRetractionHandle retractHandle,
243 rti1516::Exception* except=NULL);
246 virtual void deleteObjectInstance
247 (rti1516::ObjectInstanceHandle theObject,
248 rti1516::VariableLengthData
const & theUserSuppliedTag,
249 rti1516::Exception* except=NULL);
251 virtual void deleteObjectInstance
252 (rti1516::ObjectInstanceHandle theObject,
253 rti1516::VariableLengthData
const & theUserSuppliedTag,
254 rti1516::LogicalTime
const & theTime,
255 rti1516::MessageRetractionHandle retractHandle,
256 rti1516::Exception* except=NULL);
259 virtual void localDeleteObjectInstance
260 (rti1516::ObjectInstanceHandle theObject,
261 rti1516::Exception* except=NULL);
264 virtual void changeAttributeTransportationType
265 (rti1516::ObjectInstanceHandle theObject,
268 rti1516::Exception* except=NULL);
271 virtual void changeInteractionTransportationType
272 (rti1516::InteractionClassHandle theClass,
274 rti1516::Exception* except=NULL);
277 virtual void requestAttributeValueUpdate
278 (rti1516::ObjectInstanceHandle theObject,
280 rti1516::VariableLengthData
const & theUserSuppliedTag,
281 rti1516::Exception* except=NULL);
283 virtual void requestAttributeValueUpdate
284 (rti1516::ObjectClassHandle theClass,
286 rti1516::VariableLengthData
const & theUserSuppliedTag,
287 rti1516::Exception* except=NULL);
294 virtual void unconditionalAttributeOwnershipDivestiture
295 (rti1516::ObjectInstanceHandle theObject,
297 rti1516::Exception* except=NULL);
300 virtual void negotiatedAttributeOwnershipDivestiture
301 (rti1516::ObjectInstanceHandle theObject,
303 rti1516::VariableLengthData
const & theUserSuppliedTag,
304 rti1516::Exception* except=NULL);
307 virtual void confirmDivestiture
308 (rti1516::ObjectInstanceHandle theObject,
310 rti1516::VariableLengthData
const & theUserSuppliedTag,
311 rti1516::Exception* except=NULL);
314 virtual void attributeOwnershipAcquisition
315 (rti1516::ObjectInstanceHandle theObject,
317 rti1516::VariableLengthData
const & theUserSuppliedTag,
318 rti1516::Exception* except=NULL);
321 virtual void attributeOwnershipAcquisitionIfAvailable
322 (rti1516::ObjectInstanceHandle theObject,
324 rti1516::Exception* except=NULL);
327 virtual void attributeOwnershipDivestitureIfWanted
328 (rti1516::ObjectInstanceHandle theObject,
331 rti1516::Exception* except=NULL);
334 virtual void cancelNegotiatedAttributeOwnershipDivestiture
335 (rti1516::ObjectInstanceHandle theObject,
337 rti1516::Exception* except=NULL);
340 virtual void cancelAttributeOwnershipAcquisition
341 (rti1516::ObjectInstanceHandle theObject,
343 rti1516::Exception* except=NULL);
346 virtual void queryAttributeOwnership
347 (rti1516::ObjectInstanceHandle theObject,
348 rti1516::AttributeHandle theAttribute,
349 rti1516::Exception* except=NULL);
352 virtual void isAttributeOwnedByFederate
353 (rti1516::ObjectInstanceHandle theObject,
354 rti1516::AttributeHandle theAttribute,
356 rti1516::Exception* except=NULL);
363 virtual void enableTimeRegulation
364 (rti1516::LogicalTimeInterval
const & theLookahead,
365 rti1516::Exception* except=NULL);
368 virtual void disableTimeRegulation (
369 rti1516::Exception* except=NULL);
372 virtual void enableTimeConstrained (
373 rti1516::Exception* except=NULL);
376 virtual void disableTimeConstrained (
377 rti1516::Exception* except=NULL);
380 virtual void timeAdvanceRequest
381 (rti1516::LogicalTime
const & theTime,
382 rti1516::Exception* except=NULL);
385 virtual void timeAdvanceRequestAvailable
386 (rti1516::LogicalTime
const & theTime,
387 rti1516::Exception* except=NULL);
390 virtual void nextMessageRequest
391 (rti1516::LogicalTime
const & theTime,
392 rti1516::Exception* except=NULL);
395 virtual void nextMessageRequestAvailable
396 (rti1516::LogicalTime
const & theTime,
397 rti1516::Exception* except=NULL);
400 virtual void flushQueueRequest
401 (rti1516::LogicalTime
const & theTime,
402 rti1516::Exception* except=NULL);
405 virtual void enableAsynchronousDelivery (
406 rti1516::Exception* except=NULL);
409 virtual void disableAsynchronousDelivery (
410 rti1516::Exception* except=NULL);
413 virtual void queryGALT (rti1516::LogicalTime & theTime,
415 rti1516::Exception* except=NULL);
418 virtual void queryLogicalTime (rti1516::LogicalTime & theTime,
419 rti1516::Exception* except=NULL);
422 virtual void queryLITS (rti1516::LogicalTime & theTime,
424 rti1516::Exception* except=NULL);
427 virtual void modifyLookahead
428 (rti1516::LogicalTimeInterval
const & theLookahead,
429 rti1516::Exception* except=NULL);
432 virtual void queryLookahead (rti1516::LogicalTimeInterval & interval,
433 rti1516::Exception* except=NULL);
437 (rti1516::MessageRetractionHandle theHandle,
438 rti1516::Exception* except=NULL);
441 virtual void changeAttributeOrderType
442 (rti1516::ObjectInstanceHandle theObject,
445 rti1516::Exception* except=NULL);
448 virtual void changeInteractionOrderType
449 (rti1516::InteractionClassHandle theClass,
451 rti1516::Exception* except=NULL);
458 virtual void createRegion
460 rti1516::RegionHandle handle,
461 rti1516::Exception* except=NULL);
464 virtual void commitRegionModifications
466 rti1516::Exception* except=NULL);
469 virtual void deleteRegion
470 (rti1516::RegionHandle theRegion,
471 rti1516::Exception* except=NULL);
474 virtual void registerObjectInstanceWithRegions
475 (rti1516::ObjectClassHandle theClass,
477 theAttributeHandleSetRegionHandleSetPairVector,
478 rti1516::ObjectInstanceHandle objectHandle,
479 rti1516::Exception* except=NULL);
481 virtual void registerObjectInstanceWithRegions
482 (rti1516::ObjectClassHandle theClass,
484 theAttributeHandleSetRegionHandleSetPairVector,
485 std::wstring
const & theObjectInstanceName,
486 rti1516::ObjectInstanceHandle objectHandle,
487 rti1516::Exception* except=NULL);
490 virtual void associateRegionsForUpdates
491 (rti1516::ObjectInstanceHandle theObject,
493 theAttributeHandleSetRegionHandleSetPairVector,
494 rti1516::Exception* except=NULL);
497 virtual void unassociateRegionsForUpdates
498 (rti1516::ObjectInstanceHandle theObject,
500 theAttributeHandleSetRegionHandleSetPairVector,
501 rti1516::Exception* except=NULL);
504 virtual void subscribeObjectClassAttributesWithRegions
505 (rti1516::ObjectClassHandle theClass,
507 theAttributeHandleSetRegionHandleSetPairVector,
509 rti1516::Exception* except=NULL);
512 virtual void unsubscribeObjectClassAttributesWithRegions
513 (rti1516::ObjectClassHandle theClass,
515 theAttributeHandleSetRegionHandleSetPairVector,
516 rti1516::Exception* except=NULL);
519 virtual void subscribeInteractionClassWithRegions
520 (rti1516::InteractionClassHandle theClass,
523 rti1516::Exception* except=NULL);
526 virtual void unsubscribeInteractionClassWithRegions
527 (rti1516::InteractionClassHandle theClass,
529 rti1516::Exception* except=NULL);
532 virtual void sendInteractionWithRegions
533 (rti1516::InteractionClassHandle theInteraction,
536 rti1516::VariableLengthData
const & theUserSuppliedTag,
537 rti1516::Exception* except=NULL);
539 virtual void sendInteractionWithRegions
540 (rti1516::InteractionClassHandle theInteraction,
543 rti1516::VariableLengthData
const & theUserSuppliedTag,
544 rti1516::LogicalTime
const & theTime,
545 rti1516::MessageRetractionHandle retractHandle,
546 rti1516::Exception* except=NULL);
549 virtual void requestAttributeValueUpdateWithRegions
550 (rti1516::ObjectClassHandle theClass,
552 rti1516::VariableLengthData
const & theUserSuppliedTag,
553 rti1516::Exception* except=NULL);
560 virtual void getObjectClassHandle
561 (std::wstring
const & theName,
562 rti1516::ObjectClassHandle classHandle,
563 rti1516::Exception* except=NULL);
566 virtual void getObjectClassName
567 (rti1516::ObjectClassHandle theHandle,
569 rti1516::Exception* except=NULL);
572 virtual void getAttributeHandle
573 (rti1516::ObjectClassHandle whichClass,
574 std::wstring
const & theAttributeName,
575 rti1516::AttributeHandle handle,
576 rti1516::Exception* except=NULL);
579 virtual void getAttributeName
580 (rti1516::ObjectClassHandle whichClass,
581 rti1516::AttributeHandle theHandle,
583 rti1516::Exception* except=NULL);
586 virtual void getInteractionClassHandle
587 (std::wstring
const & theName,
588 rti1516::InteractionClassHandle handle,
589 rti1516::Exception* except=NULL);
592 virtual void getInteractionClassName
593 (rti1516::InteractionClassHandle theHandle,
595 rti1516::Exception* except=NULL);
598 virtual void getParameterHandle
599 (rti1516::InteractionClassHandle whichClass,
600 std::wstring
const & theName,
601 rti1516::ParameterHandle handle,
602 rti1516::Exception* except=NULL);
605 virtual void getParameterName
606 (rti1516::InteractionClassHandle whichClass,
607 rti1516::ParameterHandle theHandle,
609 rti1516::Exception* except=NULL);
612 virtual void getObjectInstanceHandle
613 (std::wstring
const & theName,
614 rti1516::ObjectInstanceHandle objectHandle,
615 rti1516::Exception* except=NULL);
618 virtual void getObjectInstanceName
619 (rti1516::ObjectInstanceHandle theHandle,
621 rti1516::Exception* except=NULL);
624 virtual void getDimensionHandle
625 (std::wstring
const & theName,
626 rti1516::DimensionHandle handle,
627 rti1516::Exception* except=NULL);
630 virtual void getDimensionName
631 (rti1516::DimensionHandle theHandle,
633 rti1516::Exception* except=NULL);
636 virtual void getDimensionUpperBound
637 (rti1516::DimensionHandle theHandle,
638 unsigned long upperBound,
639 rti1516::Exception* except=NULL);
642 virtual void getAvailableDimensionsForClassAttribute
643 (rti1516::ObjectClassHandle theClass,
644 rti1516::AttributeHandle theHandle,
646 rti1516::Exception* except=NULL);
649 virtual void getKnownObjectClassHandle
650 (rti1516::ObjectInstanceHandle theObject,
651 rti1516::ObjectClassHandle classHandle,
652 rti1516::Exception* except=NULL);
655 virtual void getAvailableDimensionsForInteractionClass
656 (rti1516::InteractionClassHandle theClass,
658 rti1516::Exception* except=NULL);
661 virtual void getTransportationType
662 (std::wstring
const & transportationName,
664 rti1516::Exception* except=NULL);
667 virtual void getTransportationName
670 rti1516::Exception* except=NULL);
673 virtual void getOrderType
674 (std::wstring
const & orderName,
676 rti1516::Exception* except=NULL);
679 virtual void getOrderName
682 rti1516::Exception* except=NULL);
685 virtual void enableObjectClassRelevanceAdvisorySwitch (
686 rti1516::Exception* except=NULL);
689 virtual void disableObjectClassRelevanceAdvisorySwitch (
690 rti1516::Exception* except=NULL);
693 virtual void enableAttributeRelevanceAdvisorySwitch (
694 rti1516::Exception* except=NULL);
697 virtual void disableAttributeRelevanceAdvisorySwitch (
698 rti1516::Exception* except=NULL);
701 virtual void enableAttributeScopeAdvisorySwitch (
702 rti1516::Exception* except=NULL);
705 virtual void disableAttributeScopeAdvisorySwitch (
706 rti1516::Exception* except=NULL);
709 virtual void enableInteractionRelevanceAdvisorySwitch (
710 rti1516::Exception* except=NULL);
713 virtual void disableInteractionRelevanceAdvisorySwitch (
714 rti1516::Exception* except=NULL);
717 virtual void getDimensionHandleSet
718 (rti1516::RegionHandle theRegionHandle,
720 rti1516::Exception* except=NULL);
723 virtual void getRangeBounds
724 (rti1516::RegionHandle theRegionHandle,
725 rti1516::DimensionHandle theDimensionHandle,
726 rti1516::RangeBounds bounds,
727 rti1516::Exception* except=NULL);
730 virtual void setRangeBounds
731 (rti1516::RegionHandle theRegionHandle,
732 rti1516::DimensionHandle theDimensionHandle,
733 rti1516::RangeBounds
const & theRangeBounds,
734 rti1516::Exception* except=NULL);
737 virtual void normalizeFederateHandle
738 (rti1516::FederateHandle theFederateHandle,
739 unsigned long normal,
740 rti1516::Exception* except=NULL);
743 virtual void normalizeServiceGroup
744 (rti1516::ServiceGroupIndicator theServiceGroup,
745 unsigned long normal,
746 rti1516::Exception* except=NULL);
751 virtual void evokeCallback(
double approximateMinimumTimeInSeconds,
753 rti1516::Exception* except=NULL);
756 virtual void evokeMultipleCallbacks(
double approximateMinimumTimeInSeconds,
757 double approximateMaximumTimeInSeconds,
759 rti1516::Exception* except=NULL);
762 virtual void enableCallbacks (
763 rti1516::Exception* except=NULL);
766 virtual void disableCallbacks (
767 rti1516::Exception* except=NULL);
769 virtual void decodeFederateHandle(
770 rti1516::VariableLengthData
const & encodedValue,
771 rti1516::FederateHandle handle,
772 rti1516::Exception* except=NULL)
const;
774 virtual void decodeObjectClassHandle(
775 rti1516::VariableLengthData
const & encodedValue,
776 rti1516::ObjectClassHandle classHandle,
777 rti1516::Exception* except=NULL)
const;
779 virtual void decodeInteractionClassHandle(
780 rti1516::VariableLengthData
const & encodedValue,
781 rti1516::InteractionClassHandle handle,
782 rti1516::Exception* except=NULL)
const;
784 virtual void decodeObjectInstanceHandle(
785 rti1516::VariableLengthData
const & encodedValue,
786 rti1516::ObjectInstanceHandle objectHandle,
787 rti1516::Exception* except=NULL)
const;
789 virtual void decodeAttributeHandle(
790 rti1516::VariableLengthData
const & encodedValue,
791 rti1516::AttributeHandle handle,
792 rti1516::Exception* except=NULL)
const;
794 virtual void decodeParameterHandle(
795 rti1516::VariableLengthData
const & encodedValue,
796 rti1516::ParameterHandle handle,
797 rti1516::Exception* except=NULL)
const;
799 virtual void decodeDimensionHandle(
800 rti1516::VariableLengthData
const & encodedValue,
801 rti1516::DimensionHandle handle,
802 rti1516::Exception* except=NULL)
const;
804 virtual void decodeMessageRetractionHandle(
805 rti1516::VariableLengthData
const & encodedValue,
806 rti1516::MessageRetractionHandle retractHandle,
807 rti1516::Exception* except=NULL)
const;
809 virtual void decodeRegionHandle(
810 rti1516::VariableLengthData
const & encodedValue,
811 rti1516::RegionHandle handle,
812 rti1516::Exception* except=NULL)
const;
816 virtual int verboseLevel()
const;
825 unsigned long myRegisterCount;
826 unsigned long myDeleteCount;
827 bool myAllowEvokeCallbackToBeObserved;
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:35
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
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:39
std::vector< AttributeHandleSetRegionHandleSetPair > AttributeHandleSetRegionHandleSetPairVector
Definition: Typedefs.h:57
OrderType
Definition: Enums.h:27
The object manager class processes the object management services.
Definition: objMgr.h:90
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:44
std::set< FederateHandle > FederateHandleSet
Definition: Typedefs.h:37
TransportationType
Definition: Enums.h:97
std::set< DimensionHandle > DimensionHandleSet
Definition: Typedefs.h:38
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:49