40 typedef DtRtiAmbassadorImplementor*
41 (*DtRtiAmbassadorImplementorCreator)(RTI::RTIambassador* topLevelAmbPtr);
46 DtRtiAmbassadorImplementor(RTI::RTIambassador* topLevelAmbPtr)
49 RTI::RTIinternalError);
54 virtual ~DtRtiAmbassadorImplementor()
55 throw (RTI::RTIinternalError);
60 DtRtiAmbassadorImplementor(DtRtiAmbassadorImplementor const& );
63 DtRtiAmbassadorImplementor& operator= (DtRtiAmbassadorImplementor const& );
68 virtual
void createFederationExecution (
69 const
char *executionName,
72 RTI::FederationExecutionAlreadyExists,
75 RTI::ConcurrentAccessAttempted,
76 RTI::RTIinternalError);
79 virtual
void destroyFederationExecution (
80 const
char *executionName)
82 RTI::FederatesCurrentlyJoined,
83 RTI::FederationExecutionDoesNotExist,
84 RTI::ConcurrentAccessAttempted,
85 RTI::RTIinternalError);
88 virtual RTI::FederateHandle joinFederationExecution (
90 const
char *executionName,
91 RTI::FederateAmbassador* federateAmbassadorReference,
94 RTI::FederateAlreadyExecutionMember,
95 RTI::FederationExecutionDoesNotExist,
98 RTI::ConcurrentAccessAttempted,
100 RTI::RestoreInProgress,
101 RTI::RTIinternalError);
104 virtual
void resignFederationExecution (
107 RTI::FederateOwnsAttributes,
108 RTI::FederateNotExecutionMember,
109 RTI::InvalidResignAction,
110 RTI::ConcurrentAccessAttempted,
111 RTI::RTIinternalError);
115 virtual
void registerFederationSynchronizationPoint (
119 RTI::FederateNotExecutionMember,
120 RTI::ConcurrentAccessAttempted,
122 RTI::RestoreInProgress,
123 RTI::RTIinternalError);
125 virtual
void registerFederationSynchronizationPoint (
130 RTI::FederateNotExecutionMember,
131 RTI::ConcurrentAccessAttempted,
133 RTI::RestoreInProgress,
134 RTI::RTIinternalError);
138 virtual
void synchronizationPointAchieved (
141 RTI::SynchronizationPointLabelWasNotAnnounced,
142 RTI::FederateNotExecutionMember,
143 RTI::ConcurrentAccessAttempted,
145 RTI::RestoreInProgress,
146 RTI::RTIinternalError);
150 virtual
void requestFederationSave (
152 const RTI::FedTime& theTime)
154 RTI::FederationTimeAlreadyPassed,
155 RTI::InvalidFederationTime,
156 RTI::FederateNotExecutionMember,
157 RTI::ConcurrentAccessAttempted,
159 RTI::RestoreInProgress,
160 RTI::RTIinternalError);
162 virtual
void requestFederationSave (
165 RTI::FederateNotExecutionMember,
166 RTI::ConcurrentAccessAttempted,
168 RTI::RestoreInProgress,
169 RTI::RTIinternalError);
173 virtual
void federateSaveBegun ()
175 RTI::SaveNotInitiated,
176 RTI::FederateNotExecutionMember,
177 RTI::ConcurrentAccessAttempted,
178 RTI::RestoreInProgress,
179 RTI::RTIinternalError);
183 virtual
void federateSaveComplete ()
185 RTI::SaveNotInitiated,
186 RTI::FederateNotExecutionMember,
187 RTI::ConcurrentAccessAttempted,
188 RTI::RestoreInProgress,
189 RTI::RTIinternalError);
191 virtual
void federateSaveNotComplete ()
193 RTI::SaveNotInitiated,
194 RTI::FederateNotExecutionMember,
195 RTI::ConcurrentAccessAttempted,
196 RTI::RestoreInProgress,
197 RTI::RTIinternalError);
201 virtual
void requestFederationRestore (
204 RTI::FederateNotExecutionMember,
205 RTI::ConcurrentAccessAttempted,
207 RTI::RestoreInProgress,
208 RTI::RTIinternalError);
212 virtual
void federateRestoreComplete ()
214 RTI::RestoreNotRequested,
215 RTI::FederateNotExecutionMember,
216 RTI::ConcurrentAccessAttempted,
218 RTI::RTIinternalError);
220 virtual
void federateRestoreNotComplete ()
222 RTI::RestoreNotRequested,
223 RTI::FederateNotExecutionMember,
224 RTI::ConcurrentAccessAttempted,
226 RTI::RTIinternalError);
234 virtual
void publishObjectClass (
235 RTI::ObjectClassHandle theClass,
238 RTI::ObjectClassNotDefined,
239 RTI::AttributeNotDefined,
240 RTI::OwnershipAcquisitionPending,
241 RTI::FederateNotExecutionMember,
242 RTI::ConcurrentAccessAttempted,
244 RTI::RestoreInProgress,
245 RTI::RTIinternalError);
248 virtual
void unpublishObjectClass (
249 RTI::ObjectClassHandle theClass)
251 RTI::ObjectClassNotDefined,
252 RTI::ObjectClassNotPublished,
253 RTI::OwnershipAcquisitionPending,
254 RTI::FederateNotExecutionMember,
255 RTI::ConcurrentAccessAttempted,
257 RTI::RestoreInProgress,
258 RTI::RTIinternalError);
261 virtual
void publishInteractionClass (
262 RTI::InteractionClassHandle theInteraction)
264 RTI::InteractionClassNotDefined,
265 RTI::FederateNotExecutionMember,
266 RTI::ConcurrentAccessAttempted,
268 RTI::RestoreInProgress,
269 RTI::RTIinternalError);
272 virtual
void unpublishInteractionClass (
273 RTI::InteractionClassHandle theInteraction)
275 RTI::InteractionClassNotDefined,
276 RTI::InteractionClassNotPublished,
277 RTI::FederateNotExecutionMember,
278 RTI::ConcurrentAccessAttempted,
280 RTI::RestoreInProgress,
281 RTI::RTIinternalError);
284 virtual
void subscribeObjectClassAttributes (
285 RTI::ObjectClassHandle theClass,
287 RTI::Boolean active = RTI::RTI_TRUE)
289 RTI::ObjectClassNotDefined,
290 RTI::AttributeNotDefined,
291 RTI::FederateNotExecutionMember,
292 RTI::ConcurrentAccessAttempted,
294 RTI::RestoreInProgress,
295 RTI::RTIinternalError);
298 virtual
void unsubscribeObjectClass (
299 RTI::ObjectClassHandle theClass)
301 RTI::ObjectClassNotDefined,
302 RTI::ObjectClassNotSubscribed,
303 RTI::FederateNotExecutionMember,
304 RTI::ConcurrentAccessAttempted,
306 RTI::RestoreInProgress,
307 RTI::RTIinternalError);
310 virtual
void subscribeInteractionClass (
311 RTI::InteractionClassHandle theClass,
312 RTI::Boolean active = RTI::RTI_TRUE)
314 RTI::InteractionClassNotDefined,
315 RTI::FederateNotExecutionMember,
316 RTI::ConcurrentAccessAttempted,
317 RTI::FederateLoggingServiceCalls,
319 RTI::RestoreInProgress,
320 RTI::RTIinternalError);
323 virtual
void unsubscribeInteractionClass (
324 RTI::InteractionClassHandle theClass)
326 RTI::InteractionClassNotDefined,
327 RTI::InteractionClassNotSubscribed,
328 RTI::FederateNotExecutionMember,
329 RTI::ConcurrentAccessAttempted,
331 RTI::RestoreInProgress,
332 RTI::RTIinternalError);
340 virtual RTI::ObjectHandle registerObjectInstance (
341 RTI::ObjectClassHandle theClass,
342 const
char *theObject)
344 RTI::ObjectClassNotDefined,
345 RTI::ObjectClassNotPublished,
346 RTI::ObjectAlreadyRegistered,
347 RTI::FederateNotExecutionMember,
348 RTI::ConcurrentAccessAttempted,
350 RTI::RestoreInProgress,
351 RTI::RTIinternalError);
353 virtual RTI::ObjectHandle registerObjectInstance (
354 RTI::ObjectClassHandle theClass)
356 RTI::ObjectClassNotDefined,
357 RTI::ObjectClassNotPublished,
358 RTI::FederateNotExecutionMember,
359 RTI::ConcurrentAccessAttempted,
361 RTI::RestoreInProgress,
362 RTI::RTIinternalError);
367 virtual RTI::EventRetractionHandle updateAttributeValues (
368 RTI::ObjectHandle theObject,
369 const RTI::AttributeHandleValuePairSet& theAttributes,
370 const RTI::FedTime& theTime,
374 RTI::AttributeNotDefined,
375 RTI::AttributeNotOwned,
376 RTI::InvalidFederationTime,
377 RTI::FederateNotExecutionMember,
378 RTI::ConcurrentAccessAttempted,
380 RTI::RestoreInProgress,
381 RTI::RTIinternalError);
383 virtual
void updateAttributeValues (
384 RTI::ObjectHandle theObject,
385 const RTI::AttributeHandleValuePairSet& theAttributes,
389 RTI::AttributeNotDefined,
390 RTI::AttributeNotOwned,
391 RTI::FederateNotExecutionMember,
392 RTI::ConcurrentAccessAttempted,
394 RTI::RestoreInProgress,
395 RTI::RTIinternalError);
400 virtual RTI::EventRetractionHandle sendInteraction (
401 RTI::InteractionClassHandle theInteraction,
402 const RTI::ParameterHandleValuePairSet& theParameters,
403 const RTI::FedTime& theTime,
406 RTI::InteractionClassNotDefined,
407 RTI::InteractionClassNotPublished,
408 RTI::InteractionParameterNotDefined,
409 RTI::InvalidFederationTime,
410 RTI::FederateNotExecutionMember,
411 RTI::ConcurrentAccessAttempted,
413 RTI::RestoreInProgress,
414 RTI::RTIinternalError);
416 virtual
void sendInteraction (
417 RTI::InteractionClassHandle theInteraction,
418 const RTI::ParameterHandleValuePairSet& theParameters,
421 RTI::InteractionClassNotDefined,
422 RTI::InteractionClassNotPublished,
423 RTI::InteractionParameterNotDefined,
424 RTI::FederateNotExecutionMember,
425 RTI::ConcurrentAccessAttempted,
427 RTI::RestoreInProgress,
428 RTI::RTIinternalError);
433 virtual RTI::EventRetractionHandle deleteObjectInstance (
434 RTI::ObjectHandle theObject,
435 const RTI::FedTime& theTime,
439 RTI::DeletePrivilegeNotHeld,
440 RTI::InvalidFederationTime,
441 RTI::FederateNotExecutionMember,
442 RTI::ConcurrentAccessAttempted,
444 RTI::RestoreInProgress,
445 RTI::RTIinternalError);
447 virtual
void deleteObjectInstance (
448 RTI::ObjectHandle theObject,
452 RTI::DeletePrivilegeNotHeld,
453 RTI::FederateNotExecutionMember,
454 RTI::ConcurrentAccessAttempted,
456 RTI::RestoreInProgress,
457 RTI::RTIinternalError);
461 virtual
void localDeleteObjectInstance (
462 RTI::ObjectHandle theObject)
465 RTI::FederateOwnsAttributes,
466 RTI::FederateNotExecutionMember,
467 RTI::ConcurrentAccessAttempted,
469 RTI::RestoreInProgress,
470 RTI::RTIinternalError);
473 virtual
void changeAttributeTransportationType (
474 RTI::ObjectHandle theObject,
476 RTI::TransportationHandle theType)
479 RTI::AttributeNotDefined,
480 RTI::AttributeNotOwned,
481 RTI::InvalidTransportationHandle,
482 RTI::FederateNotExecutionMember,
483 RTI::ConcurrentAccessAttempted,
485 RTI::RestoreInProgress,
486 RTI::RTIinternalError);
489 virtual
void changeInteractionTransportationType (
490 RTI::InteractionClassHandle theClass,
491 RTI::TransportationHandle theType)
493 RTI::InteractionClassNotDefined,
494 RTI::InteractionClassNotPublished,
495 RTI::InvalidTransportationHandle,
496 RTI::FederateNotExecutionMember,
497 RTI::ConcurrentAccessAttempted,
499 RTI::RestoreInProgress,
500 RTI::RTIinternalError);
504 virtual
void requestObjectAttributeValueUpdate (
505 RTI::ObjectHandle theObject,
509 RTI::AttributeNotDefined,
510 RTI::FederateNotExecutionMember,
511 RTI::ConcurrentAccessAttempted,
513 RTI::RestoreInProgress,
514 RTI::RTIinternalError);
516 virtual
void requestClassAttributeValueUpdate (
517 RTI::ObjectClassHandle theClass,
520 RTI::ObjectClassNotDefined,
521 RTI::AttributeNotDefined,
522 RTI::FederateNotExecutionMember,
523 RTI::ConcurrentAccessAttempted,
525 RTI::RestoreInProgress,
526 RTI::RTIinternalError);
534 virtual
void unconditionalAttributeOwnershipDivestiture (
535 RTI::ObjectHandle theObject,
539 RTI::AttributeNotDefined,
540 RTI::AttributeNotOwned,
541 RTI::FederateNotExecutionMember,
542 RTI::ConcurrentAccessAttempted,
544 RTI::RestoreInProgress,
545 RTI::RTIinternalError);
548 virtual
void negotiatedAttributeOwnershipDivestiture (
549 RTI::ObjectHandle theObject,
554 RTI::AttributeNotDefined,
555 RTI::AttributeNotOwned,
556 RTI::AttributeAlreadyBeingDivested,
557 RTI::FederateNotExecutionMember,
558 RTI::ConcurrentAccessAttempted,
560 RTI::RestoreInProgress,
561 RTI::RTIinternalError);
564 virtual
void attributeOwnershipAcquisition (
565 RTI::ObjectHandle theObject,
570 RTI::ObjectClassNotPublished,
571 RTI::AttributeNotDefined,
572 RTI::AttributeNotPublished,
573 RTI::FederateOwnsAttributes,
574 RTI::FederateNotExecutionMember,
575 RTI::ConcurrentAccessAttempted,
577 RTI::RestoreInProgress,
578 RTI::RTIinternalError);
581 virtual
void attributeOwnershipAcquisitionIfAvailable (
582 RTI::ObjectHandle theObject,
586 RTI::ObjectClassNotPublished,
587 RTI::AttributeNotDefined,
588 RTI::AttributeNotPublished,
589 RTI::FederateOwnsAttributes,
590 RTI::AttributeAlreadyBeingAcquired,
591 RTI::FederateNotExecutionMember,
592 RTI::ConcurrentAccessAttempted,
594 RTI::RestoreInProgress,
595 RTI::RTIinternalError);
599 RTI::ObjectHandle theObject,
603 RTI::AttributeNotDefined,
604 RTI::AttributeNotOwned,
605 RTI::FederateWasNotAskedToReleaseAttribute,
606 RTI::FederateNotExecutionMember,
607 RTI::ConcurrentAccessAttempted,
609 RTI::RestoreInProgress,
610 RTI::RTIinternalError);
613 virtual
void cancelNegotiatedAttributeOwnershipDivestiture (
614 RTI::ObjectHandle theObject,
618 RTI::AttributeNotDefined,
619 RTI::AttributeNotOwned,
620 RTI::AttributeDivestitureWasNotRequested,
621 RTI::FederateNotExecutionMember,
622 RTI::ConcurrentAccessAttempted,
624 RTI::RestoreInProgress,
625 RTI::RTIinternalError);
628 virtual
void cancelAttributeOwnershipAcquisition (
629 RTI::ObjectHandle theObject,
633 RTI::AttributeNotDefined,
634 RTI::AttributeAlreadyOwned,
635 RTI::AttributeAcquisitionWasNotRequested,
636 RTI::FederateNotExecutionMember,
637 RTI::ConcurrentAccessAttempted,
639 RTI::RestoreInProgress,
640 RTI::RTIinternalError);
643 virtual
void queryAttributeOwnership (
644 RTI::ObjectHandle theObject,
645 RTI::AttributeHandle theAttribute)
648 RTI::AttributeNotDefined,
649 RTI::FederateNotExecutionMember,
650 RTI::ConcurrentAccessAttempted,
652 RTI::RestoreInProgress,
653 RTI::RTIinternalError);
656 virtual RTI::Boolean isAttributeOwnedByFederate (
657 RTI::ObjectHandle theObject,
658 RTI::AttributeHandle theAttribute)
661 RTI::AttributeNotDefined,
662 RTI::FederateNotExecutionMember,
663 RTI::ConcurrentAccessAttempted,
665 RTI::RestoreInProgress,
666 RTI::RTIinternalError);
673 virtual
void enableTimeRegulation (
674 const RTI::FedTime& theFederateTime,
675 const RTI::FedTime& theLookahead)
677 RTI::TimeRegulationAlreadyEnabled,
678 RTI::EnableTimeRegulationPending,
679 RTI::TimeAdvanceAlreadyInProgress,
680 RTI::InvalidFederationTime,
681 RTI::InvalidLookahead,
682 RTI::ConcurrentAccessAttempted,
683 RTI::FederateNotExecutionMember,
685 RTI::RestoreInProgress,
686 RTI::RTIinternalError);
689 virtual
void disableTimeRegulation ()
691 RTI::TimeRegulationWasNotEnabled,
692 RTI::ConcurrentAccessAttempted,
693 RTI::FederateNotExecutionMember,
695 RTI::RestoreInProgress,
696 RTI::RTIinternalError);
699 virtual
void enableTimeConstrained ()
701 RTI::TimeConstrainedAlreadyEnabled,
702 RTI::EnableTimeConstrainedPending,
703 RTI::TimeAdvanceAlreadyInProgress,
704 RTI::FederateNotExecutionMember,
705 RTI::ConcurrentAccessAttempted,
707 RTI::RestoreInProgress,
708 RTI::RTIinternalError);
711 virtual
void disableTimeConstrained ()
713 RTI::TimeConstrainedWasNotEnabled,
714 RTI::FederateNotExecutionMember,
715 RTI::ConcurrentAccessAttempted,
717 RTI::RestoreInProgress,
718 RTI::RTIinternalError);
721 virtual
void timeAdvanceRequest (
722 const RTI::FedTime& theTime)
724 RTI::InvalidFederationTime,
725 RTI::FederationTimeAlreadyPassed,
726 RTI::TimeAdvanceAlreadyInProgress,
727 RTI::EnableTimeRegulationPending,
728 RTI::EnableTimeConstrainedPending,
729 RTI::FederateNotExecutionMember,
730 RTI::ConcurrentAccessAttempted,
732 RTI::RestoreInProgress,
733 RTI::RTIinternalError);
736 virtual
void timeAdvanceRequestAvailable (
737 const RTI::FedTime& theTime)
739 RTI::InvalidFederationTime,
740 RTI::FederationTimeAlreadyPassed,
741 RTI::TimeAdvanceAlreadyInProgress,
742 RTI::EnableTimeRegulationPending,
743 RTI::EnableTimeConstrainedPending,
744 RTI::FederateNotExecutionMember,
745 RTI::ConcurrentAccessAttempted,
747 RTI::RestoreInProgress,
748 RTI::RTIinternalError);
751 virtual
void nextEventRequest (
752 const RTI::FedTime& theTime)
754 RTI::InvalidFederationTime,
755 RTI::FederationTimeAlreadyPassed,
756 RTI::TimeAdvanceAlreadyInProgress,
757 RTI::EnableTimeRegulationPending,
758 RTI::EnableTimeConstrainedPending,
759 RTI::FederateNotExecutionMember,
760 RTI::ConcurrentAccessAttempted,
762 RTI::RestoreInProgress,
763 RTI::RTIinternalError);
766 virtual
void nextEventRequestAvailable (
767 const RTI::FedTime& theTime)
769 RTI::InvalidFederationTime,
770 RTI::FederationTimeAlreadyPassed,
771 RTI::TimeAdvanceAlreadyInProgress,
772 RTI::EnableTimeRegulationPending,
773 RTI::EnableTimeConstrainedPending,
774 RTI::FederateNotExecutionMember,
775 RTI::ConcurrentAccessAttempted,
777 RTI::RestoreInProgress,
778 RTI::RTIinternalError);
781 virtual
void flushQueueRequest (
782 const RTI::FedTime& theTime)
784 RTI::InvalidFederationTime,
785 RTI::FederationTimeAlreadyPassed,
786 RTI::TimeAdvanceAlreadyInProgress,
787 RTI::EnableTimeRegulationPending,
788 RTI::EnableTimeConstrainedPending,
789 RTI::FederateNotExecutionMember,
790 RTI::ConcurrentAccessAttempted,
792 RTI::RestoreInProgress,
793 RTI::RTIinternalError);
796 virtual
void enableAsynchronousDelivery()
798 RTI::AsynchronousDeliveryAlreadyEnabled,
799 RTI::FederateNotExecutionMember,
800 RTI::ConcurrentAccessAttempted,
802 RTI::RestoreInProgress,
803 RTI::RTIinternalError);
806 virtual
void disableAsynchronousDelivery()
808 RTI::AsynchronousDeliveryAlreadyDisabled,
809 RTI::FederateNotExecutionMember,
810 RTI::ConcurrentAccessAttempted,
812 RTI::RestoreInProgress,
813 RTI::RTIinternalError);
816 virtual
void queryLBTS (
817 RTI::FedTime& theTime)
819 RTI::FederateNotExecutionMember,
820 RTI::ConcurrentAccessAttempted,
822 RTI::RestoreInProgress,
823 RTI::RTIinternalError);
826 virtual
void queryFederateTime (
827 RTI::FedTime& theTime)
829 RTI::FederateNotExecutionMember,
830 RTI::ConcurrentAccessAttempted,
832 RTI::RestoreInProgress,
833 RTI::RTIinternalError);
836 virtual
void queryMinNextEventTime (
837 RTI::FedTime& theTime)
839 RTI::FederateNotExecutionMember,
840 RTI::ConcurrentAccessAttempted,
842 RTI::RestoreInProgress,
843 RTI::RTIinternalError);
846 virtual
void modifyLookahead (
847 const RTI::FedTime& theLookahead)
849 RTI::InvalidLookahead,
850 RTI::FederateNotExecutionMember,
851 RTI::ConcurrentAccessAttempted,
853 RTI::RestoreInProgress,
854 RTI::RTIinternalError);
857 virtual
void queryLookahead (
858 RTI::FedTime& theTime)
860 RTI::FederateNotExecutionMember,
861 RTI::ConcurrentAccessAttempted,
863 RTI::RestoreInProgress,
864 RTI::RTIinternalError);
867 virtual
void retract (
868 RTI::EventRetractionHandle theHandle)
870 RTI::InvalidRetractionHandle,
871 RTI::FederateNotExecutionMember,
872 RTI::ConcurrentAccessAttempted,
874 RTI::RestoreInProgress,
875 RTI::RTIinternalError);
878 virtual
void changeAttributeOrderType (
879 RTI::ObjectHandle theObject,
881 RTI::OrderingHandle theType)
884 RTI::AttributeNotDefined,
885 RTI::AttributeNotOwned,
886 RTI::InvalidOrderingHandle,
887 RTI::FederateNotExecutionMember,
888 RTI::ConcurrentAccessAttempted,
890 RTI::RestoreInProgress,
891 RTI::RTIinternalError);
894 virtual
void changeInteractionOrderType (
895 RTI::InteractionClassHandle theClass,
896 RTI::OrderingHandle theType)
898 RTI::InteractionClassNotDefined,
899 RTI::InteractionClassNotPublished,
900 RTI::InvalidOrderingHandle,
901 RTI::FederateNotExecutionMember,
902 RTI::ConcurrentAccessAttempted,
904 RTI::RestoreInProgress,
905 RTI::RTIinternalError);
912 virtual RTI::Region* createRegion (
913 RTI::SpaceHandle theSpace,
914 RTI::ULong numberOfExtents)
916 RTI::SpaceNotDefined,
918 RTI::FederateNotExecutionMember,
919 RTI::ConcurrentAccessAttempted,
921 RTI::RestoreInProgress,
922 RTI::RTIinternalError);
925 virtual
void notifyAboutRegionModification (
926 RTI::Region &theRegion)
930 RTI::FederateNotExecutionMember,
931 RTI::ConcurrentAccessAttempted,
933 RTI::RestoreInProgress,
934 RTI::RTIinternalError);
937 virtual
void deleteRegion (
938 RTI::Region *theRegion)
942 RTI::FederateNotExecutionMember,
943 RTI::ConcurrentAccessAttempted,
945 RTI::RestoreInProgress,
946 RTI::RTIinternalError);
950 virtual RTI::ObjectHandle registerObjectInstanceWithRegion (
951 RTI::ObjectClassHandle theClass,
952 const
char *theObject,
953 RTI::AttributeHandle theAttributes[],
954 RTI::Region *theRegions[],
955 RTI::ULong theNumberOfHandles)
957 RTI::ObjectClassNotDefined,
958 RTI::ObjectClassNotPublished,
959 RTI::AttributeNotDefined,
960 RTI::AttributeNotPublished,
962 RTI::InvalidRegionContext,
963 RTI::ObjectAlreadyRegistered,
964 RTI::FederateNotExecutionMember,
965 RTI::ConcurrentAccessAttempted,
967 RTI::RestoreInProgress,
968 RTI::RTIinternalError);
970 virtual RTI::ObjectHandle registerObjectInstanceWithRegion (
971 RTI::ObjectClassHandle theClass,
972 RTI::AttributeHandle theAttributes[],
973 RTI::Region *theRegions[],
974 RTI::ULong theNumberOfHandles)
976 RTI::ObjectClassNotDefined,
977 RTI::ObjectClassNotPublished,
978 RTI::AttributeNotDefined,
979 RTI::AttributeNotPublished,
981 RTI::InvalidRegionContext,
982 RTI::FederateNotExecutionMember,
983 RTI::ConcurrentAccessAttempted,
985 RTI::RestoreInProgress,
986 RTI::RTIinternalError);
990 virtual
void associateRegionForUpdates (
991 RTI::Region &theRegion,
992 RTI::ObjectHandle theObject,
996 RTI::AttributeNotDefined,
997 RTI::InvalidRegionContext,
999 RTI::FederateNotExecutionMember,
1000 RTI::ConcurrentAccessAttempted,
1001 RTI::SaveInProgress,
1002 RTI::RestoreInProgress,
1003 RTI::RTIinternalError);
1006 virtual
void unassociateRegionForUpdates (
1007 RTI::Region &theRegion,
1008 RTI::ObjectHandle theObject)
1010 RTI::ObjectNotKnown,
1011 RTI::InvalidRegionContext,
1012 RTI::RegionNotKnown,
1013 RTI::FederateNotExecutionMember,
1014 RTI::ConcurrentAccessAttempted,
1015 RTI::SaveInProgress,
1016 RTI::RestoreInProgress,
1017 RTI::RTIinternalError);
1020 virtual
void subscribeObjectClassAttributesWithRegion (
1021 RTI::ObjectClassHandle theClass,
1022 RTI::Region &theRegion,
1024 RTI::Boolean active = RTI::RTI_TRUE)
1026 RTI::ObjectClassNotDefined,
1027 RTI::AttributeNotDefined,
1028 RTI::RegionNotKnown,
1029 RTI::InvalidRegionContext,
1030 RTI::FederateNotExecutionMember,
1031 RTI::ConcurrentAccessAttempted,
1032 RTI::SaveInProgress,
1033 RTI::RestoreInProgress,
1034 RTI::RTIinternalError);
1037 virtual
void unsubscribeObjectClassWithRegion (
1038 RTI::ObjectClassHandle theClass,
1039 RTI::Region &theRegion)
1041 RTI::ObjectClassNotDefined,
1042 RTI::RegionNotKnown,
1043 RTI::ObjectClassNotSubscribed,
1044 RTI::FederateNotExecutionMember,
1045 RTI::ConcurrentAccessAttempted,
1046 RTI::SaveInProgress,
1047 RTI::RestoreInProgress,
1048 RTI::RTIinternalError);
1051 virtual
void subscribeInteractionClassWithRegion (
1052 RTI::InteractionClassHandle theClass,
1053 RTI::Region &theRegion,
1054 RTI::Boolean active = RTI::RTI_TRUE)
1056 RTI::InteractionClassNotDefined,
1057 RTI::RegionNotKnown,
1058 RTI::InvalidRegionContext,
1059 RTI::FederateLoggingServiceCalls,
1060 RTI::FederateNotExecutionMember,
1061 RTI::ConcurrentAccessAttempted,
1062 RTI::SaveInProgress,
1063 RTI::RestoreInProgress,
1064 RTI::RTIinternalError);
1067 virtual
void unsubscribeInteractionClassWithRegion (
1068 RTI::InteractionClassHandle theClass,
1069 RTI::Region &theRegion)
1071 RTI::InteractionClassNotDefined,
1072 RTI::InteractionClassNotSubscribed,
1073 RTI::RegionNotKnown,
1074 RTI::FederateNotExecutionMember,
1075 RTI::ConcurrentAccessAttempted,
1076 RTI::SaveInProgress,
1077 RTI::RestoreInProgress,
1078 RTI::RTIinternalError);
1082 virtual RTI::EventRetractionHandle sendInteractionWithRegion (
1083 RTI::InteractionClassHandle theInteraction,
1084 const RTI::ParameterHandleValuePairSet &theParameters,
1085 const RTI::FedTime& theTime,
1087 const RTI::Region &theRegion)
1089 RTI::InteractionClassNotDefined,
1090 RTI::InteractionClassNotPublished,
1091 RTI::InteractionParameterNotDefined,
1092 RTI::InvalidFederationTime,
1093 RTI::RegionNotKnown,
1094 RTI::InvalidRegionContext,
1095 RTI::FederateNotExecutionMember,
1096 RTI::ConcurrentAccessAttempted,
1097 RTI::SaveInProgress,
1098 RTI::RestoreInProgress,
1099 RTI::RTIinternalError);
1101 virtual
void sendInteractionWithRegion (
1102 RTI::InteractionClassHandle theInteraction,
1103 const RTI::ParameterHandleValuePairSet &theParameters,
1105 const RTI::Region &theRegion)
1107 RTI::InteractionClassNotDefined,
1108 RTI::InteractionClassNotPublished,
1109 RTI::InteractionParameterNotDefined,
1110 RTI::RegionNotKnown,
1111 RTI::InvalidRegionContext,
1112 RTI::FederateNotExecutionMember,
1113 RTI::ConcurrentAccessAttempted,
1114 RTI::SaveInProgress,
1115 RTI::RestoreInProgress,
1116 RTI::RTIinternalError);
1120 virtual
void requestClassAttributeValueUpdateWithRegion (
1121 RTI::ObjectClassHandle theClass,
1123 const RTI::Region &theRegion)
1125 RTI::ObjectClassNotDefined,
1126 RTI::AttributeNotDefined,
1127 RTI::RegionNotKnown,
1128 RTI::FederateNotExecutionMember,
1129 RTI::ConcurrentAccessAttempted,
1130 RTI::SaveInProgress,
1131 RTI::RestoreInProgress,
1132 RTI::RTIinternalError);
1139 virtual RTI::ObjectClassHandle getObjectClassHandle (
1140 const
char *theName)
1143 RTI::FederateNotExecutionMember,
1144 RTI::ConcurrentAccessAttempted,
1145 RTI::RTIinternalError);
1148 virtual
char * getObjectClassName (
1149 RTI::ObjectClassHandle theHandle)
1151 RTI::ObjectClassNotDefined,
1152 RTI::FederateNotExecutionMember,
1153 RTI::ConcurrentAccessAttempted,
1154 RTI::RTIinternalError);
1157 virtual RTI::AttributeHandle getAttributeHandle (
1158 const
char *theName,
1159 RTI::ObjectClassHandle whichClass)
1161 RTI::ObjectClassNotDefined,
1163 RTI::FederateNotExecutionMember,
1164 RTI::ConcurrentAccessAttempted,
1165 RTI::RTIinternalError);
1168 virtual
char * getAttributeName (
1169 RTI::AttributeHandle theHandle,
1170 RTI::ObjectClassHandle whichClass)
1172 RTI::ObjectClassNotDefined,
1173 RTI::AttributeNotDefined,
1174 RTI::FederateNotExecutionMember,
1175 RTI::ConcurrentAccessAttempted,
1176 RTI::RTIinternalError);
1179 virtual RTI::InteractionClassHandle getInteractionClassHandle (
1180 const
char *theName)
1183 RTI::FederateNotExecutionMember,
1184 RTI::ConcurrentAccessAttempted,
1185 RTI::RTIinternalError);
1188 virtual
char * getInteractionClassName (
1189 RTI::InteractionClassHandle theHandle)
1191 RTI::InteractionClassNotDefined,
1192 RTI::FederateNotExecutionMember,
1193 RTI::ConcurrentAccessAttempted,
1194 RTI::RTIinternalError);
1197 virtual RTI::ParameterHandle getParameterHandle (
1198 const
char *theName,
1199 RTI::InteractionClassHandle whichClass)
1201 RTI::InteractionClassNotDefined,
1203 RTI::FederateNotExecutionMember,
1204 RTI::ConcurrentAccessAttempted,
1205 RTI::RTIinternalError);
1208 virtual
char * getParameterName (
1209 RTI::ParameterHandle theHandle,
1210 RTI::InteractionClassHandle whichClass)
1212 RTI::InteractionClassNotDefined,
1213 RTI::InteractionParameterNotDefined,
1214 RTI::FederateNotExecutionMember,
1215 RTI::ConcurrentAccessAttempted,
1216 RTI::RTIinternalError);
1219 virtual RTI::ObjectHandle getObjectInstanceHandle (
1220 const
char *theName)
1222 RTI::ObjectNotKnown,
1223 RTI::FederateNotExecutionMember,
1224 RTI::ConcurrentAccessAttempted,
1225 RTI::RTIinternalError);
1228 virtual
char * getObjectInstanceName (
1229 RTI::ObjectHandle theHandle)
1231 RTI::ObjectNotKnown,
1232 RTI::FederateNotExecutionMember,
1233 RTI::ConcurrentAccessAttempted,
1234 RTI::RTIinternalError);
1237 virtual RTI::SpaceHandle getRoutingSpaceHandle (
1238 const
char *theName)
1241 RTI::FederateNotExecutionMember,
1242 RTI::ConcurrentAccessAttempted,
1243 RTI::RTIinternalError);
1246 virtual
char * getRoutingSpaceName (
1247 RTI::SpaceHandle theHandle)
1249 RTI::SpaceNotDefined,
1250 RTI::FederateNotExecutionMember,
1251 RTI::ConcurrentAccessAttempted,
1252 RTI::RTIinternalError);
1255 virtual RTI::DimensionHandle getDimensionHandle (
1256 const
char *theName,
1257 RTI::SpaceHandle whichSpace)
1259 RTI::SpaceNotDefined,
1261 RTI::FederateNotExecutionMember,
1262 RTI::ConcurrentAccessAttempted,
1263 RTI::RTIinternalError);
1266 virtual
char * getDimensionName (
1267 RTI::DimensionHandle theHandle,
1268 RTI::SpaceHandle whichSpace)
1270 RTI::SpaceNotDefined,
1271 RTI::DimensionNotDefined,
1272 RTI::FederateNotExecutionMember,
1273 RTI::ConcurrentAccessAttempted,
1274 RTI::RTIinternalError);
1277 virtual RTI::SpaceHandle getAttributeRoutingSpaceHandle (
1278 RTI::AttributeHandle theHandle,
1279 RTI::ObjectClassHandle whichClass)
1281 RTI::ObjectClassNotDefined,
1282 RTI::AttributeNotDefined,
1283 RTI::FederateNotExecutionMember,
1284 RTI::ConcurrentAccessAttempted,
1285 RTI::RTIinternalError);
1288 virtual RTI::ObjectClassHandle getObjectClass (
1289 RTI::ObjectHandle theObject)
1291 RTI::ObjectNotKnown,
1292 RTI::FederateNotExecutionMember,
1293 RTI::ConcurrentAccessAttempted,
1294 RTI::RTIinternalError);
1297 virtual RTI::SpaceHandle getInteractionRoutingSpaceHandle (
1298 RTI::InteractionClassHandle theHandle)
1300 RTI::InteractionClassNotDefined,
1301 RTI::FederateNotExecutionMember,
1302 RTI::ConcurrentAccessAttempted,
1303 RTI::RTIinternalError);
1306 virtual RTI::TransportationHandle getTransportationHandle (
1307 const
char *theName)
1310 RTI::FederateNotExecutionMember,
1311 RTI::ConcurrentAccessAttempted,
1312 RTI::RTIinternalError);
1315 virtual
char * getTransportationName (
1316 RTI::TransportationHandle theHandle)
1318 RTI::InvalidTransportationHandle,
1319 RTI::FederateNotExecutionMember,
1320 RTI::ConcurrentAccessAttempted,
1321 RTI::RTIinternalError);
1324 virtual RTI::OrderingHandle getOrderingHandle (
1325 const
char *theName)
1328 RTI::FederateNotExecutionMember,
1329 RTI::ConcurrentAccessAttempted,
1330 RTI::RTIinternalError);
1333 virtual
char * getOrderingName (
1334 RTI::OrderingHandle theHandle)
1336 RTI::InvalidOrderingHandle,
1337 RTI::FederateNotExecutionMember,
1338 RTI::ConcurrentAccessAttempted,
1339 RTI::RTIinternalError);
1342 virtual
void enableClassRelevanceAdvisorySwitch()
1344 RTI::FederateNotExecutionMember,
1345 RTI::ConcurrentAccessAttempted,
1346 RTI::SaveInProgress,
1347 RTI::RestoreInProgress,
1348 RTI::RTIinternalError);
1351 virtual
void disableClassRelevanceAdvisorySwitch()
1353 RTI::FederateNotExecutionMember,
1354 RTI::ConcurrentAccessAttempted,
1355 RTI::SaveInProgress,
1356 RTI::RestoreInProgress,
1357 RTI::RTIinternalError);
1360 virtual
void enableAttributeRelevanceAdvisorySwitch()
1362 RTI::FederateNotExecutionMember,
1363 RTI::ConcurrentAccessAttempted,
1364 RTI::SaveInProgress,
1365 RTI::RestoreInProgress,
1366 RTI::RTIinternalError);
1369 virtual
void disableAttributeRelevanceAdvisorySwitch()
1371 RTI::FederateNotExecutionMember,
1372 RTI::ConcurrentAccessAttempted,
1373 RTI::SaveInProgress,
1374 RTI::RestoreInProgress,
1375 RTI::RTIinternalError);
1378 virtual
void enableAttributeScopeAdvisorySwitch()
1380 RTI::FederateNotExecutionMember,
1381 RTI::ConcurrentAccessAttempted,
1382 RTI::SaveInProgress,
1383 RTI::RestoreInProgress,
1384 RTI::RTIinternalError);
1387 virtual
void disableAttributeScopeAdvisorySwitch()
1389 RTI::FederateNotExecutionMember,
1390 RTI::ConcurrentAccessAttempted,
1391 RTI::SaveInProgress,
1392 RTI::RestoreInProgress,
1393 RTI::RTIinternalError);
1396 virtual
void enableInteractionRelevanceAdvisorySwitch()
1398 RTI::FederateNotExecutionMember,
1399 RTI::ConcurrentAccessAttempted,
1400 RTI::SaveInProgress,
1401 RTI::RestoreInProgress,
1402 RTI::RTIinternalError);
1405 virtual
void disableInteractionRelevanceAdvisorySwitch()
1407 RTI::FederateNotExecutionMember,
1408 RTI::ConcurrentAccessAttempted,
1409 RTI::SaveInProgress,
1410 RTI::RestoreInProgress,
1411 RTI::RTIinternalError);
1413 virtual RTI::Boolean tick ()
1415 RTI::SpecifiedSaveLabelDoesNotExist,
1416 RTI::ConcurrentAccessAttempted,
1417 RTI::RTIinternalError);
1419 virtual RTI::Boolean tick (
1420 RTI::TickTime minimum,
1421 RTI::TickTime maximum,
1422 RTI::Boolean unlockWhileWaiting=RTI::RTI_FALSE)
1424 RTI::SpecifiedSaveLabelDoesNotExist,
1425 RTI::ConcurrentAccessAttempted,
1426 RTI::RTIinternalError);
1428 virtual RTI::RegionToken getRegionToken(
1431 RTI::FederateNotExecutionMember,
1432 RTI::ConcurrentAccessAttempted,
1433 RTI::RegionNotKnown,
1434 RTI::RTIinternalError);
1436 virtual RTI::Region * getRegion(
1439 RTI::FederateNotExecutionMember,
1440 RTI::ConcurrentAccessAttempted,
1441 RTI::RegionNotKnown,
1442 RTI::RTIinternalError);
1454 static DtRtiAmbassadorImplementor* create(RTI::RTIambassador* topLevelAmbPtr);
1459 static
void setCreatorFunction(DtRtiAmbassadorImplementorCreator creator);
1464 virtual
void throwInternalError(const MAKRti::DtString & errorMessage) const;
1467 virtual
void throwNotConnected(const MAKRti::DtString & errorMessage) const;
1470 virtual
void throwNotJoined(const MAKRti::DtString & errorMessage) const;
1475 RTI::RTIambassador* myTopLevelAmb;
1478 bool myAccessingRtiAmb;
1483 static DtRtiAmbassadorImplementorCreator theCreator;
1487 class DtConcurrentAccessCheck
1491 DtConcurrentAccessCheck(
bool* accessFlag)
1493 myAccessFlag = accessFlag;
1494 if(theAccessCheckRequired)
1498 throw RTI::ConcurrentAccessAttempted(
"Concurrent RTIambassador access attempted.");
1500 *myAccessFlag =
true;
1504 ~DtConcurrentAccessCheck()
1506 *myAccessFlag =
false;
1509 static void checkForConcurrentAccess(
bool check)
1511 theAccessCheckRequired = check;
1520 static bool theAccessCheckRequired;
1523 DtConcurrentAccessCheck(
const DtConcurrentAccessCheck& orig);
1524 DtConcurrentAccessCheck&
operator=(
const DtConcurrentAccessCheck& orig);