14 #ifndef DtHLA_1516_EVOLVED
37 const RTI::VariableLengthData& tag,
48 struct DtScopeChangeCallbackData
51 RTI::ObjectInstanceHandle handle;
57 throw (RTI::FederateInternalError);
83 virtual
void addReflectAttributeValuesCb(
85 virtual
void removeReflectAttributeValuesCb(
90 virtual
void addDiscoverObjectCb( RTI::ObjectClassHandle hand,
92 virtual
void removeDiscoverObjectCb( RTI::ObjectClassHandle hand,
97 virtual
void addRemoveObjectCb( RTI::ObjectInstanceHandle
id,
99 virtual
void removeRemoveObjectCb( RTI::ObjectInstanceHandle
id,
104 virtual
void addStartRegCb( RTI::ObjectClassHandle hand,
106 virtual
void removeStartRegCb( RTI::ObjectClassHandle hand,
111 virtual
void addStopRegCb( RTI::ObjectClassHandle hand,
113 virtual
void removeStopRegCb( RTI::ObjectClassHandle hand,
118 virtual
void addUpdatesOnCb( RTI::ObjectInstanceHandle hand,
120 virtual
void removeUpdatesOnCb( RTI::ObjectInstanceHandle hand,
125 virtual
void addUpdatesOffCb( RTI::ObjectInstanceHandle hand,
127 virtual
void removeUpdatesOffCb( RTI::ObjectInstanceHandle hand,
132 virtual
void addStartInteractionsCb( RTI::InteractionClassHandle hand,
134 virtual
void removeStartInteractionsCb( RTI::InteractionClassHandle hand,
139 virtual
void addStopInteractionsCb( RTI::InteractionClassHandle hand,
141 virtual
void removeStopInteractionsCb( RTI::InteractionClassHandle hand,
146 virtual
void addReceiveInteractionCb( RTI::InteractionClassHandle hand,
148 virtual
void removeReceiveInteractionCb( RTI::InteractionClassHandle hand,
153 virtual
void addTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
154 virtual
void removeTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
158 virtual
void addTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
159 virtual
void removeTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
163 virtual
void addTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
164 virtual
void removeTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
168 virtual
void addNameReservationSucceeded( DtReserveNameCb cb,
void* usr );
169 virtual
void removeNameReservationSucceeded( DtReserveNameCb cb,
void* usr );
173 virtual
void addNameReservationFailed( DtReserveNameCb cb,
void* usr );
174 virtual
void removeNameReservationFailed( DtReserveNameCb cb,
void* usr );
177 virtual
void addSynchPointRegSucceededCb(const
DtString& label,
182 virtual
void removeSynchPointRegSucceededCb(const
DtString& label,
187 virtual
void addSynchPointRegFailedCb(const
DtString& label,
192 virtual
void removeSynchPointRegFailedCb(const
DtString& label,
197 virtual
void addFederationSynchedCb(const
DtString& label,
202 virtual
void removeFederationSynchedCb(const
DtString& label,
207 virtual
void addAnnounceSynchPointCb(const
DtString& label,
212 virtual
void removeAnnounceSynchPointCb(const
DtString& label,
217 virtual
void setRemoveObjectOnAttOutOfScope(
bool remove);
218 virtual
bool removeObjectOnAttOutOfScope() const;
223 virtual
void addFederateSaveCb(const
DtString& label,
228 virtual
void removeFederateSaveCb(const
DtString& label,
236 virtual
void addFederateRestoreCb(const
DtString& label,
241 virtual
void removeFederateRestoreCb(const
DtString& label,
247 virtual
bool waitingForSaveOrRestore() const;
251 struct DtFederateSaveCbInfo
257 struct DtFederateRestoreCbInfo
263 struct DtLabelledFederateSaveCbInfo
270 struct DtLabelledFederateRestoreCbInfo
277 struct DtGeneralSynchPointCbInfo
283 struct DtLabelledSynchPointCbInfo
290 struct DtGeneralAnnounceCbInfo
296 struct DtLabelledAnnounceCbInfo
303 static void attributesOutOfScopeCb(
void* usr);
305 virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
321 DtReserveNameCbList myNameReservationSucceededCbList;
322 DtReserveNameCbList myNameReservationFailedCbList;
325 std::list<DtFederateSaveCbInfo> myFederateSaveCbList;
326 std::list<DtLabelledFederateSaveCbInfo> myLabFederateSaveCbList;
327 std::list<DtFederateRestoreCbInfo> myFederateRestoreCbList;
328 std::list<DtLabelledFederateRestoreCbInfo> myLabFederateRestoreCbList;
330 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
331 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
332 std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
333 std::list<DtLabelledAnnounceCbInfo> myLabAnnounceSynchPointCbList;
335 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
336 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
337 std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
338 std::list<DtGeneralAnnounceCbInfo> myAnnounceSynchPointCbList;
340 bool myRemoveObjectOnAttOutOfScope;
343 virtual void applyFedsSynchedCallbacks(
const DtString& label);
344 virtual void applyRegistrationSucceededCallbacks(
const DtString& label);
345 virtual void applyRegistrationFailedCallbacks(
const DtString& label);
348 virtual bool applyAnnounceCallbacks(
const DtString& label,
const RTI::VariableLengthData& tag);
355 std::wstring
const & label)
356 throw (RTI::FederateInternalError);
359 std::wstring
const & label,
360 RTI::SynchronizationFailureReason reason)
361 throw (RTI::FederateInternalError);
365 std::wstring
const & label,
366 RTI::VariableLengthData
const & aTag)
367 throw (RTI::FederateInternalError);
371 throw (RTI::FederateInternalError);
375 throw (RTI::UnableToPerformSave,
376 RTI::FederateInternalError);
379 RTI::LogicalTime
const & theTime)
380 throw (RTI::UnableToPerformSave,
381 RTI::InvalidLogicalTime,
382 RTI::FederateInternalError);
388 throw (RTI::FederateInternalError);
390 virtual
void federationNotSaved(RTI::SaveFailureReason theSaveFailureReason)
391 throw (RTI::FederateInternalError);
395 virtual
void federationSaveStatusResponse(
396 RTI::FederateHandleSaveStatusPairVector const & theFederateStatusVector)
397 throw (RTI::FederateInternalError);
400 virtual
void requestFederateRestoreSucceeded(std::wstring const & label)
401 throw (RTI::FederateInternalError);
403 virtual
void requestFederateRestoreFailed(std::wstring const & label)
404 throw (RTI::FederateInternalError);
407 virtual
void federationRestoreBegun()
408 throw (RTI::FederateInternalError);
411 virtual
void initiateFederateRestore(std::wstring const & label,
412 RTI::FederateHandle handle)
413 throw (RTI::SpecifiedSaveLabelDoesNotExist,
414 RTI::CouldNotInitiateRestore,
415 RTI::FederateInternalError);
418 virtual
void federationRestored()
419 throw (RTI::FederateInternalError);
421 virtual
void federationNotRestored(
422 RTI::RestoreFailureReason theRestoreFailureReason)
423 throw (RTI::FederateInternalError);
426 virtual
void federationRestoreStatusResponse(
427 RTI::FederateHandleRestoreStatusPairVector const & theFederateStatusVector)
428 throw (RTI::FederateInternalError);
436 virtual
void startRegistrationForObjectClass(
437 RTI::ObjectClassHandle theClass)
438 throw (RTI::ObjectClassNotPublished,
439 RTI::FederateInternalError);
442 virtual
void stopRegistrationForObjectClass(
443 RTI::ObjectClassHandle theClass)
444 throw (RTI::ObjectClassNotPublished,
445 RTI::FederateInternalError);
448 virtual
void turnInteractionsOn(
449 RTI::InteractionClassHandle theHandle)
450 throw (RTI::InteractionClassNotPublished,
451 RTI::FederateInternalError);
454 virtual
void turnInteractionsOff(RTI::InteractionClassHandle theHandle)
455 throw (RTI::InteractionClassNotPublished,
456 RTI::FederateInternalError);
463 virtual
void objectInstanceNameReservationSucceeded(
464 std::wstring const & theObjectInstanceName)
465 throw (RTI::UnknownName,
466 RTI::FederateInternalError);
468 virtual
void objectInstanceNameReservationFailed(
469 std::wstring const & theObjectInstanceName)
470 throw (RTI::UnknownName,
471 RTI::FederateInternalError);
474 virtual
void discoverObjectInstance(
475 RTI::ObjectInstanceHandle theObject,
476 RTI::ObjectClassHandle theObjectClass,
477 std::wstring const & theObjectInstanceName)
478 throw (RTI::CouldNotDiscover,
479 RTI::ObjectClassNotKnown,
480 RTI::FederateInternalError);
483 virtual
void reflectAttributeValues(
484 RTI::ObjectInstanceHandle theObject,
485 RTI::AttributeHandleValueMap const & theAttributeValues,
486 RTI::VariableLengthData const & aTag,
487 RTI::OrderType sentOrder,
488 RTI::TransportationType theType)
489 throw (RTI::ObjectInstanceNotKnown,
490 RTI::AttributeNotRecognized,
491 RTI::AttributeNotSubscribed,
492 RTI::FederateInternalError);
494 virtual
void reflectAttributeValues(
495 RTI::ObjectInstanceHandle theObject,
496 RTI::AttributeHandleValueMap const & theAttributeValues,
497 RTI::VariableLengthData const & aTag,
498 RTI::OrderType sentOrder,
499 RTI::TransportationType theType,
500 RTI::RegionHandleSet const & theSentRegionHandleSet)
501 throw (RTI::ObjectInstanceNotKnown,
502 RTI::AttributeNotRecognized,
503 RTI::AttributeNotSubscribed,
504 RTI::FederateInternalError);
506 virtual
void reflectAttributeValues(
507 RTI::ObjectInstanceHandle theObject,
508 RTI::AttributeHandleValueMap const & theAttributeValues,
509 RTI::VariableLengthData const & aTag,
510 RTI::OrderType sentOrder,
511 RTI::TransportationType theType,
512 RTI::LogicalTime const & theTime,
513 RTI::OrderType receivedOrder)
514 throw (RTI::ObjectInstanceNotKnown,
515 RTI::AttributeNotRecognized,
516 RTI::AttributeNotSubscribed,
517 RTI::FederateInternalError);
519 virtual
void reflectAttributeValues(
520 RTI::ObjectInstanceHandle theObject,
521 RTI::AttributeHandleValueMap const & theAttributeValues,
522 RTI::VariableLengthData const & aTag,
523 RTI::OrderType sentOrder,
524 RTI::TransportationType theType,
525 RTI::LogicalTime const & theTime,
526 RTI::OrderType receivedOrder,
527 RTI::RegionHandleSet const & theSentRegionHandleSet)
528 throw (RTI::ObjectInstanceNotKnown,
529 RTI::AttributeNotRecognized,
530 RTI::AttributeNotSubscribed,
531 RTI::FederateInternalError);
533 virtual
void reflectAttributeValues(
534 RTI::ObjectInstanceHandle theObject,
535 RTI::AttributeHandleValueMap const & theAttributeValues,
536 RTI::VariableLengthData const & aTag,
537 RTI::OrderType sentOrder,
538 RTI::TransportationType theType,
539 RTI::LogicalTime const & theTime,
540 RTI::OrderType receivedOrder,
541 RTI::MessageRetractionHandle theHandle)
542 throw (RTI::ObjectInstanceNotKnown,
543 RTI::AttributeNotRecognized,
544 RTI::AttributeNotSubscribed,
545 RTI::InvalidLogicalTime,
546 RTI::FederateInternalError);
548 virtual
void reflectAttributeValues(
549 RTI::ObjectInstanceHandle theObject,
550 RTI::AttributeHandleValueMap const & theAttributeValues,
551 RTI::VariableLengthData const & aTag,
552 RTI::OrderType sentOrder,
553 RTI::TransportationType theType,
554 RTI::LogicalTime const & theTime,
555 RTI::OrderType receivedOrder,
556 RTI::MessageRetractionHandle theHandle,
557 RTI::RegionHandleSet const & theSentRegionHandleSet)
558 throw (RTI::ObjectInstanceNotKnown,
559 RTI::AttributeNotRecognized,
560 RTI::AttributeNotSubscribed,
561 RTI::InvalidLogicalTime,
562 RTI::FederateInternalError);
566 virtual
void receiveInteraction (
567 RTI::InteractionClassHandle theInteraction,
568 RTI::ParameterHandleValueMap const & theParameterValues,
569 RTI::VariableLengthData const & aTag,
570 RTI::OrderType sentOrder,
571 RTI::TransportationType theType)
572 throw (RTI::InteractionClassNotRecognized,
573 RTI::InteractionParameterNotRecognized,
574 RTI::InteractionClassNotSubscribed,
575 RTI::FederateInternalError);
577 virtual
void receiveInteraction(
578 RTI::InteractionClassHandle theInteraction,
579 RTI::ParameterHandleValueMap const & theParameterValues,
580 RTI::VariableLengthData const & aTag,
581 RTI::OrderType sentOrder,
582 RTI::TransportationType theType,
583 RTI::RegionHandleSet const & theSentRegionHandleSet)
584 throw (RTI::InteractionClassNotRecognized,
585 RTI::InteractionParameterNotRecognized,
586 RTI::InteractionClassNotSubscribed,
587 RTI::FederateInternalError);
589 virtual
void receiveInteraction(
590 RTI::InteractionClassHandle theInteraction,
591 RTI::ParameterHandleValueMap const & theParameterValues,
592 RTI::VariableLengthData const & aTag,
593 RTI::OrderType sentOrder,
594 RTI::TransportationType theType,
595 RTI::LogicalTime const & theTime,
596 RTI::OrderType receivedOrder)
597 throw (RTI::InteractionClassNotRecognized,
598 RTI::InteractionParameterNotRecognized,
599 RTI::InteractionClassNotSubscribed,
600 RTI::FederateInternalError);
602 virtual
void receiveInteraction(
603 RTI::InteractionClassHandle theInteraction,
604 RTI::ParameterHandleValueMap const & theParameterValues,
605 RTI::VariableLengthData const & aTag,
606 RTI::OrderType sentOrder,
607 RTI::TransportationType theType,
608 RTI::LogicalTime const & theTime,
609 RTI::OrderType receivedOrder,
610 RTI::RegionHandleSet const & theSentRegionHandleSet)
611 throw (RTI::InteractionClassNotRecognized,
612 RTI::InteractionParameterNotRecognized,
613 RTI::InteractionClassNotSubscribed,
614 RTI::FederateInternalError);
616 virtual
void receiveInteraction(
617 RTI::InteractionClassHandle theInteraction,
618 RTI::ParameterHandleValueMap const & theParameterValues,
619 RTI::VariableLengthData const & aTag,
620 RTI::OrderType sentOrder,
621 RTI::TransportationType theType,
622 RTI::LogicalTime const & theTime,
623 RTI::OrderType receivedOrder,
624 RTI::MessageRetractionHandle theHandle)
625 throw (RTI::InteractionClassNotRecognized,
626 RTI::InteractionParameterNotRecognized,
627 RTI::InteractionClassNotSubscribed,
628 RTI::InvalidLogicalTime,
629 RTI::FederateInternalError);
631 virtual
void receiveInteraction (
632 RTI::InteractionClassHandle theInteraction,
633 RTI::ParameterHandleValueMap const & theParameterValues,
634 RTI::VariableLengthData const & aTag,
635 RTI::OrderType sentOrder,
636 RTI::TransportationType theType,
637 RTI::LogicalTime const & theTime,
638 RTI::OrderType receivedOrder,
639 RTI::MessageRetractionHandle theHandle,
640 RTI::RegionHandleSet const & theSentRegionHandleSet)
641 throw (RTI::InteractionClassNotRecognized,
642 RTI::InteractionParameterNotRecognized,
643 RTI::InteractionClassNotSubscribed,
644 RTI::InvalidLogicalTime,
645 RTI::FederateInternalError);
648 virtual
void removeObjectInstance(
649 RTI::ObjectInstanceHandle theObject,
650 RTI::VariableLengthData const & aTag,
651 RTI::OrderType sentOrder)
652 throw (RTI::ObjectInstanceNotKnown,
653 RTI::FederateInternalError);
655 virtual
void removeObjectInstance(
656 RTI::ObjectInstanceHandle theObject,
657 RTI::VariableLengthData const & aTag,
658 RTI::OrderType sentOrder,
659 RTI::LogicalTime const & theTime,
660 RTI::OrderType receivedOrder)
661 throw (RTI::ObjectInstanceNotKnown,
662 RTI::FederateInternalError);
664 virtual
void removeObjectInstance(
665 RTI::ObjectInstanceHandle theObject,
666 RTI::VariableLengthData const & aTag,
667 RTI::OrderType sentOrder,
668 RTI::LogicalTime const & theTime,
669 RTI::OrderType receivedOrder,
670 RTI::MessageRetractionHandle theHandle)
671 throw (RTI::ObjectInstanceNotKnown,
672 RTI::InvalidLogicalTime,
673 RTI::FederateInternalError);
676 virtual
void attributesInScope(
677 RTI::ObjectInstanceHandle theObject,
678 RTI::AttributeHandleSet const & theAttributes)
679 throw (RTI::ObjectInstanceNotKnown,
680 RTI::AttributeNotRecognized,
681 RTI::AttributeNotSubscribed,
682 RTI::FederateInternalError);
685 virtual
void attributesOutOfScope(
686 RTI::ObjectInstanceHandle theObject,
687 RTI::AttributeHandleSet const &theAttributes)
688 throw (RTI::ObjectInstanceNotKnown,
689 RTI::AttributeNotRecognized,
690 RTI::AttributeNotSubscribed,
691 RTI::FederateInternalError);
694 virtual
void provideAttributeValueUpdate(
695 RTI::ObjectInstanceHandle theObject,
696 RTI::AttributeHandleSet const & theAttributes,
697 RTI::VariableLengthData const & aTag)
698 throw (RTI::ObjectInstanceNotKnown,
699 RTI::AttributeNotRecognized,
700 RTI::AttributeNotOwned,
701 RTI::FederateInternalError);
704 virtual
void turnUpdatesOnForObjectInstance(
705 RTI::ObjectInstanceHandle theObject,
706 RTI::AttributeHandleSet const & theAttributes)
707 throw (RTI::ObjectInstanceNotKnown,
708 RTI::AttributeNotRecognized,
709 RTI::AttributeNotOwned,
710 RTI::FederateInternalError);
713 virtual
void turnUpdatesOffForObjectInstance(
714 RTI::ObjectInstanceHandle theObject,
715 RTI::AttributeHandleSet const & theAttributes)
716 throw (RTI::ObjectInstanceNotKnown,
717 RTI::AttributeNotRecognized,
718 RTI::AttributeNotOwned,
719 RTI::FederateInternalError);
725 virtual
void requestAttributeOwnershipAssumption(
726 RTI::ObjectInstanceHandle theObject,
727 RTI::AttributeHandleSet const & offeredAttributes,
728 RTI::VariableLengthData const & aTag)
729 throw (RTI::ObjectInstanceNotKnown,
730 RTI::AttributeNotRecognized,
731 RTI::AttributeAlreadyOwned,
732 RTI::AttributeNotPublished,
733 RTI::FederateInternalError);
735 virtual
void requestDivestitureConfirmation(
736 RTI::ObjectInstanceHandle theObject,
737 RTI::AttributeHandleSet const & releasedAttributes)
738 throw (RTI::ObjectInstanceNotKnown,
739 RTI::AttributeNotRecognized,
740 RTI::AttributeNotOwned,
741 RTI::AttributeDivestitureWasNotRequested,
742 RTI::FederateInternalError);
744 virtual
void attributeOwnershipAcquisitionNotification(
745 RTI::ObjectInstanceHandle theObject,
746 RTI::AttributeHandleSet const & securedAttributes,
747 RTI::VariableLengthData const & aTag)
748 throw (RTI::ObjectInstanceNotKnown,
749 RTI::AttributeNotRecognized,
750 RTI::AttributeAcquisitionWasNotRequested,
751 RTI::AttributeAlreadyOwned,
752 RTI::AttributeNotPublished,
753 RTI::FederateInternalError);
755 virtual
void attributeOwnershipUnavailable(
756 RTI::ObjectInstanceHandle theObject,
757 RTI::AttributeHandleSet const & theAttributes)
758 throw (RTI::ObjectInstanceNotKnown,
759 RTI::AttributeNotRecognized,
760 RTI::AttributeAlreadyOwned,
761 RTI::AttributeAcquisitionWasNotRequested,
762 RTI::FederateInternalError);
764 virtual
void requestAttributeOwnershipRelease(
765 RTI::ObjectInstanceHandle theObject,
766 RTI::AttributeHandleSet const & candidateAttributes,
767 RTI::VariableLengthData const & aTag)
768 throw (RTI::ObjectInstanceNotKnown,
769 RTI::AttributeNotRecognized,
770 RTI::AttributeNotOwned,
771 RTI::FederateInternalError);
773 virtual
void confirmAttributeOwnershipAcquisitionCancellation(
774 RTI::ObjectInstanceHandle theObject,
775 RTI::AttributeHandleSet const & theAttributes)
776 throw (RTI::ObjectInstanceNotKnown,
777 RTI::AttributeNotRecognized,
778 RTI::AttributeAlreadyOwned,
779 RTI::AttributeAcquisitionWasNotCanceled,
780 RTI::FederateInternalError);
782 virtual
void informAttributeOwnership(
783 RTI::ObjectInstanceHandle theObject,
784 RTI::AttributeHandle theAttribute,
785 RTI::FederateHandle theOwner)
786 throw (RTI::ObjectInstanceNotKnown,
787 RTI::AttributeNotRecognized,
788 RTI::FederateInternalError);
790 virtual
void attributeIsNotOwned(
791 RTI::ObjectInstanceHandle theObject,
792 RTI::AttributeHandle theAttribute)
793 throw (RTI::ObjectInstanceNotKnown,
794 RTI::AttributeNotRecognized,
795 RTI::FederateInternalError);
797 virtual
void attributeIsOwnedByRTI(
798 RTI::ObjectInstanceHandle theObject,
799 RTI::AttributeHandle theAttribute)
800 throw (RTI::ObjectInstanceNotKnown,
801 RTI::AttributeNotRecognized,
802 RTI::FederateInternalError);
808 virtual
void timeRegulationEnabled(
809 RTI::LogicalTime const & theFederateTime)
810 throw (RTI::InvalidLogicalTime,
811 RTI::NoRequestToEnableTimeRegulationWasPending,
812 RTI::FederateInternalError);
814 virtual
void timeConstrainedEnabled(
815 RTI::LogicalTime const & theFederateTime)
816 throw (RTI::InvalidLogicalTime,
817 RTI::NoRequestToEnableTimeConstrainedWasPending,
818 RTI::FederateInternalError);
820 virtual
void timeAdvanceGrant( RTI::LogicalTime const & theTime)
821 throw (RTI::InvalidLogicalTime,
822 RTI::JoinedFederateIsNotInTimeAdvancingState,
823 RTI::FederateInternalError);
825 virtual
void requestRetraction(RTI::MessageRetractionHandle theHandle)
826 throw (RTI::FederateInternalError);
830 bool myWaitingForSave;
831 bool myWaitingForRestore;