12 #if DtHLA_1516_EVOLVED
33 virtual ~DtVrlRtiAmbassador();
37 DtVrlRtiAmbassador(const DtVrlRtiAmbassador& orig);
40 DtVrlRtiAmbassador& operator=(const DtVrlRtiAmbassador& orig);
46 virtual RTI::RTIambassador* rtiAmb();
50 FederateAmbassador & federateAmbassador,
51 CallbackModel theCallbackModel,
52 std::wstring const & localSettingsDesignator=L"")
55 InvalidLocalSettingsDesignator,
56 UnsupportedCallbackModel,
58 CallNotAllowedFromWithinCallback,
59 RTIinternalError) = 0;
62 virtual
void disconnect ()
64 FederateIsExecutionMember,
65 CallNotAllowedFromWithinCallback,
66 RTIinternalError) = 0;
69 virtual
void createFederationExecution (
70 std::wstring const & federationExecutionName,
71 std::wstring const & fomModule,
72 std::wstring const & logicalTimeImplementationName = L"")
74 CouldNotCreateLogicalTimeFactory,
78 FederationExecutionAlreadyExists,
80 RTIinternalError) = 0;
82 virtual
void createFederationExecution (
83 std::wstring const & federationExecutionName,
84 std::vector<std::wstring> const & fomModules,
85 std::wstring const & logicalTimeImplementationName = L"")
87 CouldNotCreateLogicalTimeFactory,
91 FederationExecutionAlreadyExists,
93 RTIinternalError) = 0;
95 virtual
void createFederationExecutionWithMIM (
96 std::wstring const & federationExecutionName,
97 std::vector<std::wstring> const & fomModules,
98 std::wstring const & mimModule,
99 std::wstring const & logicalTimeImplementationName = L"")
101 CouldNotCreateLogicalTimeFactory,
105 DesignatorIsHLAstandardMIM,
108 FederationExecutionAlreadyExists,
110 RTIinternalError) = 0;
113 virtual
void destroyFederationExecution (
114 std::wstring const & federationExecutionName)
116 FederatesCurrentlyJoined,
117 FederationExecutionDoesNotExist,
119 RTIinternalError) = 0;
122 virtual
void listFederationExecutions () const
125 RTIinternalError) = 0;
128 virtual FederateHandle joinFederationExecution (
129 std::wstring const & federateType,
130 std::wstring const & federationExecutionName,
131 std::vector<std::wstring> const & additionalFomModules=std::vector<std::wstring>())
133 CouldNotCreateLogicalTimeFactory,
134 FederationExecutionDoesNotExist,
140 FederateAlreadyExecutionMember,
142 CallNotAllowedFromWithinCallback,
143 RTIinternalError) = 0;
145 virtual FederateHandle joinFederationExecution (
146 std::wstring const & federateName,
147 std::wstring const & federateType,
148 std::wstring const & federationExecutionName,
149 std::vector<std::wstring> const & additionalFomModules=std::vector<std::wstring>())
151 CouldNotCreateLogicalTimeFactory,
152 FederateNameAlreadyInUse,
153 FederationExecutionDoesNotExist,
159 FederateAlreadyExecutionMember,
161 CallNotAllowedFromWithinCallback,
162 RTIinternalError) = 0;
165 virtual
void resignFederationExecution (
166 ResignAction resignAction)
169 OwnershipAcquisitionPending,
170 FederateOwnsAttributes,
171 FederateNotExecutionMember,
173 CallNotAllowedFromWithinCallback,
174 RTIinternalError) = 0;
177 virtual
void registerFederationSynchronizationPoint (
178 std::wstring const & label,
179 VariableLengthData const & theUserSuppliedTag)
183 FederateNotExecutionMember,
185 RTIinternalError) = 0;
187 virtual
void registerFederationSynchronizationPoint (
188 std::wstring const & label,
189 VariableLengthData const & theUserSuppliedTag,
190 FederateHandleSet const & synchronizationSet)
192 InvalidFederateHandle,
195 FederateNotExecutionMember,
197 RTIinternalError) = 0;
200 virtual
void synchronizationPointAchieved (
201 std::wstring const & label,
202 bool successfully = true)
204 SynchronizationPointLabelNotAnnounced,
207 FederateNotExecutionMember,
209 RTIinternalError) = 0;
212 virtual
void requestFederationSave (
213 std::wstring const & label)
217 FederateNotExecutionMember,
219 RTIinternalError) = 0;
221 virtual
void requestFederationSave (
222 std::wstring const & label,
223 LogicalTime const & theTime)
225 LogicalTimeAlreadyPassed,
227 FederateUnableToUseTime,
230 FederateNotExecutionMember,
232 RTIinternalError) = 0;
235 virtual
void federateSaveBegun ()
239 FederateNotExecutionMember,
241 RTIinternalError) = 0;
244 virtual
void federateSaveComplete ()
246 FederateHasNotBegunSave,
248 FederateNotExecutionMember,
250 RTIinternalError) = 0;
252 virtual
void federateSaveNotComplete ()
254 FederateHasNotBegunSave,
256 FederateNotExecutionMember,
258 RTIinternalError) = 0;
261 virtual
void abortFederationSave ()
264 FederateNotExecutionMember,
266 RTIinternalError) = 0;
269 virtual
void queryFederationSaveStatus ()
272 FederateNotExecutionMember,
274 RTIinternalError) = 0;
277 virtual
void requestFederationRestore (
278 std::wstring const & label)
282 FederateNotExecutionMember,
284 RTIinternalError) = 0;
287 virtual
void federateRestoreComplete ()
291 FederateNotExecutionMember,
293 RTIinternalError) = 0;
295 virtual
void federateRestoreNotComplete ()
299 FederateNotExecutionMember,
301 RTIinternalError) = 0;
304 virtual
void abortFederationRestore ()
306 RestoreNotInProgress,
307 FederateNotExecutionMember,
309 RTIinternalError) = 0;
312 virtual
void queryFederationRestoreStatus ()
315 FederateNotExecutionMember,
317 RTIinternalError) = 0;
324 virtual
void publishObjectClassAttributes (
325 ObjectClassHandle theClass,
326 AttributeHandleSet const & attributeList)
329 ObjectClassNotDefined,
332 FederateNotExecutionMember,
334 RTIinternalError) = 0;
337 virtual
void unpublishObjectClass (
338 ObjectClassHandle theClass)
340 OwnershipAcquisitionPending,
341 ObjectClassNotDefined,
344 FederateNotExecutionMember,
346 RTIinternalError) = 0;
348 virtual
void unpublishObjectClassAttributes (
349 ObjectClassHandle theClass,
350 AttributeHandleSet const & attributeList)
352 OwnershipAcquisitionPending,
354 ObjectClassNotDefined,
357 FederateNotExecutionMember,
359 RTIinternalError) = 0;
362 virtual
void publishInteractionClass (
363 InteractionClassHandle theInteraction)
365 InteractionClassNotDefined,
368 FederateNotExecutionMember,
370 RTIinternalError) = 0;
373 virtual
void unpublishInteractionClass (
374 InteractionClassHandle theInteraction)
376 InteractionClassNotDefined,
379 FederateNotExecutionMember,
381 RTIinternalError) = 0;
384 virtual
void subscribeObjectClassAttributes (
385 ObjectClassHandle theClass,
386 AttributeHandleSet const & attributeList,
388 std::wstring const & updateRateDesignator = L"")
391 ObjectClassNotDefined,
392 InvalidUpdateRateDesignator,
395 FederateNotExecutionMember,
397 RTIinternalError) = 0;
400 virtual
void unsubscribeObjectClass (
401 ObjectClassHandle theClass)
403 ObjectClassNotDefined,
406 FederateNotExecutionMember,
408 RTIinternalError) = 0;
410 virtual
void unsubscribeObjectClassAttributes (
411 ObjectClassHandle theClass,
412 AttributeHandleSet const & attributeList)
415 ObjectClassNotDefined,
418 FederateNotExecutionMember,
420 RTIinternalError) = 0;
423 virtual
void subscribeInteractionClass (
424 InteractionClassHandle theClass,
427 FederateServiceInvocationsAreBeingReportedViaMOM,
428 InteractionClassNotDefined,
431 FederateNotExecutionMember,
433 RTIinternalError) = 0;
436 virtual
void unsubscribeInteractionClass (
437 InteractionClassHandle theClass)
439 InteractionClassNotDefined,
442 FederateNotExecutionMember,
444 RTIinternalError) = 0;
451 virtual
void reserveObjectInstanceName (
452 std::wstring const & theObjectInstanceName)
457 FederateNotExecutionMember,
459 RTIinternalError) = 0;
462 virtual
void releaseObjectInstanceName (
463 std::wstring const & theObjectInstanceName)
465 ObjectInstanceNameNotReserved,
468 FederateNotExecutionMember,
470 RTIinternalError) = 0;
473 virtual
void reserveMultipleObjectInstanceName (
474 std::set<std::wstring> const & theObjectInstanceNames)
480 FederateNotExecutionMember,
482 RTIinternalError) = 0;
485 virtual
void releaseMultipleObjectInstanceName (
486 std::set<std::wstring> const & theObjectInstanceNames)
488 ObjectInstanceNameNotReserved,
491 FederateNotExecutionMember,
493 RTIinternalError) = 0;
496 virtual ObjectInstanceHandle registerObjectInstance (
497 ObjectClassHandle theClass)
499 ObjectClassNotPublished,
500 ObjectClassNotDefined,
503 FederateNotExecutionMember,
505 RTIinternalError) = 0;
507 virtual ObjectInstanceHandle registerObjectInstance (
508 ObjectClassHandle theClass,
509 std::wstring const & theObjectInstanceName)
511 ObjectInstanceNameInUse,
512 ObjectInstanceNameNotReserved,
513 ObjectClassNotPublished,
514 ObjectClassNotDefined,
517 FederateNotExecutionMember,
519 RTIinternalError) = 0;
522 virtual
void updateAttributeValues (
523 ObjectInstanceHandle theObject,
524 AttributeHandleValueMap const & theAttributeValues,
525 VariableLengthData const & theUserSuppliedTag)
529 ObjectInstanceNotKnown,
532 FederateNotExecutionMember,
534 RTIinternalError) = 0;
536 virtual MessageRetractionHandle updateAttributeValues (
537 ObjectInstanceHandle theObject,
538 AttributeHandleValueMap const & theAttributeValues,
539 VariableLengthData const & theUserSuppliedTag,
540 LogicalTime const & theTime)
545 ObjectInstanceNotKnown,
548 FederateNotExecutionMember,
550 RTIinternalError) = 0;
553 virtual
void sendInteraction (
554 InteractionClassHandle theInteraction,
555 ParameterHandleValueMap const & theParameterValues,
556 VariableLengthData const & theUserSuppliedTag)
558 InteractionClassNotPublished,
559 InteractionParameterNotDefined,
560 InteractionClassNotDefined,
563 FederateNotExecutionMember,
565 RTIinternalError) = 0;
567 virtual MessageRetractionHandle sendInteraction (
568 InteractionClassHandle theInteraction,
569 ParameterHandleValueMap const & theParameterValues,
570 VariableLengthData const & theUserSuppliedTag,
571 LogicalTime const & theTime)
574 InteractionClassNotPublished,
575 InteractionParameterNotDefined,
576 InteractionClassNotDefined,
579 FederateNotExecutionMember,
581 RTIinternalError) = 0;
584 virtual
void deleteObjectInstance (
585 ObjectInstanceHandle theObject,
586 VariableLengthData const & theUserSuppliedTag)
588 DeletePrivilegeNotHeld,
589 ObjectInstanceNotKnown,
592 FederateNotExecutionMember,
594 RTIinternalError) = 0;
596 virtual MessageRetractionHandle deleteObjectInstance (
597 ObjectInstanceHandle theObject,
598 VariableLengthData const & theUserSuppliedTag,
599 LogicalTime const & theTime)
602 DeletePrivilegeNotHeld,
603 ObjectInstanceNotKnown,
606 FederateNotExecutionMember,
608 RTIinternalError) = 0;
611 virtual
void localDeleteObjectInstance (
612 ObjectInstanceHandle theObject)
614 OwnershipAcquisitionPending,
615 FederateOwnsAttributes,
616 ObjectInstanceNotKnown,
619 FederateNotExecutionMember,
621 RTIinternalError) = 0;
624 virtual
void requestAttributeValueUpdate (
625 ObjectInstanceHandle theObject,
626 AttributeHandleSet const & theAttributes,
627 VariableLengthData const & theUserSuppliedTag)
630 ObjectInstanceNotKnown,
633 FederateNotExecutionMember,
635 RTIinternalError) = 0;
637 virtual
void requestAttributeValueUpdate (
638 ObjectClassHandle theClass,
639 AttributeHandleSet const & theAttributes,
640 VariableLengthData const & theUserSuppliedTag)
643 ObjectClassNotDefined,
646 FederateNotExecutionMember,
648 RTIinternalError) = 0;
651 virtual
void requestAttributeTransportationTypeChange (
652 ObjectInstanceHandle theObject,
653 AttributeHandleSet const & theAttributes,
654 TransportationType theType)
656 AttributeAlreadyBeingChanged,
659 ObjectInstanceNotKnown,
660 InvalidTransportationType,
663 FederateNotExecutionMember,
665 RTIinternalError) = 0;
668 virtual
void queryAttributeTransportationType (
669 ObjectInstanceHandle theObject,
670 AttributeHandle theAttribute)
673 ObjectInstanceNotKnown,
676 FederateNotExecutionMember,
678 RTIinternalError) = 0;
681 virtual
void requestInteractionTransportationTypeChange (
682 InteractionClassHandle theClass,
683 TransportationType theType)
685 InteractionClassAlreadyBeingChanged,
686 InteractionClassNotPublished,
687 InteractionClassNotDefined,
688 InvalidTransportationType,
691 FederateNotExecutionMember,
693 RTIinternalError) = 0;
696 virtual
void queryInteractionTransportationType (
697 FederateHandle theFederate,
698 InteractionClassHandle theInteraction)
700 InteractionClassNotDefined,
703 FederateNotExecutionMember,
705 RTIinternalError) = 0;
713 virtual
void unconditionalAttributeOwnershipDivestiture (
714 ObjectInstanceHandle theObject,
715 AttributeHandleSet const & theAttributes)
719 ObjectInstanceNotKnown,
722 FederateNotExecutionMember,
724 RTIinternalError) = 0;
727 virtual
void negotiatedAttributeOwnershipDivestiture (
728 ObjectInstanceHandle theObject,
729 AttributeHandleSet const & theAttributes,
730 VariableLengthData const & theUserSuppliedTag)
732 AttributeAlreadyBeingDivested,
735 ObjectInstanceNotKnown,
738 FederateNotExecutionMember,
740 RTIinternalError) = 0;
743 virtual
void confirmDivestiture (
744 ObjectInstanceHandle theObject,
745 AttributeHandleSet const & confirmedAttributes,
746 VariableLengthData const & theUserSuppliedTag)
748 NoAcquisitionPending,
749 AttributeDivestitureWasNotRequested,
752 ObjectInstanceNotKnown,
755 FederateNotExecutionMember,
757 RTIinternalError) = 0;
760 virtual
void attributeOwnershipAcquisition (
761 ObjectInstanceHandle theObject,
762 AttributeHandleSet const & desiredAttributes,
763 VariableLengthData const & theUserSuppliedTag)
765 AttributeNotPublished,
766 ObjectClassNotPublished,
767 FederateOwnsAttributes,
769 ObjectInstanceNotKnown,
772 FederateNotExecutionMember,
774 RTIinternalError) = 0;
777 virtual
void attributeOwnershipAcquisitionIfAvailable (
778 ObjectInstanceHandle theObject,
779 AttributeHandleSet const & desiredAttributes)
781 AttributeAlreadyBeingAcquired,
782 AttributeNotPublished,
783 ObjectClassNotPublished,
784 FederateOwnsAttributes,
786 ObjectInstanceNotKnown,
789 FederateNotExecutionMember,
791 RTIinternalError) = 0;
794 virtual
void attributeOwnershipReleaseDenied (
795 ObjectInstanceHandle theObject,
796 AttributeHandleSet const & theAttributes)
800 ObjectInstanceNotKnown,
803 FederateNotExecutionMember,
805 RTIinternalError) = 0;
808 virtual
void attributeOwnershipDivestitureIfWanted (
809 ObjectInstanceHandle theObject,
810 AttributeHandleSet const & theAttributes,
811 AttributeHandleSet & theDivestedAttributes)
815 ObjectInstanceNotKnown,
818 FederateNotExecutionMember,
820 RTIinternalError) = 0;
823 virtual
void cancelNegotiatedAttributeOwnershipDivestiture (
824 ObjectInstanceHandle theObject,
825 AttributeHandleSet const & theAttributes)
827 AttributeDivestitureWasNotRequested,
830 ObjectInstanceNotKnown,
833 FederateNotExecutionMember,
835 RTIinternalError) = 0;
838 virtual
void cancelAttributeOwnershipAcquisition (
839 ObjectInstanceHandle theObject,
840 AttributeHandleSet const & theAttributes)
842 AttributeAcquisitionWasNotRequested,
843 AttributeAlreadyOwned,
845 ObjectInstanceNotKnown,
848 FederateNotExecutionMember,
850 RTIinternalError) = 0;
853 virtual
void queryAttributeOwnership (
854 ObjectInstanceHandle theObject,
855 AttributeHandle theAttribute)
858 ObjectInstanceNotKnown,
861 FederateNotExecutionMember,
863 RTIinternalError) = 0;
866 virtual
bool isAttributeOwnedByFederate (
867 ObjectInstanceHandle theObject,
868 AttributeHandle theAttribute)
871 ObjectInstanceNotKnown,
874 FederateNotExecutionMember,
876 RTIinternalError) = 0;
883 virtual
void enableTimeRegulation (
884 LogicalTimeInterval const & theLookahead)
887 InTimeAdvancingState,
888 RequestForTimeRegulationPending,
889 TimeRegulationAlreadyEnabled,
892 FederateNotExecutionMember,
894 RTIinternalError) = 0;
897 virtual
void disableTimeRegulation ()
899 TimeRegulationIsNotEnabled,
902 FederateNotExecutionMember,
904 RTIinternalError) = 0;
907 virtual
void enableTimeConstrained ()
909 InTimeAdvancingState,
910 RequestForTimeConstrainedPending,
911 TimeConstrainedAlreadyEnabled,
914 FederateNotExecutionMember,
916 RTIinternalError) = 0;
919 virtual
void disableTimeConstrained ()
921 TimeConstrainedIsNotEnabled,
924 FederateNotExecutionMember,
926 RTIinternalError) = 0;
929 virtual
void timeAdvanceRequest (
930 LogicalTime const & theTime)
932 LogicalTimeAlreadyPassed,
934 InTimeAdvancingState,
935 RequestForTimeRegulationPending,
936 RequestForTimeConstrainedPending,
939 FederateNotExecutionMember,
941 RTIinternalError) = 0;
944 virtual
void timeAdvanceRequestAvailable (
945 LogicalTime const & theTime)
947 LogicalTimeAlreadyPassed,
949 InTimeAdvancingState,
950 RequestForTimeRegulationPending,
951 RequestForTimeConstrainedPending,
954 FederateNotExecutionMember,
956 RTIinternalError) = 0;
959 virtual
void nextMessageRequest (
960 LogicalTime const & theTime)
962 LogicalTimeAlreadyPassed,
964 InTimeAdvancingState,
965 RequestForTimeRegulationPending,
966 RequestForTimeConstrainedPending,
969 FederateNotExecutionMember,
971 RTIinternalError) = 0;
974 virtual
void nextMessageRequestAvailable (
975 LogicalTime const & theTime)
977 LogicalTimeAlreadyPassed,
979 InTimeAdvancingState,
980 RequestForTimeRegulationPending,
981 RequestForTimeConstrainedPending,
984 FederateNotExecutionMember,
986 RTIinternalError) = 0;
989 virtual
void flushQueueRequest (
990 LogicalTime const & theTime)
992 LogicalTimeAlreadyPassed,
994 InTimeAdvancingState,
995 RequestForTimeRegulationPending,
996 RequestForTimeConstrainedPending,
999 FederateNotExecutionMember,
1001 RTIinternalError) = 0;
1004 virtual
void enableAsynchronousDelivery ()
1006 AsynchronousDeliveryAlreadyEnabled,
1009 FederateNotExecutionMember,
1011 RTIinternalError) = 0;
1014 virtual
void disableAsynchronousDelivery ()
1016 AsynchronousDeliveryAlreadyDisabled,
1019 FederateNotExecutionMember,
1021 RTIinternalError) = 0;
1024 virtual
bool queryGALT (LogicalTime & theTime)
1028 FederateNotExecutionMember,
1030 RTIinternalError) = 0;
1033 virtual
void queryLogicalTime (LogicalTime & theTime)
1037 FederateNotExecutionMember,
1039 RTIinternalError) = 0;
1042 virtual
bool queryLITS (LogicalTime & theTime)
1046 FederateNotExecutionMember,
1048 RTIinternalError) = 0;
1051 virtual
void modifyLookahead (
1052 LogicalTimeInterval const & theLookahead)
1055 InTimeAdvancingState,
1056 TimeRegulationIsNotEnabled,
1059 FederateNotExecutionMember,
1061 RTIinternalError) = 0;
1064 virtual
void queryLookahead (LogicalTimeInterval & interval)
1066 TimeRegulationIsNotEnabled,
1069 FederateNotExecutionMember,
1071 RTIinternalError) = 0;
1074 virtual
void retract (
1075 MessageRetractionHandle theHandle)
1077 MessageCanNoLongerBeRetracted,
1078 InvalidMessageRetractionHandle,
1079 TimeRegulationIsNotEnabled,
1082 FederateNotExecutionMember,
1084 RTIinternalError) = 0;
1087 virtual
void changeAttributeOrderType (
1088 ObjectInstanceHandle theObject,
1089 AttributeHandleSet const & theAttributes,
1093 AttributeNotDefined,
1094 ObjectInstanceNotKnown,
1097 FederateNotExecutionMember,
1099 RTIinternalError) = 0;
1102 virtual
void changeInteractionOrderType (
1103 InteractionClassHandle theClass,
1106 InteractionClassNotPublished,
1107 InteractionClassNotDefined,
1110 FederateNotExecutionMember,
1112 RTIinternalError) = 0;
1119 virtual RegionHandle createRegion (
1120 DimensionHandleSet const & theDimensions)
1122 InvalidDimensionHandle,
1125 FederateNotExecutionMember,
1127 RTIinternalError) = 0;
1130 virtual
void commitRegionModifications (
1131 RegionHandleSet const & theRegionHandleSet)
1133 RegionNotCreatedByThisFederate,
1137 FederateNotExecutionMember,
1139 RTIinternalError) = 0;
1142 virtual
void deleteRegion (
1143 RegionHandle const & theRegion)
1145 RegionInUseForUpdateOrSubscription,
1146 RegionNotCreatedByThisFederate,
1150 FederateNotExecutionMember,
1152 RTIinternalError) = 0;
1155 virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
1156 ObjectClassHandle theClass,
1157 AttributeHandleSetRegionHandleSetPairVector const &
1158 theAttributeHandleSetRegionHandleSetPairVector)
1160 InvalidRegionContext,
1161 RegionNotCreatedByThisFederate,
1163 AttributeNotPublished,
1164 ObjectClassNotPublished,
1165 AttributeNotDefined,
1166 ObjectClassNotDefined,
1169 FederateNotExecutionMember,
1171 RTIinternalError) = 0;
1173 virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
1174 ObjectClassHandle theClass,
1175 AttributeHandleSetRegionHandleSetPairVector const &
1176 theAttributeHandleSetRegionHandleSetPairVector,
1177 std::wstring const & theObjectInstanceName)
1179 ObjectInstanceNameInUse,
1180 ObjectInstanceNameNotReserved,
1181 InvalidRegionContext,
1182 RegionNotCreatedByThisFederate,
1184 AttributeNotPublished,
1185 ObjectClassNotPublished,
1186 AttributeNotDefined,
1187 ObjectClassNotDefined,
1190 FederateNotExecutionMember,
1192 RTIinternalError) = 0;
1195 virtual
void associateRegionsForUpdates (
1196 ObjectInstanceHandle theObject,
1197 AttributeHandleSetRegionHandleSetPairVector const &
1198 theAttributeHandleSetRegionHandleSetPairVector)
1200 InvalidRegionContext,
1201 RegionNotCreatedByThisFederate,
1203 AttributeNotDefined,
1204 ObjectInstanceNotKnown,
1207 FederateNotExecutionMember,
1209 RTIinternalError) = 0;
1212 virtual
void unassociateRegionsForUpdates (
1213 ObjectInstanceHandle theObject,
1214 AttributeHandleSetRegionHandleSetPairVector const &
1215 theAttributeHandleSetRegionHandleSetPairVector)
1217 RegionNotCreatedByThisFederate,
1219 AttributeNotDefined,
1220 ObjectInstanceNotKnown,
1223 FederateNotExecutionMember,
1225 RTIinternalError) = 0;
1228 virtual
void subscribeObjectClassAttributesWithRegions (
1229 ObjectClassHandle theClass,
1230 AttributeHandleSetRegionHandleSetPairVector const &
1231 theAttributeHandleSetRegionHandleSetPairVector,
1233 std::wstring const & updateRateDesignator = L"")
1235 InvalidRegionContext,
1236 RegionNotCreatedByThisFederate,
1238 AttributeNotDefined,
1239 ObjectClassNotDefined,
1240 InvalidUpdateRateDesignator,
1243 FederateNotExecutionMember,
1245 RTIinternalError) = 0;
1249 virtual
void unsubscribeObjectClassAttributesWithRegions (
1250 ObjectClassHandle theClass,
1251 AttributeHandleSetRegionHandleSetPairVector const &
1252 theAttributeHandleSetRegionHandleSetPairVector)
1254 RegionNotCreatedByThisFederate,
1256 AttributeNotDefined,
1257 ObjectClassNotDefined,
1260 FederateNotExecutionMember,
1262 RTIinternalError) = 0;
1265 virtual
void subscribeInteractionClassWithRegions (
1266 InteractionClassHandle theClass,
1267 RegionHandleSet const & theRegionHandleSet,
1270 FederateServiceInvocationsAreBeingReportedViaMOM,
1271 InvalidRegionContext,
1272 RegionNotCreatedByThisFederate,
1274 InteractionClassNotDefined,
1277 FederateNotExecutionMember,
1279 RTIinternalError) = 0;
1282 virtual
void unsubscribeInteractionClassWithRegions (
1283 InteractionClassHandle theClass,
1284 RegionHandleSet const & theRegionHandleSet)
1286 RegionNotCreatedByThisFederate,
1288 InteractionClassNotDefined,
1291 FederateNotExecutionMember,
1293 RTIinternalError) = 0;
1296 virtual
void sendInteractionWithRegions (
1297 InteractionClassHandle theInteraction,
1298 ParameterHandleValueMap const & theParameterValues,
1299 RegionHandleSet const & theRegionHandleSet,
1300 VariableLengthData const & theUserSuppliedTag)
1302 InvalidRegionContext,
1303 RegionNotCreatedByThisFederate,
1305 InteractionClassNotPublished,
1306 InteractionParameterNotDefined,
1307 InteractionClassNotDefined,
1310 FederateNotExecutionMember,
1312 RTIinternalError) = 0;
1314 virtual MessageRetractionHandle sendInteractionWithRegions (
1315 InteractionClassHandle theInteraction,
1316 ParameterHandleValueMap const & theParameterValues,
1317 RegionHandleSet const & theRegionHandleSet,
1318 VariableLengthData const & theUserSuppliedTag,
1319 LogicalTime const & theTime)
1322 InvalidRegionContext,
1323 RegionNotCreatedByThisFederate,
1325 InteractionClassNotPublished,
1326 InteractionParameterNotDefined,
1327 InteractionClassNotDefined,
1330 FederateNotExecutionMember,
1332 RTIinternalError) = 0;
1335 virtual
void requestAttributeValueUpdateWithRegions (
1336 ObjectClassHandle theClass,
1337 AttributeHandleSetRegionHandleSetPairVector const & theSet,
1338 VariableLengthData const & theUserSuppliedTag)
1340 InvalidRegionContext,
1341 RegionNotCreatedByThisFederate,
1343 AttributeNotDefined,
1344 ObjectClassNotDefined,
1347 FederateNotExecutionMember,
1349 RTIinternalError) = 0;
1356 virtual ResignAction getAutomaticResignDirective ()
1358 FederateNotExecutionMember,
1360 RTIinternalError) = 0;
1363 virtual
void setAutomaticResignDirective (
1364 ResignAction resignAction)
1366 InvalidResignAction,
1367 FederateNotExecutionMember,
1369 RTIinternalError) = 0;
1372 virtual FederateHandle getFederateHandle (
1373 std::wstring const & theName)
1376 FederateNotExecutionMember,
1378 RTIinternalError) = 0;
1381 virtual std::wstring getFederateName (
1382 FederateHandle theHandle)
1384 InvalidFederateHandle,
1385 FederateHandleNotKnown,
1386 FederateNotExecutionMember,
1388 RTIinternalError) = 0;
1391 virtual ObjectClassHandle getObjectClassHandle (
1392 std::wstring const & theName)
1395 FederateNotExecutionMember,
1397 RTIinternalError) = 0;
1400 virtual std::wstring getObjectClassName (
1401 ObjectClassHandle theHandle)
1403 InvalidObjectClassHandle,
1404 FederateNotExecutionMember,
1406 RTIinternalError) = 0;
1409 virtual ObjectClassHandle getKnownObjectClassHandle (
1410 ObjectInstanceHandle theObject)
1412 ObjectInstanceNotKnown,
1413 FederateNotExecutionMember,
1415 RTIinternalError) = 0;
1418 virtual ObjectInstanceHandle getObjectInstanceHandle (
1419 std::wstring const & theName)
1421 ObjectInstanceNotKnown,
1422 FederateNotExecutionMember,
1424 RTIinternalError) = 0;
1427 virtual std::wstring getObjectInstanceName (
1428 ObjectInstanceHandle theHandle)
1430 ObjectInstanceNotKnown,
1431 FederateNotExecutionMember,
1433 RTIinternalError) = 0;
1436 virtual AttributeHandle getAttributeHandle (
1437 ObjectClassHandle whichClass,
1438 std::wstring const & theAttributeName)
1441 InvalidObjectClassHandle,
1442 FederateNotExecutionMember,
1444 RTIinternalError) = 0;
1447 virtual std::wstring getAttributeName (
1448 ObjectClassHandle whichClass,
1449 AttributeHandle theHandle)
1451 AttributeNotDefined,
1452 InvalidAttributeHandle,
1453 InvalidObjectClassHandle,
1454 FederateNotExecutionMember,
1456 RTIinternalError) = 0;
1459 virtual
double getUpdateRateValue (
1460 std::wstring const & updateRateDesignator)
1462 InvalidUpdateRateDesignator,
1463 FederateNotExecutionMember,
1465 RTIinternalError) = 0;
1468 virtual
double getUpdateRateValueForAttribute (
1469 ObjectInstanceHandle theObject,
1470 AttributeHandle theAttribute)
1472 ObjectInstanceNotKnown,
1473 AttributeNotDefined,
1474 FederateNotExecutionMember,
1476 RTIinternalError) = 0;
1479 virtual InteractionClassHandle getInteractionClassHandle (
1480 std::wstring const & theName)
1483 FederateNotExecutionMember,
1485 RTIinternalError) = 0;
1488 virtual std::wstring getInteractionClassName (
1489 InteractionClassHandle theHandle)
1491 InvalidInteractionClassHandle,
1492 FederateNotExecutionMember,
1494 RTIinternalError) = 0;
1497 virtual ParameterHandle getParameterHandle (
1498 InteractionClassHandle whichClass,
1499 std::wstring const & theName)
1502 InvalidInteractionClassHandle,
1503 FederateNotExecutionMember,
1505 RTIinternalError) = 0;
1508 virtual std::wstring getParameterName (
1509 InteractionClassHandle whichClass,
1510 ParameterHandle theHandle)
1512 InteractionParameterNotDefined,
1513 InvalidParameterHandle,
1514 InvalidInteractionClassHandle,
1515 FederateNotExecutionMember,
1517 RTIinternalError) = 0;
1520 virtual OrderType getOrderType (
1521 std::wstring const & orderName)
1524 FederateNotExecutionMember,
1526 RTIinternalError) = 0;
1529 virtual std::wstring getOrderName (
1530 OrderType orderType)
1533 FederateNotExecutionMember,
1535 RTIinternalError) = 0;
1538 virtual TransportationType getTransportationType (
1539 std::wstring const & transportationName)
1541 InvalidTransportationName,
1542 FederateNotExecutionMember,
1544 RTIinternalError) = 0;
1547 virtual std::wstring getTransportationName (
1548 TransportationType transportationType)
1550 InvalidTransportationType,
1551 FederateNotExecutionMember,
1553 RTIinternalError) = 0;
1556 virtual DimensionHandleSet getAvailableDimensionsForClassAttribute (
1557 ObjectClassHandle theClass,
1558 AttributeHandle theHandle)
1560 AttributeNotDefined,
1561 InvalidAttributeHandle,
1562 InvalidObjectClassHandle,
1563 FederateNotExecutionMember,
1565 RTIinternalError) = 0;
1568 virtual DimensionHandleSet getAvailableDimensionsForInteractionClass (
1569 InteractionClassHandle theClass)
1571 InvalidInteractionClassHandle,
1572 FederateNotExecutionMember,
1574 RTIinternalError) = 0;
1577 virtual DimensionHandle getDimensionHandle (
1578 std::wstring const & theName)
1581 FederateNotExecutionMember,
1583 RTIinternalError) = 0;
1586 virtual std::wstring getDimensionName (
1587 DimensionHandle theHandle)
1589 InvalidDimensionHandle,
1590 FederateNotExecutionMember,
1592 RTIinternalError) = 0;
1595 virtual
unsigned long getDimensionUpperBound (
1596 DimensionHandle theHandle)
1598 InvalidDimensionHandle,
1599 FederateNotExecutionMember,
1601 RTIinternalError) = 0;
1604 virtual DimensionHandleSet getDimensionHandleSet (
1605 RegionHandle theRegionHandle)
1610 FederateNotExecutionMember,
1612 RTIinternalError) = 0;
1615 virtual RangeBounds getRangeBounds (
1616 RegionHandle theRegionHandle,
1617 DimensionHandle theDimensionHandle)
1619 RegionDoesNotContainSpecifiedDimension,
1623 FederateNotExecutionMember,
1625 RTIinternalError) = 0;
1628 virtual
void setRangeBounds (
1629 RegionHandle theRegionHandle,
1630 DimensionHandle theDimensionHandle,
1631 RangeBounds const & theRangeBounds)
1634 RegionDoesNotContainSpecifiedDimension,
1635 RegionNotCreatedByThisFederate,
1639 FederateNotExecutionMember,
1641 RTIinternalError) = 0;
1644 virtual
unsigned long normalizeFederateHandle (
1645 FederateHandle theFederateHandle)
1647 InvalidFederateHandle,
1648 FederateNotExecutionMember,
1650 RTIinternalError) = 0;
1653 virtual
unsigned long normalizeServiceGroup (
1654 ServiceGroup theServiceGroup)
1656 InvalidServiceGroup,
1657 FederateNotExecutionMember,
1659 RTIinternalError) = 0;
1662 virtual
void enableObjectClassRelevanceAdvisorySwitch ()
1664 ObjectClassRelevanceAdvisorySwitchIsOn,
1667 FederateNotExecutionMember,
1669 RTIinternalError) = 0;
1672 virtual
void disableObjectClassRelevanceAdvisorySwitch ()
1674 ObjectClassRelevanceAdvisorySwitchIsOff,
1677 FederateNotExecutionMember,
1679 RTIinternalError) = 0;
1682 virtual
void enableAttributeRelevanceAdvisorySwitch ()
1684 AttributeRelevanceAdvisorySwitchIsOn,
1687 FederateNotExecutionMember,
1689 RTIinternalError) = 0;
1692 virtual
void disableAttributeRelevanceAdvisorySwitch ()
1694 AttributeRelevanceAdvisorySwitchIsOff,
1697 FederateNotExecutionMember,
1699 RTIinternalError) = 0;
1702 virtual
void enableAttributeScopeAdvisorySwitch ()
1704 AttributeScopeAdvisorySwitchIsOn,
1707 FederateNotExecutionMember,
1709 RTIinternalError) = 0;
1712 virtual
void disableAttributeScopeAdvisorySwitch ()
1714 AttributeScopeAdvisorySwitchIsOff,
1717 FederateNotExecutionMember,
1719 RTIinternalError) = 0;
1722 virtual
void enableInteractionRelevanceAdvisorySwitch ()
1724 InteractionRelevanceAdvisorySwitchIsOn,
1727 FederateNotExecutionMember,
1729 RTIinternalError) = 0;
1732 virtual
void disableInteractionRelevanceAdvisorySwitch ()
1734 InteractionRelevanceAdvisorySwitchIsOff,
1737 FederateNotExecutionMember,
1739 RTIinternalError) = 0;
1742 virtual
bool evokeCallback (
1743 double approximateMinimumTimeInSeconds)
1745 CallNotAllowedFromWithinCallback,
1746 RTIinternalError) = 0;
1749 virtual
bool evokeMultipleCallbacks (
1750 double approximateMinimumTimeInSeconds,
1751 double approximateMaximumTimeInSeconds)
1753 CallNotAllowedFromWithinCallback,
1754 RTIinternalError) = 0;
1757 virtual
void enableCallbacks ()
1761 RTIinternalError) = 0;
1764 virtual
void disableCallbacks ()
1768 RTIinternalError) = 0;
1773 virtual std::auto_ptr<LogicalTimeFactory> getTimeFactory () const
1775 FederateNotExecutionMember,
1777 RTIinternalError) = 0;
1780 virtual FederateHandle decodeFederateHandle (
1781 VariableLengthData const & encodedValue) const
1784 FederateNotExecutionMember,
1786 RTIinternalError) = 0;
1788 virtual ObjectClassHandle decodeObjectClassHandle (
1789 VariableLengthData const & encodedValue) const
1792 FederateNotExecutionMember,
1794 RTIinternalError) = 0;
1796 virtual InteractionClassHandle decodeInteractionClassHandle (
1797 VariableLengthData const & encodedValue) const
1800 FederateNotExecutionMember,
1802 RTIinternalError) = 0;
1804 virtual ObjectInstanceHandle decodeObjectInstanceHandle (
1805 VariableLengthData const & encodedValue) const
1808 FederateNotExecutionMember,
1810 RTIinternalError) = 0;
1812 virtual AttributeHandle decodeAttributeHandle (
1813 VariableLengthData const & encodedValue) const
1816 FederateNotExecutionMember,
1818 RTIinternalError) = 0;
1820 virtual ParameterHandle decodeParameterHandle (
1821 VariableLengthData const & encodedValue) const
1824 FederateNotExecutionMember,
1826 RTIinternalError) = 0;
1828 virtual DimensionHandle decodeDimensionHandle (
1829 VariableLengthData const & encodedValue) const
1832 FederateNotExecutionMember,
1834 RTIinternalError) = 0;
1836 virtual MessageRetractionHandle decodeMessageRetractionHandle (
1837 VariableLengthData const & encodedValue) const
1840 FederateNotExecutionMember,
1842 RTIinternalError) = 0;
1844 virtual RegionHandle decodeRegionHandle (
1845 VariableLengthData const & encodedValue) const
1848 FederateNotExecutionMember,
1850 RTIinternalError) = 0;
1854 static RTI::RTIambassador * create();
1858 std::auto_ptr<RTIambassador> myRtiAmb;
1859 FederateAmbassador *myFedAmb;