14 #if 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 );
179 virtual
void addMultipleNameReservationSucceeded( DtReserveMultipleNamesCb cb,
void* usr );
180 virtual
void removeNameReservationSucceeded( DtReserveMultipleNamesCb,
void* usr );
184 virtual
void addMultipleNameReservationFailed( DtReserveMultipleNamesCb cb,
void* usr );
185 virtual
void removeMultipleNameReservationFailed( DtReserveMultipleNamesCb,
void* usr );
188 virtual
void addSynchPointRegSucceededCb(const
DtString& label,
193 virtual
void removeSynchPointRegSucceededCb(const
DtString& label,
198 virtual
void addSynchPointRegFailedCb(const
DtString& label,
203 virtual
void removeSynchPointRegFailedCb(const
DtString& label,
208 virtual
void addFederationSynchedCb(const
DtString& label,
213 virtual
void removeFederationSynchedCb(const
DtString& label,
218 virtual
void addAnnounceSynchPointCb(const
DtString& label,
223 virtual
void removeAnnounceSynchPointCb(const
DtString& label,
228 virtual
void setRemoveObjectOnAttOutOfScope(
bool remove);
229 virtual
bool removeObjectOnAttOutOfScope() const;
231 virtual
void addConnectionLostCb( DtConnectionLostCb func,
void* usr );
232 virtual
void removeConnectionLostCb(DtConnectionLostCb func,
void* usr );
238 virtual
void addFederateSaveCb(const
DtString& label,
243 virtual
void removeFederateSaveCb(const
DtString& label,
251 virtual
void addFederateRestoreCb(const
DtString& label,
256 virtual
void removeFederateRestoreCb(const
DtString& label,
261 virtual
bool waitingForSaveOrRestore() const;
263 #if DtHLA_1516_EVOLVED
265 virtual DtString getFederateNameFromHandle(
const RTI::FederateHandle&)
const;
272 struct DtFederateSaveCbInfo
278 struct DtFederateRestoreCbInfo
284 struct DtLabelledFederateSaveCbInfo
291 struct DtLabelledFederateRestoreCbInfo
298 struct DtGeneralSynchPointCbInfo
304 struct DtLabelledSynchPointCbInfo
311 struct DtGeneralAnnounceCbInfo
317 struct DtLabelledAnnounceCbInfo
324 static void attributesOutOfScopeCb(
void* usr);
326 virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
342 DtConnectionLostCbList myConnectionLostCbList;
343 DtReserveNameCbList myNameReservationSucceededCbList;
344 DtReserveNameCbList myNameReservationFailedCbList;
346 DtReserveMultipleNamesCbList myMultipleNamesReservationSucceededCbList;
347 DtReserveMultipleNamesCbList myMultipleNamesReservationFailedCbList;
350 std::list<DtFederateSaveCbInfo> myFederateSaveCbList;
351 std::list<DtLabelledFederateSaveCbInfo> myLabFederateSaveCbList;
352 std::list<DtFederateRestoreCbInfo> myFederateRestoreCbList;
353 std::list<DtLabelledFederateRestoreCbInfo> myLabFederateRestoreCbList;
355 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
356 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
357 std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
358 std::list<DtLabelledAnnounceCbInfo> myLabAnnounceSynchPointCbList;
360 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
361 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
362 std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
363 std::list<DtGeneralAnnounceCbInfo> myAnnounceSynchPointCbList;
365 bool myRemoveObjectOnAttOutOfScope;
368 virtual void applyFedsSynchedCallbacks(
const DtString& label);
369 virtual void applyRegistrationSucceededCallbacks(
const DtString& label);
370 virtual void applyRegistrationFailedCallbacks(
const DtString& label);
373 virtual bool applyAnnounceCallbacks(
const DtString& label,
const RTI::VariableLengthData& tag);
379 virtual void connectionLost (
380 std::wstring
const & faultDescription)
382 RTI::FederateInternalError);
385 virtual void reportFederationExecutions (
386 RTI::FederationExecutionInformationVector
const &
387 theFederationExecutionInformationList)
389 RTI::FederateInternalError);
393 std::wstring
const & label)
395 RTI::FederateInternalError);
398 std::wstring
const & label,
399 RTI::SynchronizationPointFailureReason reason)
401 RTI::FederateInternalError);
405 std::wstring
const & label,
406 RTI::VariableLengthData
const & theUserSuppliedTag)
408 RTI::FederateInternalError);
412 std::wstring
const & label,
413 RTI::FederateHandleSet
const& failedToSyncSet)
415 RTI::FederateInternalError);
419 std::wstring
const & label)
421 RTI::FederateInternalError);
424 std::wstring
const & label,
427 RTI::FederateInternalError);
432 RTI::FederateInternalError);
434 virtual
void federationNotSaved (
435 RTI::SaveFailureReason theSaveFailureReason)
437 RTI::FederateInternalError);
441 virtual
void federationSaveStatusResponse (
442 RTI::FederateHandleSaveStatusPairVector const &
443 theFederateStatusVector)
445 RTI::FederateInternalError);
448 virtual
void requestFederateRestoreSucceeded (
449 std::wstring const & label)
451 RTI::FederateInternalError);
453 virtual
void requestFederateRestoreFailed (
454 std::wstring const & label)
456 RTI::FederateInternalError);
459 virtual
void federationRestoreBegun ()
461 RTI::FederateInternalError);
464 virtual
void initiateFederateRestore (
465 std::wstring const & label,
466 std::wstring const & federateName,
467 RTI::FederateHandle handle)
469 RTI::FederateInternalError);
472 virtual
void federationRestored ()
474 RTI::FederateInternalError);
476 virtual
void federationNotRestored (
477 RTI::RestoreFailureReason theRestoreFailureReason)
479 RTI::FederateInternalError);
482 virtual
void federationRestoreStatusResponse (
483 RTI::FederateRestoreStatusVector const &
484 theFederateRestoreStatusVector)
486 RTI::FederateInternalError);
493 virtual
void startRegistrationForObjectClass (
494 RTI::ObjectClassHandle theClass)
496 RTI::FederateInternalError);
499 virtual
void stopRegistrationForObjectClass (
500 RTI::ObjectClassHandle theClass)
502 RTI::FederateInternalError);
505 virtual
void turnInteractionsOn (
506 RTI::InteractionClassHandle theHandle)
508 RTI::FederateInternalError);
511 virtual
void turnInteractionsOff (
512 RTI::InteractionClassHandle theHandle)
514 RTI::FederateInternalError);
521 virtual
void objectInstanceNameReservationSucceeded (
522 std::wstring const & theObjectInstanceName)
524 RTI::FederateInternalError);
526 virtual
void objectInstanceNameReservationFailed (
527 std::wstring const & theObjectInstanceName)
529 RTI::FederateInternalError);
532 virtual
void multipleObjectInstanceNameReservationSucceeded (
533 std::set<std::wstring> const & theObjectInstanceNames)
535 RTI::FederateInternalError);
537 virtual
void multipleObjectInstanceNameReservationFailed (
538 std::set<std::wstring> const & theObjectInstanceNames)
540 RTI::FederateInternalError);
544 virtual
void discoverObjectInstance (
545 RTI::ObjectInstanceHandle theObject,
546 RTI::ObjectClassHandle theObjectClass,
547 std::wstring const & theObjectInstanceName)
549 RTI::FederateInternalError);
551 virtual
void discoverObjectInstance (
552 RTI::ObjectInstanceHandle theObject,
553 RTI::ObjectClassHandle theObjectClass,
554 std::wstring const & theObjectInstanceName,
555 RTI::FederateHandle producingFederate)
557 RTI::FederateInternalError);
560 virtual
void reflectAttributeValues (
561 RTI::ObjectInstanceHandle theObject,
562 RTI::AttributeHandleValueMap const & theAttributeValues,
563 RTI::VariableLengthData const & theUserSuppliedTag,
564 RTI::OrderType sentOrder,
565 RTI::TransportationType theType,
566 RTI::SupplementalReflectInfo theReflectInfo)
568 RTI::FederateInternalError);
570 virtual
void reflectAttributeValues (
571 RTI::ObjectInstanceHandle theObject,
572 RTI::AttributeHandleValueMap const & theAttributeValues,
573 RTI::VariableLengthData const & theUserSuppliedTag,
574 RTI::OrderType sentOrder,
575 RTI::TransportationType theType,
577 RTI::OrderType receivedOrder,
578 RTI::SupplementalReflectInfo theReflectInfo)
580 RTI::FederateInternalError);
582 virtual
void reflectAttributeValues (
583 RTI::ObjectInstanceHandle theObject,
584 RTI::AttributeHandleValueMap const & theAttributeValues,
585 RTI::VariableLengthData const & theUserSuppliedTag,
586 RTI::OrderType sentOrder,
587 RTI::TransportationType theType,
589 RTI::OrderType receivedOrder,
590 RTI::MessageRetractionHandle theHandle,
591 RTI::SupplementalReflectInfo theReflectInfo)
593 RTI::FederateInternalError);
596 virtual
void receiveInteraction (
597 RTI::InteractionClassHandle theInteraction,
598 RTI::ParameterHandleValueMap const & theParameterValues,
599 RTI::VariableLengthData const & theUserSuppliedTag,
600 RTI::OrderType sentOrder,
601 RTI::TransportationType theType,
602 RTI::SupplementalReceiveInfo theReceiveInfo)
604 RTI::FederateInternalError);
606 virtual
void receiveInteraction (
607 RTI::InteractionClassHandle theInteraction,
608 RTI::ParameterHandleValueMap const & theParameterValues,
609 RTI::VariableLengthData const & theUserSuppliedTag,
610 RTI::OrderType sentOrder,
611 RTI::TransportationType theType,
613 RTI::OrderType receivedOrder,
614 RTI::SupplementalReceiveInfo theReceiveInfo)
616 RTI::FederateInternalError);
618 virtual
void receiveInteraction (
619 RTI::InteractionClassHandle theInteraction,
620 RTI::ParameterHandleValueMap const & theParameterValues,
621 RTI::VariableLengthData const & theUserSuppliedTag,
622 RTI::OrderType sentOrder,
623 RTI::TransportationType theType,
625 RTI::OrderType receivedOrder,
626 RTI::MessageRetractionHandle theHandle,
627 RTI::SupplementalReceiveInfo theReceiveInfo)
629 RTI::FederateInternalError);
632 virtual
void removeObjectInstance (
633 RTI::ObjectInstanceHandle theObject,
634 RTI::VariableLengthData const & theUserSuppliedTag,
635 RTI::OrderType sentOrder,
636 RTI::SupplementalRemoveInfo theRemoveInfo)
638 RTI::FederateInternalError);
640 virtual
void removeObjectInstance (
641 RTI::ObjectInstanceHandle theObject,
642 RTI::VariableLengthData const & theUserSuppliedTag,
643 RTI::OrderType sentOrder,
645 RTI::OrderType receivedOrder,
646 RTI::SupplementalRemoveInfo theRemoveInfo)
648 RTI::FederateInternalError);
650 virtual
void removeObjectInstance (
651 RTI::ObjectInstanceHandle theObject,
652 RTI::VariableLengthData const & theUserSuppliedTag,
653 RTI::OrderType sentOrder,
655 RTI::OrderType receivedOrder,
656 RTI::MessageRetractionHandle theHandle,
657 RTI::SupplementalRemoveInfo theRemoveInfo)
659 RTI::FederateInternalError);
662 virtual
void attributesInScope (
663 RTI::ObjectInstanceHandle theObject,
664 RTI::AttributeHandleSet const & theAttributes)
666 RTI::FederateInternalError);
669 virtual
void attributesOutOfScope (
670 RTI::ObjectInstanceHandle theObject,
671 RTI::AttributeHandleSet const & theAttributes)
673 RTI::FederateInternalError);
676 virtual
void provideAttributeValueUpdate (
677 RTI::ObjectInstanceHandle theObject,
678 RTI::AttributeHandleSet const & theAttributes,
679 RTI::VariableLengthData const & theUserSuppliedTag)
681 RTI::FederateInternalError);
684 virtual
void turnUpdatesOnForObjectInstance (
685 RTI::ObjectInstanceHandle theObject,
686 RTI::AttributeHandleSet const & theAttributes)
688 RTI::FederateInternalError);
690 virtual
void turnUpdatesOnForObjectInstance (
691 RTI::ObjectInstanceHandle theObject,
692 RTI::AttributeHandleSet const & theAttributes,
693 std::wstring const & updateRateDesignator)
695 RTI::FederateInternalError);
698 virtual
void turnUpdatesOffForObjectInstance (
699 RTI::ObjectInstanceHandle theObject,
700 RTI::AttributeHandleSet const & theAttributes)
702 RTI::FederateInternalError);
705 virtual
void confirmAttributeTransportationTypeChange (
706 RTI::ObjectInstanceHandle theObject,
707 RTI::AttributeHandleSet theAttributes,
708 RTI::TransportationType theTransportation)
710 RTI::FederateInternalError);
713 virtual
void reportAttributeTransportationType (
714 RTI::ObjectInstanceHandle theObject,
715 RTI::AttributeHandle theAttribute,
716 RTI::TransportationType theTransportation)
718 RTI::FederateInternalError);
721 virtual
void confirmInteractionTransportationTypeChange (
722 RTI::InteractionClassHandle theInteraction,
723 RTI::TransportationType theTransportation)
725 RTI::FederateInternalError);
728 virtual
void reportInteractionTransportationType (
729 RTI::FederateHandle federateHandle,
730 RTI::InteractionClassHandle theInteraction,
731 RTI::TransportationType theTransportation)
733 RTI::FederateInternalError);
741 virtual
void requestAttributeOwnershipAssumption (
742 RTI::ObjectInstanceHandle theObject,
743 RTI::AttributeHandleSet const & offeredAttributes,
744 RTI::VariableLengthData const & theUserSuppliedTag)
746 RTI::FederateInternalError);
749 virtual
void requestDivestitureConfirmation (
750 RTI::ObjectInstanceHandle theObject,
751 RTI::AttributeHandleSet const & releasedAttributes)
753 RTI::FederateInternalError);
756 virtual
void attributeOwnershipAcquisitionNotification (
757 RTI::ObjectInstanceHandle theObject,
758 RTI::AttributeHandleSet const & securedAttributes,
759 RTI::VariableLengthData const & theUserSuppliedTag)
761 RTI::FederateInternalError);
764 virtual
void attributeOwnershipUnavailable (
765 RTI::ObjectInstanceHandle theObject,
766 RTI::AttributeHandleSet const & theAttributes)
768 RTI::FederateInternalError);
771 virtual
void requestAttributeOwnershipRelease (
772 RTI::ObjectInstanceHandle theObject,
773 RTI::AttributeHandleSet const & candidateAttributes,
774 RTI::VariableLengthData const & theUserSuppliedTag)
776 RTI::FederateInternalError);
779 virtual
void confirmAttributeOwnershipAcquisitionCancellation (
780 RTI::ObjectInstanceHandle theObject,
781 RTI::AttributeHandleSet const & theAttributes)
783 RTI::FederateInternalError);
786 virtual
void informAttributeOwnership (
787 RTI::ObjectInstanceHandle theObject,
788 RTI::AttributeHandle theAttribute,
789 RTI::FederateHandle theOwner)
791 RTI::FederateInternalError);
793 virtual
void attributeIsNotOwned (
794 RTI::ObjectInstanceHandle theObject,
795 RTI::AttributeHandle theAttribute)
797 RTI::FederateInternalError);
799 virtual
void attributeIsOwnedByRTI (
800 RTI::ObjectInstanceHandle theObject,
801 RTI::AttributeHandle theAttribute)
803 RTI::FederateInternalError);
810 virtual
void timeRegulationEnabled (
813 RTI::FederateInternalError);
816 virtual
void timeConstrainedEnabled (
819 RTI::FederateInternalError);
822 virtual
void timeAdvanceGrant (
825 RTI::FederateInternalError);
828 virtual
void requestRetraction (
829 RTI::MessageRetractionHandle theHandle)
831 RTI::FederateInternalError);
835 bool myWaitingForSave;
836 bool myWaitingForRestore;