16 #ifndef RTI_RTIambassador_h
17 #define RTI_RTIambassador_h
21 class FederateAmbassador;
23 class LogicalTimeFactory;
24 class LogicalTimeInterval;
45 virtual void connect (
48 std::wstring
const & localSettingsDesignator=L
"")
51 InvalidLocalSettingsDesignator,
52 UnsupportedCallbackModel,
54 CallNotAllowedFromWithinCallback,
55 RTIinternalError) = 0;
58 virtual void disconnect ()
60 FederateIsExecutionMember,
61 CallNotAllowedFromWithinCallback,
62 RTIinternalError) = 0;
65 virtual void createFederationExecution (
66 std::wstring
const & federationExecutionName,
67 std::wstring
const & fomModule,
68 std::wstring
const & logicalTimeImplementationName = L
"")
70 CouldNotCreateLogicalTimeFactory,
74 FederationExecutionAlreadyExists,
76 RTIinternalError) = 0;
78 virtual void createFederationExecution (
79 std::wstring
const & federationExecutionName,
80 std::vector<std::wstring>
const & fomModules,
81 std::wstring
const & logicalTimeImplementationName = L
"")
83 CouldNotCreateLogicalTimeFactory,
87 FederationExecutionAlreadyExists,
89 RTIinternalError) = 0;
91 virtual void createFederationExecutionWithMIM (
92 std::wstring
const & federationExecutionName,
93 std::vector<std::wstring>
const & fomModules,
94 std::wstring
const & mimModule,
95 std::wstring
const & logicalTimeImplementationName = L
"")
97 CouldNotCreateLogicalTimeFactory,
101 DesignatorIsHLAstandardMIM,
104 FederationExecutionAlreadyExists,
106 RTIinternalError) = 0;
109 virtual void destroyFederationExecution (
110 std::wstring
const & federationExecutionName)
112 FederatesCurrentlyJoined,
113 FederationExecutionDoesNotExist,
115 RTIinternalError) = 0;
118 virtual void listFederationExecutions ()
121 RTIinternalError) = 0;
124 virtual FederateHandle joinFederationExecution (
125 std::wstring
const & federateType,
126 std::wstring
const & federationExecutionName,
127 std::vector<std::wstring>
const & additionalFomModules=std::vector<std::wstring>())
129 CouldNotCreateLogicalTimeFactory,
130 FederationExecutionDoesNotExist,
136 FederateAlreadyExecutionMember,
138 CallNotAllowedFromWithinCallback,
139 RTIinternalError) = 0;
141 virtual FederateHandle joinFederationExecution (
142 std::wstring
const & federateName,
143 std::wstring
const & federateType,
144 std::wstring
const & federationExecutionName,
145 std::vector<std::wstring>
const & additionalFomModules=std::vector<std::wstring>())
147 CouldNotCreateLogicalTimeFactory,
148 FederateNameAlreadyInUse,
149 FederationExecutionDoesNotExist,
155 FederateAlreadyExecutionMember,
157 CallNotAllowedFromWithinCallback,
158 RTIinternalError) = 0;
161 virtual void resignFederationExecution (
165 OwnershipAcquisitionPending,
166 FederateOwnsAttributes,
167 FederateNotExecutionMember,
169 CallNotAllowedFromWithinCallback,
170 RTIinternalError) = 0;
173 virtual void registerFederationSynchronizationPoint (
174 std::wstring
const & label,
179 FederateNotExecutionMember,
181 RTIinternalError) = 0;
183 virtual void registerFederationSynchronizationPoint (
184 std::wstring
const & label,
188 InvalidFederateHandle,
191 FederateNotExecutionMember,
193 RTIinternalError) = 0;
196 virtual void synchronizationPointAchieved (
197 std::wstring
const & label,
198 bool successfully =
true)
200 SynchronizationPointLabelNotAnnounced,
203 FederateNotExecutionMember,
205 RTIinternalError) = 0;
208 virtual void requestFederationSave (
209 std::wstring
const & label)
213 FederateNotExecutionMember,
215 RTIinternalError) = 0;
217 virtual void requestFederationSave (
218 std::wstring
const & label,
221 LogicalTimeAlreadyPassed,
223 FederateUnableToUseTime,
226 FederateNotExecutionMember,
228 RTIinternalError) = 0;
231 virtual void federateSaveBegun ()
235 FederateNotExecutionMember,
237 RTIinternalError) = 0;
240 virtual void federateSaveComplete ()
242 FederateHasNotBegunSave,
244 FederateNotExecutionMember,
246 RTIinternalError) = 0;
248 virtual void federateSaveNotComplete ()
250 FederateHasNotBegunSave,
252 FederateNotExecutionMember,
254 RTIinternalError) = 0;
257 virtual void abortFederationSave ()
260 FederateNotExecutionMember,
262 RTIinternalError) = 0;
265 virtual void queryFederationSaveStatus ()
268 FederateNotExecutionMember,
270 RTIinternalError) = 0;
273 virtual void requestFederationRestore (
274 std::wstring
const & label)
278 FederateNotExecutionMember,
280 RTIinternalError) = 0;
283 virtual void federateRestoreComplete ()
287 FederateNotExecutionMember,
289 RTIinternalError) = 0;
291 virtual void federateRestoreNotComplete ()
295 FederateNotExecutionMember,
297 RTIinternalError) = 0;
300 virtual void abortFederationRestore ()
302 RestoreNotInProgress,
303 FederateNotExecutionMember,
305 RTIinternalError) = 0;
308 virtual void queryFederationRestoreStatus ()
311 FederateNotExecutionMember,
313 RTIinternalError) = 0;
320 virtual void publishObjectClassAttributes (
321 ObjectClassHandle theClass,
325 ObjectClassNotDefined,
328 FederateNotExecutionMember,
330 RTIinternalError) = 0;
333 virtual void unpublishObjectClass (
334 ObjectClassHandle theClass)
336 OwnershipAcquisitionPending,
337 ObjectClassNotDefined,
340 FederateNotExecutionMember,
342 RTIinternalError) = 0;
344 virtual void unpublishObjectClassAttributes (
345 ObjectClassHandle theClass,
348 OwnershipAcquisitionPending,
350 ObjectClassNotDefined,
353 FederateNotExecutionMember,
355 RTIinternalError) = 0;
358 virtual void publishInteractionClass (
359 InteractionClassHandle theInteraction)
361 InteractionClassNotDefined,
364 FederateNotExecutionMember,
366 RTIinternalError) = 0;
369 virtual void unpublishInteractionClass (
370 InteractionClassHandle theInteraction)
372 InteractionClassNotDefined,
375 FederateNotExecutionMember,
377 RTIinternalError) = 0;
380 virtual void subscribeObjectClassAttributes (
381 ObjectClassHandle theClass,
384 std::wstring
const & updateRateDesignator = L
"")
387 ObjectClassNotDefined,
388 InvalidUpdateRateDesignator,
391 FederateNotExecutionMember,
393 RTIinternalError) = 0;
396 virtual void unsubscribeObjectClass (
397 ObjectClassHandle theClass)
399 ObjectClassNotDefined,
402 FederateNotExecutionMember,
404 RTIinternalError) = 0;
406 virtual void unsubscribeObjectClassAttributes (
407 ObjectClassHandle theClass,
411 ObjectClassNotDefined,
414 FederateNotExecutionMember,
416 RTIinternalError) = 0;
419 virtual void subscribeInteractionClass (
420 InteractionClassHandle theClass,
423 FederateServiceInvocationsAreBeingReportedViaMOM,
424 InteractionClassNotDefined,
427 FederateNotExecutionMember,
429 RTIinternalError) = 0;
432 virtual void unsubscribeInteractionClass (
433 InteractionClassHandle theClass)
435 InteractionClassNotDefined,
438 FederateNotExecutionMember,
440 RTIinternalError) = 0;
447 virtual void reserveObjectInstanceName (
448 std::wstring
const & theObjectInstanceName)
453 FederateNotExecutionMember,
455 RTIinternalError) = 0;
458 virtual void releaseObjectInstanceName (
459 std::wstring
const & theObjectInstanceName)
461 ObjectInstanceNameNotReserved,
464 FederateNotExecutionMember,
466 RTIinternalError) = 0;
469 virtual void reserveMultipleObjectInstanceName (
470 std::set<std::wstring>
const & theObjectInstanceNames)
476 FederateNotExecutionMember,
478 RTIinternalError) = 0;
481 virtual void releaseMultipleObjectInstanceName (
482 std::set<std::wstring>
const & theObjectInstanceNames)
484 ObjectInstanceNameNotReserved,
487 FederateNotExecutionMember,
489 RTIinternalError) = 0;
492 virtual ObjectInstanceHandle registerObjectInstance (
493 ObjectClassHandle theClass)
495 ObjectClassNotPublished,
496 ObjectClassNotDefined,
499 FederateNotExecutionMember,
501 RTIinternalError) = 0;
503 virtual ObjectInstanceHandle registerObjectInstance (
504 ObjectClassHandle theClass,
505 std::wstring
const & theObjectInstanceName)
507 ObjectInstanceNameInUse,
508 ObjectInstanceNameNotReserved,
509 ObjectClassNotPublished,
510 ObjectClassNotDefined,
513 FederateNotExecutionMember,
515 RTIinternalError) = 0;
518 virtual void updateAttributeValues (
519 ObjectInstanceHandle theObject,
525 ObjectInstanceNotKnown,
528 FederateNotExecutionMember,
530 RTIinternalError) = 0;
532 virtual MessageRetractionHandle updateAttributeValues (
533 ObjectInstanceHandle theObject,
541 ObjectInstanceNotKnown,
544 FederateNotExecutionMember,
546 RTIinternalError) = 0;
549 virtual void sendInteraction (
550 InteractionClassHandle theInteraction,
554 InteractionClassNotPublished,
555 InteractionParameterNotDefined,
556 InteractionClassNotDefined,
559 FederateNotExecutionMember,
561 RTIinternalError) = 0;
563 virtual MessageRetractionHandle sendInteraction (
564 InteractionClassHandle theInteraction,
570 InteractionClassNotPublished,
571 InteractionParameterNotDefined,
572 InteractionClassNotDefined,
575 FederateNotExecutionMember,
577 RTIinternalError) = 0;
580 virtual void deleteObjectInstance (
581 ObjectInstanceHandle theObject,
584 DeletePrivilegeNotHeld,
585 ObjectInstanceNotKnown,
588 FederateNotExecutionMember,
590 RTIinternalError) = 0;
592 virtual MessageRetractionHandle deleteObjectInstance (
593 ObjectInstanceHandle theObject,
598 DeletePrivilegeNotHeld,
599 ObjectInstanceNotKnown,
602 FederateNotExecutionMember,
604 RTIinternalError) = 0;
607 virtual void localDeleteObjectInstance (
608 ObjectInstanceHandle theObject)
610 OwnershipAcquisitionPending,
611 FederateOwnsAttributes,
612 ObjectInstanceNotKnown,
615 FederateNotExecutionMember,
617 RTIinternalError) = 0;
620 virtual void requestAttributeValueUpdate (
621 ObjectInstanceHandle theObject,
626 ObjectInstanceNotKnown,
629 FederateNotExecutionMember,
631 RTIinternalError) = 0;
633 virtual void requestAttributeValueUpdate (
634 ObjectClassHandle theClass,
639 ObjectClassNotDefined,
642 FederateNotExecutionMember,
644 RTIinternalError) = 0;
647 virtual void requestAttributeTransportationTypeChange (
648 ObjectInstanceHandle theObject,
652 AttributeAlreadyBeingChanged,
655 ObjectInstanceNotKnown,
656 InvalidTransportationType,
659 FederateNotExecutionMember,
661 RTIinternalError) = 0;
664 virtual void queryAttributeTransportationType (
665 ObjectInstanceHandle theObject,
666 AttributeHandle theAttribute)
669 ObjectInstanceNotKnown,
672 FederateNotExecutionMember,
674 RTIinternalError) = 0;
677 virtual void requestInteractionTransportationTypeChange (
678 InteractionClassHandle theClass,
681 InteractionClassAlreadyBeingChanged,
682 InteractionClassNotPublished,
683 InteractionClassNotDefined,
684 InvalidTransportationType,
687 FederateNotExecutionMember,
689 RTIinternalError) = 0;
692 virtual void queryInteractionTransportationType (
693 FederateHandle theFederate,
694 InteractionClassHandle theInteraction)
696 InteractionClassNotDefined,
699 FederateNotExecutionMember,
701 RTIinternalError) = 0;
709 virtual void unconditionalAttributeOwnershipDivestiture (
710 ObjectInstanceHandle theObject,
715 ObjectInstanceNotKnown,
718 FederateNotExecutionMember,
720 RTIinternalError) = 0;
723 virtual void negotiatedAttributeOwnershipDivestiture (
724 ObjectInstanceHandle theObject,
728 AttributeAlreadyBeingDivested,
731 ObjectInstanceNotKnown,
734 FederateNotExecutionMember,
736 RTIinternalError) = 0;
739 virtual void confirmDivestiture (
740 ObjectInstanceHandle theObject,
744 NoAcquisitionPending,
745 AttributeDivestitureWasNotRequested,
748 ObjectInstanceNotKnown,
751 FederateNotExecutionMember,
753 RTIinternalError) = 0;
756 virtual void attributeOwnershipAcquisition (
757 ObjectInstanceHandle theObject,
761 AttributeNotPublished,
762 ObjectClassNotPublished,
763 FederateOwnsAttributes,
765 ObjectInstanceNotKnown,
768 FederateNotExecutionMember,
770 RTIinternalError) = 0;
773 virtual void attributeOwnershipAcquisitionIfAvailable (
774 ObjectInstanceHandle theObject,
777 AttributeAlreadyBeingAcquired,
778 AttributeNotPublished,
779 ObjectClassNotPublished,
780 FederateOwnsAttributes,
782 ObjectInstanceNotKnown,
785 FederateNotExecutionMember,
787 RTIinternalError) = 0;
790 virtual void attributeOwnershipReleaseDenied (
791 ObjectInstanceHandle theObject,
796 ObjectInstanceNotKnown,
799 FederateNotExecutionMember,
801 RTIinternalError) = 0;
804 virtual void attributeOwnershipDivestitureIfWanted (
805 ObjectInstanceHandle theObject,
811 ObjectInstanceNotKnown,
814 FederateNotExecutionMember,
816 RTIinternalError) = 0;
819 virtual void cancelNegotiatedAttributeOwnershipDivestiture (
820 ObjectInstanceHandle theObject,
823 AttributeDivestitureWasNotRequested,
826 ObjectInstanceNotKnown,
829 FederateNotExecutionMember,
831 RTIinternalError) = 0;
834 virtual void cancelAttributeOwnershipAcquisition (
835 ObjectInstanceHandle theObject,
838 AttributeAcquisitionWasNotRequested,
839 AttributeAlreadyOwned,
841 ObjectInstanceNotKnown,
844 FederateNotExecutionMember,
846 RTIinternalError) = 0;
849 virtual void queryAttributeOwnership (
850 ObjectInstanceHandle theObject,
851 AttributeHandle theAttribute)
854 ObjectInstanceNotKnown,
857 FederateNotExecutionMember,
859 RTIinternalError) = 0;
862 virtual bool isAttributeOwnedByFederate (
863 ObjectInstanceHandle theObject,
864 AttributeHandle theAttribute)
867 ObjectInstanceNotKnown,
870 FederateNotExecutionMember,
872 RTIinternalError) = 0;
879 virtual void enableTimeRegulation (
883 InTimeAdvancingState,
884 RequestForTimeRegulationPending,
885 TimeRegulationAlreadyEnabled,
888 FederateNotExecutionMember,
890 RTIinternalError) = 0;
893 virtual void disableTimeRegulation ()
895 TimeRegulationIsNotEnabled,
898 FederateNotExecutionMember,
900 RTIinternalError) = 0;
903 virtual void enableTimeConstrained ()
905 InTimeAdvancingState,
906 RequestForTimeConstrainedPending,
907 TimeConstrainedAlreadyEnabled,
910 FederateNotExecutionMember,
912 RTIinternalError) = 0;
915 virtual void disableTimeConstrained ()
917 TimeConstrainedIsNotEnabled,
920 FederateNotExecutionMember,
922 RTIinternalError) = 0;
925 virtual void timeAdvanceRequest (
928 LogicalTimeAlreadyPassed,
930 InTimeAdvancingState,
931 RequestForTimeRegulationPending,
932 RequestForTimeConstrainedPending,
935 FederateNotExecutionMember,
937 RTIinternalError) = 0;
940 virtual void timeAdvanceRequestAvailable (
943 LogicalTimeAlreadyPassed,
945 InTimeAdvancingState,
946 RequestForTimeRegulationPending,
947 RequestForTimeConstrainedPending,
950 FederateNotExecutionMember,
952 RTIinternalError) = 0;
955 virtual void nextMessageRequest (
958 LogicalTimeAlreadyPassed,
960 InTimeAdvancingState,
961 RequestForTimeRegulationPending,
962 RequestForTimeConstrainedPending,
965 FederateNotExecutionMember,
967 RTIinternalError) = 0;
970 virtual void nextMessageRequestAvailable (
973 LogicalTimeAlreadyPassed,
975 InTimeAdvancingState,
976 RequestForTimeRegulationPending,
977 RequestForTimeConstrainedPending,
980 FederateNotExecutionMember,
982 RTIinternalError) = 0;
985 virtual void flushQueueRequest (
988 LogicalTimeAlreadyPassed,
990 InTimeAdvancingState,
991 RequestForTimeRegulationPending,
992 RequestForTimeConstrainedPending,
995 FederateNotExecutionMember,
997 RTIinternalError) = 0;
1000 virtual void enableAsynchronousDelivery ()
1002 AsynchronousDeliveryAlreadyEnabled,
1005 FederateNotExecutionMember,
1007 RTIinternalError) = 0;
1010 virtual void disableAsynchronousDelivery ()
1012 AsynchronousDeliveryAlreadyDisabled,
1015 FederateNotExecutionMember,
1017 RTIinternalError) = 0;
1024 FederateNotExecutionMember,
1026 RTIinternalError) = 0;
1029 virtual void queryLogicalTime (
LogicalTime & theTime)
1033 FederateNotExecutionMember,
1035 RTIinternalError) = 0;
1042 FederateNotExecutionMember,
1044 RTIinternalError) = 0;
1047 virtual void modifyLookahead (
1051 InTimeAdvancingState,
1052 TimeRegulationIsNotEnabled,
1055 FederateNotExecutionMember,
1057 RTIinternalError) = 0;
1062 TimeRegulationIsNotEnabled,
1065 FederateNotExecutionMember,
1067 RTIinternalError) = 0;
1070 virtual void retract (
1071 MessageRetractionHandle theHandle)
1073 MessageCanNoLongerBeRetracted,
1074 InvalidMessageRetractionHandle,
1075 TimeRegulationIsNotEnabled,
1078 FederateNotExecutionMember,
1080 RTIinternalError) = 0;
1083 virtual void changeAttributeOrderType (
1084 ObjectInstanceHandle theObject,
1089 AttributeNotDefined,
1090 ObjectInstanceNotKnown,
1093 FederateNotExecutionMember,
1095 RTIinternalError) = 0;
1098 virtual void changeInteractionOrderType (
1099 InteractionClassHandle theClass,
1102 InteractionClassNotPublished,
1103 InteractionClassNotDefined,
1106 FederateNotExecutionMember,
1108 RTIinternalError) = 0;
1115 virtual RegionHandle createRegion (
1118 InvalidDimensionHandle,
1121 FederateNotExecutionMember,
1123 RTIinternalError) = 0;
1126 virtual void commitRegionModifications (
1129 RegionNotCreatedByThisFederate,
1133 FederateNotExecutionMember,
1135 RTIinternalError) = 0;
1138 virtual void deleteRegion (
1139 RegionHandle
const & theRegion)
1141 RegionInUseForUpdateOrSubscription,
1142 RegionNotCreatedByThisFederate,
1146 FederateNotExecutionMember,
1148 RTIinternalError) = 0;
1151 virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
1152 ObjectClassHandle theClass,
1154 theAttributeHandleSetRegionHandleSetPairVector)
1156 InvalidRegionContext,
1157 RegionNotCreatedByThisFederate,
1159 AttributeNotPublished,
1160 ObjectClassNotPublished,
1161 AttributeNotDefined,
1162 ObjectClassNotDefined,
1165 FederateNotExecutionMember,
1167 RTIinternalError) = 0;
1169 virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
1170 ObjectClassHandle theClass,
1172 theAttributeHandleSetRegionHandleSetPairVector,
1173 std::wstring
const & theObjectInstanceName)
1175 ObjectInstanceNameInUse,
1176 ObjectInstanceNameNotReserved,
1177 InvalidRegionContext,
1178 RegionNotCreatedByThisFederate,
1180 AttributeNotPublished,
1181 ObjectClassNotPublished,
1182 AttributeNotDefined,
1183 ObjectClassNotDefined,
1186 FederateNotExecutionMember,
1188 RTIinternalError) = 0;
1191 virtual void associateRegionsForUpdates (
1192 ObjectInstanceHandle theObject,
1194 theAttributeHandleSetRegionHandleSetPairVector)
1196 InvalidRegionContext,
1197 RegionNotCreatedByThisFederate,
1199 AttributeNotDefined,
1200 ObjectInstanceNotKnown,
1203 FederateNotExecutionMember,
1205 RTIinternalError) = 0;
1208 virtual void unassociateRegionsForUpdates (
1209 ObjectInstanceHandle theObject,
1211 theAttributeHandleSetRegionHandleSetPairVector)
1213 RegionNotCreatedByThisFederate,
1215 AttributeNotDefined,
1216 ObjectInstanceNotKnown,
1219 FederateNotExecutionMember,
1221 RTIinternalError) = 0;
1224 virtual void subscribeObjectClassAttributesWithRegions (
1225 ObjectClassHandle theClass,
1227 theAttributeHandleSetRegionHandleSetPairVector,
1229 std::wstring
const & updateRateDesignator = L
"")
1231 InvalidRegionContext,
1232 RegionNotCreatedByThisFederate,
1234 AttributeNotDefined,
1235 ObjectClassNotDefined,
1236 InvalidUpdateRateDesignator,
1239 FederateNotExecutionMember,
1241 RTIinternalError) = 0;
1245 virtual void unsubscribeObjectClassAttributesWithRegions (
1246 ObjectClassHandle theClass,
1248 theAttributeHandleSetRegionHandleSetPairVector)
1250 RegionNotCreatedByThisFederate,
1252 AttributeNotDefined,
1253 ObjectClassNotDefined,
1256 FederateNotExecutionMember,
1258 RTIinternalError) = 0;
1261 virtual void subscribeInteractionClassWithRegions (
1262 InteractionClassHandle theClass,
1266 FederateServiceInvocationsAreBeingReportedViaMOM,
1267 InvalidRegionContext,
1268 RegionNotCreatedByThisFederate,
1270 InteractionClassNotDefined,
1273 FederateNotExecutionMember,
1275 RTIinternalError) = 0;
1278 virtual void unsubscribeInteractionClassWithRegions (
1279 InteractionClassHandle theClass,
1282 RegionNotCreatedByThisFederate,
1284 InteractionClassNotDefined,
1287 FederateNotExecutionMember,
1289 RTIinternalError) = 0;
1292 virtual void sendInteractionWithRegions (
1293 InteractionClassHandle theInteraction,
1298 InvalidRegionContext,
1299 RegionNotCreatedByThisFederate,
1301 InteractionClassNotPublished,
1302 InteractionParameterNotDefined,
1303 InteractionClassNotDefined,
1306 FederateNotExecutionMember,
1308 RTIinternalError) = 0;
1310 virtual MessageRetractionHandle sendInteractionWithRegions (
1311 InteractionClassHandle theInteraction,
1318 InvalidRegionContext,
1319 RegionNotCreatedByThisFederate,
1321 InteractionClassNotPublished,
1322 InteractionParameterNotDefined,
1323 InteractionClassNotDefined,
1326 FederateNotExecutionMember,
1328 RTIinternalError) = 0;
1331 virtual void requestAttributeValueUpdateWithRegions (
1332 ObjectClassHandle theClass,
1336 InvalidRegionContext,
1337 RegionNotCreatedByThisFederate,
1339 AttributeNotDefined,
1340 ObjectClassNotDefined,
1343 FederateNotExecutionMember,
1345 RTIinternalError) = 0;
1354 FederateNotExecutionMember,
1356 RTIinternalError) = 0;
1359 virtual void setAutomaticResignDirective (
1362 InvalidResignAction,
1363 FederateNotExecutionMember,
1365 RTIinternalError) = 0;
1368 virtual FederateHandle getFederateHandle (
1369 std::wstring
const & theName)
1372 FederateNotExecutionMember,
1374 RTIinternalError) = 0;
1377 virtual std::wstring getFederateName (
1378 FederateHandle theHandle)
1380 InvalidFederateHandle,
1381 FederateHandleNotKnown,
1382 FederateNotExecutionMember,
1384 RTIinternalError) = 0;
1387 virtual ObjectClassHandle getObjectClassHandle (
1388 std::wstring
const & theName)
1391 FederateNotExecutionMember,
1393 RTIinternalError) = 0;
1396 virtual std::wstring getObjectClassName (
1397 ObjectClassHandle theHandle)
1399 InvalidObjectClassHandle,
1400 FederateNotExecutionMember,
1402 RTIinternalError) = 0;
1405 virtual ObjectClassHandle getKnownObjectClassHandle (
1406 ObjectInstanceHandle theObject)
1408 ObjectInstanceNotKnown,
1409 FederateNotExecutionMember,
1411 RTIinternalError) = 0;
1414 virtual ObjectInstanceHandle getObjectInstanceHandle (
1415 std::wstring
const & theName)
1417 ObjectInstanceNotKnown,
1418 FederateNotExecutionMember,
1420 RTIinternalError) = 0;
1423 virtual std::wstring getObjectInstanceName (
1424 ObjectInstanceHandle theHandle)
1426 ObjectInstanceNotKnown,
1427 FederateNotExecutionMember,
1429 RTIinternalError) = 0;
1432 virtual AttributeHandle getAttributeHandle (
1433 ObjectClassHandle whichClass,
1434 std::wstring
const & theAttributeName)
1437 InvalidObjectClassHandle,
1438 FederateNotExecutionMember,
1440 RTIinternalError) = 0;
1443 virtual std::wstring getAttributeName (
1444 ObjectClassHandle whichClass,
1445 AttributeHandle theHandle)
1447 AttributeNotDefined,
1448 InvalidAttributeHandle,
1449 InvalidObjectClassHandle,
1450 FederateNotExecutionMember,
1452 RTIinternalError) = 0;
1455 virtual double getUpdateRateValue (
1456 std::wstring
const & updateRateDesignator)
1458 InvalidUpdateRateDesignator,
1459 FederateNotExecutionMember,
1461 RTIinternalError) = 0;
1464 virtual double getUpdateRateValueForAttribute (
1465 ObjectInstanceHandle theObject,
1466 AttributeHandle theAttribute)
1468 ObjectInstanceNotKnown,
1469 AttributeNotDefined,
1470 FederateNotExecutionMember,
1472 RTIinternalError) = 0;
1475 virtual InteractionClassHandle getInteractionClassHandle (
1476 std::wstring
const & theName)
1479 FederateNotExecutionMember,
1481 RTIinternalError) = 0;
1484 virtual std::wstring getInteractionClassName (
1485 InteractionClassHandle theHandle)
1487 InvalidInteractionClassHandle,
1488 FederateNotExecutionMember,
1490 RTIinternalError) = 0;
1493 virtual ParameterHandle getParameterHandle (
1494 InteractionClassHandle whichClass,
1495 std::wstring
const & theName)
1498 InvalidInteractionClassHandle,
1499 FederateNotExecutionMember,
1501 RTIinternalError) = 0;
1504 virtual std::wstring getParameterName (
1505 InteractionClassHandle whichClass,
1506 ParameterHandle theHandle)
1508 InteractionParameterNotDefined,
1509 InvalidParameterHandle,
1510 InvalidInteractionClassHandle,
1511 FederateNotExecutionMember,
1513 RTIinternalError) = 0;
1517 std::wstring
const & orderName)
1520 FederateNotExecutionMember,
1522 RTIinternalError) = 0;
1525 virtual std::wstring getOrderName (
1529 FederateNotExecutionMember,
1531 RTIinternalError) = 0;
1535 std::wstring
const & transportationName)
1537 InvalidTransportationName,
1538 FederateNotExecutionMember,
1540 RTIinternalError) = 0;
1543 virtual std::wstring getTransportationName (
1546 InvalidTransportationType,
1547 FederateNotExecutionMember,
1549 RTIinternalError) = 0;
1553 ObjectClassHandle theClass,
1554 AttributeHandle theHandle)
1556 AttributeNotDefined,
1557 InvalidAttributeHandle,
1558 InvalidObjectClassHandle,
1559 FederateNotExecutionMember,
1561 RTIinternalError) = 0;
1565 InteractionClassHandle theClass)
1567 InvalidInteractionClassHandle,
1568 FederateNotExecutionMember,
1570 RTIinternalError) = 0;
1573 virtual DimensionHandle getDimensionHandle (
1574 std::wstring
const & theName)
1577 FederateNotExecutionMember,
1579 RTIinternalError) = 0;
1582 virtual std::wstring getDimensionName (
1583 DimensionHandle theHandle)
1585 InvalidDimensionHandle,
1586 FederateNotExecutionMember,
1588 RTIinternalError) = 0;
1591 virtual unsigned long getDimensionUpperBound (
1592 DimensionHandle theHandle)
1594 InvalidDimensionHandle,
1595 FederateNotExecutionMember,
1597 RTIinternalError) = 0;
1601 RegionHandle theRegionHandle)
1606 FederateNotExecutionMember,
1608 RTIinternalError) = 0;
1612 RegionHandle theRegionHandle,
1613 DimensionHandle theDimensionHandle)
1615 RegionDoesNotContainSpecifiedDimension,
1619 FederateNotExecutionMember,
1621 RTIinternalError) = 0;
1624 virtual void setRangeBounds (
1625 RegionHandle theRegionHandle,
1626 DimensionHandle theDimensionHandle,
1630 RegionDoesNotContainSpecifiedDimension,
1631 RegionNotCreatedByThisFederate,
1635 FederateNotExecutionMember,
1637 RTIinternalError) = 0;
1640 virtual unsigned long normalizeFederateHandle (
1641 FederateHandle theFederateHandle)
1643 InvalidFederateHandle,
1644 FederateNotExecutionMember,
1646 RTIinternalError) = 0;
1649 virtual unsigned long normalizeServiceGroup (
1652 InvalidServiceGroup,
1653 FederateNotExecutionMember,
1655 RTIinternalError) = 0;
1658 virtual void enableObjectClassRelevanceAdvisorySwitch ()
1660 ObjectClassRelevanceAdvisorySwitchIsOn,
1663 FederateNotExecutionMember,
1665 RTIinternalError) = 0;
1668 virtual void disableObjectClassRelevanceAdvisorySwitch ()
1670 ObjectClassRelevanceAdvisorySwitchIsOff,
1673 FederateNotExecutionMember,
1675 RTIinternalError) = 0;
1678 virtual void enableAttributeRelevanceAdvisorySwitch ()
1680 AttributeRelevanceAdvisorySwitchIsOn,
1683 FederateNotExecutionMember,
1685 RTIinternalError) = 0;
1688 virtual void disableAttributeRelevanceAdvisorySwitch ()
1690 AttributeRelevanceAdvisorySwitchIsOff,
1693 FederateNotExecutionMember,
1695 RTIinternalError) = 0;
1698 virtual void enableAttributeScopeAdvisorySwitch ()
1700 AttributeScopeAdvisorySwitchIsOn,
1703 FederateNotExecutionMember,
1705 RTIinternalError) = 0;
1708 virtual void disableAttributeScopeAdvisorySwitch ()
1710 AttributeScopeAdvisorySwitchIsOff,
1713 FederateNotExecutionMember,
1715 RTIinternalError) = 0;
1718 virtual void enableInteractionRelevanceAdvisorySwitch ()
1720 InteractionRelevanceAdvisorySwitchIsOn,
1723 FederateNotExecutionMember,
1725 RTIinternalError) = 0;
1728 virtual void disableInteractionRelevanceAdvisorySwitch ()
1730 InteractionRelevanceAdvisorySwitchIsOff,
1733 FederateNotExecutionMember,
1735 RTIinternalError) = 0;
1738 virtual bool evokeCallback (
1739 double approximateMinimumTimeInSeconds)
1741 CallNotAllowedFromWithinCallback,
1742 RTIinternalError) = 0;
1745 virtual bool evokeMultipleCallbacks (
1746 double approximateMinimumTimeInSeconds,
1747 double approximateMaximumTimeInSeconds)
1749 CallNotAllowedFromWithinCallback,
1750 RTIinternalError) = 0;
1753 virtual void enableCallbacks ()
1757 RTIinternalError) = 0;
1760 virtual void disableCallbacks ()
1764 RTIinternalError) = 0;
1769 virtual std::auto_ptr<LogicalTimeFactory> getTimeFactory ()
const
1771 FederateNotExecutionMember,
1773 RTIinternalError) = 0;
1776 virtual FederateHandle decodeFederateHandle (
1780 FederateNotExecutionMember,
1782 RTIinternalError) = 0;
1784 virtual ObjectClassHandle decodeObjectClassHandle (
1788 FederateNotExecutionMember,
1790 RTIinternalError) = 0;
1792 virtual InteractionClassHandle decodeInteractionClassHandle (
1796 FederateNotExecutionMember,
1798 RTIinternalError) = 0;
1800 virtual ObjectInstanceHandle decodeObjectInstanceHandle (
1804 FederateNotExecutionMember,
1806 RTIinternalError) = 0;
1808 virtual AttributeHandle decodeAttributeHandle (
1812 FederateNotExecutionMember,
1814 RTIinternalError) = 0;
1816 virtual ParameterHandle decodeParameterHandle (
1820 FederateNotExecutionMember,
1822 RTIinternalError) = 0;
1824 virtual DimensionHandle decodeDimensionHandle (
1828 FederateNotExecutionMember,
1830 RTIinternalError) = 0;
1832 virtual MessageRetractionHandle decodeMessageRetractionHandle (
1836 FederateNotExecutionMember,
1838 RTIinternalError) = 0;
1840 virtual RegionHandle decodeRegionHandle (
1844 FederateNotExecutionMember,
1846 RTIinternalError) = 0;
1850 #endif // RTI_RTIambassador_h
Definition: LogicalTimeInterval.h:35
#define RTI_EXPORT
Definition: SpecificConfig.h:63
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:35
Definition: LogicalTime.h:35
A class provided by the HLA C++ Interface Specification which federates use to communicate with the R...
Definition: RTIambassador.h:35
Definition: VariableLengthData.h:34
ResignAction
Definition: Enums.h:33
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:39
This file contains the standard RTI types that are defined in namespace rti1516.
std::vector< AttributeHandleSetRegionHandleSetPair > AttributeHandleSetRegionHandleSetPairVector
Definition: Typedefs.h:57
OrderType
Definition: Enums.h:27
Definition: RangeBounds.h:21
ServiceGroup
Definition: Enums.h:80
CallbackModel
Definition: Enums.h:21
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:44
std::set< FederateHandle > FederateHandleSet
Definition: Typedefs.h:37
This file contains definitions that are used to isolate platform-specific elements of the API...
An abstract base class which must be implemented, and used by a federate.
Definition: FederateAmbassador.h:32
TransportationType
Definition: Enums.h:97
std::set< DimensionHandle > DimensionHandleSet
Definition: Typedefs.h:38
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:49