21 typedef void (*DtFederateSaveCb)(
25 typedef void (*DtFederateRestoreCb)(
29 typedef void (*DtSynchPointCb)(
33 typedef void (*DtAnnounceSynchPointCb)(
35 const RTI::VariableLengthData& tag,
44 class DT_DLL_VL DtVrlFederateAmbassador :
public DtNullFederateAmbassador
46 struct DtScopeChangeCallbackData
48 DtVrlFederateAmbassador* fedAmb;
49 RTI::ObjectInstanceHandle handle;
54 DtVrlFederateAmbassador();
57 virtual ~DtVrlFederateAmbassador()
62 DtVrlFederateAmbassador( const DtVrlFederateAmbassador& src );
65 DtVrlFederateAmbassador& operator=(const DtVrlFederateAmbassador& src );
71 DtHlaObjectManager* hlaObjMgr,
72 DtInteractionManager* interMgr );
76 static DtVrlFederateAmbassador* create();
81 virtual
void addReflectAttributeValuesCb(
82 RTI::ObjectInstanceHandle
id, DtReflectAttributeValuesCb cb,
void* usr );
83 virtual
void removeReflectAttributeValuesCb(
84 RTI::ObjectInstanceHandle
id, DtReflectAttributeValuesCb cb,
void* usr );
88 virtual
void addDiscoverObjectCb( RTI::ObjectClassHandle hand,
89 DtDiscoverObjectCb cb,
void* usr );
90 virtual
void removeDiscoverObjectCb( RTI::ObjectClassHandle hand,
91 DtDiscoverObjectCb cb,
void* usr );
95 virtual
void addRemoveObjectCb( RTI::ObjectInstanceHandle
id,
96 DtRemoveObjectCb cb,
void* usr );
97 virtual
void removeRemoveObjectCb( RTI::ObjectInstanceHandle
id,
98 DtRemoveObjectCb cb,
void* usr );
102 virtual
void addStartRegCb( RTI::ObjectClassHandle hand,
103 DtStartRegCb cb,
void* usr );
104 virtual
void removeStartRegCb( RTI::ObjectClassHandle hand,
105 DtStartRegCb cb,
void* usr );
109 virtual
void addStopRegCb( RTI::ObjectClassHandle hand,
110 DtStopRegCb cb,
void* usr );
111 virtual
void removeStopRegCb( RTI::ObjectClassHandle hand,
112 DtStopRegCb cb,
void* usr );
116 virtual
void addUpdatesOnCb( RTI::ObjectInstanceHandle hand,
117 DtUpdatesOnCb cb,
void* usr );
118 virtual
void removeUpdatesOnCb( RTI::ObjectInstanceHandle hand,
119 DtUpdatesOnCb cb,
void* usr );
123 virtual
void addUpdatesOffCb( RTI::ObjectInstanceHandle hand,
124 DtUpdatesOffCb cb,
void* usr );
125 virtual
void removeUpdatesOffCb( RTI::ObjectInstanceHandle hand,
126 DtUpdatesOffCb cb,
void* usr );
130 virtual
void addStartInteractionsCb( RTI::InteractionClassHandle hand,
131 DtStartStopInterCb cb,
void* usr );
132 virtual
void removeStartInteractionsCb( RTI::InteractionClassHandle hand,
133 DtStartStopInterCb cb,
void* usr );
137 virtual
void addStopInteractionsCb( RTI::InteractionClassHandle hand,
138 DtStartStopInterCb cb,
void* usr );
139 virtual
void removeStopInteractionsCb( RTI::InteractionClassHandle hand,
140 DtStartStopInterCb cb,
void* usr );
144 virtual
void addReceiveInteractionCb( RTI::InteractionClassHandle hand,
145 DtReceiveInteractionCb cb,
void* usr, DtDDMRegionSP region = DtDDMRegionSP());
146 virtual
void removeReceiveInteractionCb( RTI::InteractionClassHandle hand,
147 DtReceiveInteractionCb cb,
void* usr, DtDDMRegionSP region = DtDDMRegionSP() );
151 virtual
void addTimeAdvanceGrantCb( DtFedTimeCb cb,
void* usr );
152 virtual
void removeTimeAdvanceGrantCb( DtFedTimeCb cb,
void* usr );
156 virtual
void addTimeRegulationEnabledCb( DtFedTimeCb cb,
void* usr );
157 virtual
void removeTimeRegulationEnabledCb( DtFedTimeCb cb,
void* usr );
161 virtual
void addTimeConstrainedEnabledCb( DtFedTimeCb cb,
void* usr );
162 virtual
void removeTimeConstrainedEnabledCb( DtFedTimeCb cb,
void* usr );
166 virtual
void addNameReservationSucceeded( DtReserveNameCb cb,
void* usr );
167 virtual
void removeNameReservationSucceeded( DtReserveNameCb cb,
void* usr );
171 virtual
void addNameReservationFailed( DtReserveNameCb cb,
void* usr );
172 virtual
void removeNameReservationFailed( DtReserveNameCb cb,
void* usr );
177 virtual
void addMultipleNameReservationSucceeded( DtReserveMultipleNamesCb cb,
void* usr );
178 virtual
void removeNameReservationSucceeded( DtReserveMultipleNamesCb,
void* usr );
182 virtual
void addMultipleNameReservationFailed( DtReserveMultipleNamesCb cb,
void* usr );
183 virtual
void removeMultipleNameReservationFailed( DtReserveMultipleNamesCb,
void* usr );
186 virtual
void addSynchPointRegSucceededCb(const
DtString& label,
187 DtSynchPointCb func,
void* usr);
188 virtual
void addSynchPointRegSucceededCb(DtSynchPointCb func,
191 virtual
void removeSynchPointRegSucceededCb(const
DtString& label,
192 DtSynchPointCb func,
void* usr);
193 virtual
void removeSynchPointRegSucceededCb(DtSynchPointCb func,
196 virtual
void addSynchPointRegFailedCb(const
DtString& label,
197 DtSynchPointCb func,
void* usr);
198 virtual
void addSynchPointRegFailedCb(DtSynchPointCb func,
201 virtual
void removeSynchPointRegFailedCb(const
DtString& label,
202 DtSynchPointCb func,
void* usr);
203 virtual
void removeSynchPointRegFailedCb(DtSynchPointCb func,
206 virtual
void addFederationSynchedCb(const
DtString& label,
207 DtSynchPointCb func,
void* usr);
208 virtual
void addFederationSynchedCb(DtSynchPointCb func,
211 virtual
void removeFederationSynchedCb(const
DtString& label,
212 DtSynchPointCb func,
void* usr);
213 virtual
void removeFederationSynchedCb(DtSynchPointCb func,
216 virtual
void addAnnounceSynchPointCb(const
DtString& label,
217 DtAnnounceSynchPointCb func,
void* usr);
218 virtual
void addAnnounceSynchPointCb(DtAnnounceSynchPointCb func,
221 virtual
void removeAnnounceSynchPointCb(const
DtString& label,
222 DtAnnounceSynchPointCb func,
void* usr);
223 virtual
void removeAnnounceSynchPointCb(DtAnnounceSynchPointCb func,
226 virtual
void setRemoveObjectOnAttOutOfScope(
bool remove);
227 virtual
bool removeObjectOnAttOutOfScope() const;
229 virtual
void addConnectionLostCb( DtConnectionLostCb func,
void* usr );
230 virtual
void removeConnectionLostCb(DtConnectionLostCb func,
void* usr );
236 virtual
void addFederateSaveCb(const
DtString& label,
237 DtFederateSaveCb func,
void* usr);
238 virtual
void addFederateSaveCb(DtFederateSaveCb func,
241 virtual
void removeFederateSaveCb(const
DtString& label,
242 DtFederateSaveCb func,
void* usr);
243 virtual
void removeFederateSaveCb(DtFederateSaveCb func,
249 virtual
void addFederateRestoreCb(const
DtString& label,
250 DtFederateRestoreCb func,
void* usr);
251 virtual
void addFederateRestoreCb(DtFederateRestoreCb func,
254 virtual
void removeFederateRestoreCb(const
DtString& label,
255 DtFederateRestoreCb func,
void* usr);
256 virtual
void removeFederateRestoreCb(DtFederateRestoreCb func,
259 virtual
bool waitingForSaveOrRestore() const;
262 virtual
DtString getFederateNameFromHandle(const RTI::FederateHandle&) const;
268 struct DtFederateSaveCbInfo
270 DtFederateSaveCb cbFunction;
274 struct DtFederateRestoreCbInfo
276 DtFederateRestoreCb cbFunction;
280 struct DtLabelledFederateSaveCbInfo
283 DtFederateSaveCb cbFunction;
287 struct DtLabelledFederateRestoreCbInfo
290 DtFederateRestoreCb cbFunction;
294 struct DtGeneralSynchPointCbInfo
296 DtSynchPointCb cbFunction;
300 struct DtLabelledSynchPointCbInfo
303 DtSynchPointCb cbFunction;
307 struct DtGeneralAnnounceCbInfo
309 DtAnnounceSynchPointCb cbFunction;
313 struct DtLabelledAnnounceCbInfo
316 DtAnnounceSynchPointCb cbFunction;
320 static void attributesOutOfScopeCb(
void* usr);
322 virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
325 DtInteractionManager* myInteractionManager;
326 DtHlaObjectManager* myHlaObjectManager;
328 DtReflectAttributeValuesCbList myRavCbList;
329 DtUpdatesOnCbList myUpdatesOnCbList;
330 DtUpdatesOffCbList myUpdatesOffCbList;
331 DtStartRegCbList myStartRegCbList;
332 DtStopRegCbList myStopRegCbList;
333 DtStartStopInterCbList myStartIntCbList;
334 DtStartStopInterCbList myStopIntCbList;
335 DtFedTimeCbList myTimeAdvanceGrantCbList;
336 DtFedTimeCbList myFlushQueueGrantCbList;
337 DtFedTimeCbList myRegulationEnabledCbList;
338 DtFedTimeCbList myConstrainedEnabledCbList;
339 DtConnectionLostCbList myConnectionLostCbList;
340 DtReserveNameCbList myNameReservationSucceededCbList;
341 DtReserveNameCbList myNameReservationFailedCbList;
343 DtReserveMultipleNamesCbList myMultipleNamesReservationSucceededCbList;
344 DtReserveMultipleNamesCbList myMultipleNamesReservationFailedCbList;
347 std::list<DtFederateSaveCbInfo> myFederateSaveCbList;
348 std::list<DtLabelledFederateSaveCbInfo> myLabFederateSaveCbList;
349 std::list<DtFederateRestoreCbInfo> myFederateRestoreCbList;
350 std::list<DtLabelledFederateRestoreCbInfo> myLabFederateRestoreCbList;
352 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
353 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
354 std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
355 std::list<DtLabelledAnnounceCbInfo> myLabAnnounceSynchPointCbList;
357 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
358 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
359 std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
360 std::list<DtGeneralAnnounceCbInfo> myAnnounceSynchPointCbList;
362 bool myRemoveObjectOnAttOutOfScope;
365 virtual void applyFedsSynchedCallbacks(
const DtString& label);
366 virtual void applyRegistrationSucceededCallbacks(
const DtString& label);
367 virtual void applyRegistrationFailedCallbacks(
const DtString& label);
370 virtual bool applyAnnounceCallbacks(
const DtString& label,
const RTI::VariableLengthData& tag);
382 virtual void connectionLost(
383 std::wstring
const& faultDescription)
override;
388 virtual void reportFederationExecutions(
389 FederationExecutionInformationVector
const& report)
override;
394 virtual void reportFederationExecutionMembers(
395 std::wstring
const& federationName,
396 FederationExecutionMemberInformationVector
const& report)
override;
401 virtual void reportFederationExecutionDoesNotExist(
402 std::wstring
const& federationName)
override;
407 virtual void federateResigned(
408 std::wstring
const& reasonForResignDescription)
override;
413 virtual void synchronizationPointRegistrationSucceeded(
414 std::wstring
const& synchronizationPointLabel)
override;
419 virtual void synchronizationPointRegistrationFailed(
420 std::wstring
const& synchronizationPointLabel,
421 SynchronizationPointFailureReason reason)
override;
426 virtual void announceSynchronizationPoint(
427 std::wstring
const& synchronizationPointLabel,
428 VariableLengthData
const& userSuppliedTag)
override;
433 virtual void federationSynchronized(
434 std::wstring
const& synchronizationPointLabel,
435 FederateHandleSet
const& failedToSyncSet)
override;
440 virtual void initiateFederateSave(
441 std::wstring
const& label)
override;
446 virtual void initiateFederateSave(
447 std::wstring
const& label,
448 LogicalTime
const& time)
override;
453 virtual void federationSaved()
override;
458 virtual void federationNotSaved(
459 SaveFailureReason reason)
override;
464 virtual void federationSaveStatusResponse(
465 FederateHandleSaveStatusPairVector
const& response)
override;
470 virtual void requestFederationRestoreSucceeded(
471 std::wstring
const& label)
override;
476 virtual void requestFederationRestoreFailed(
477 std::wstring
const& label)
override;
482 virtual void federationRestoreBegun()
override;
487 virtual void initiateFederateRestore(
488 std::wstring
const& label,
489 std::wstring
const& federateName,
490 FederateHandle
const& postRestoreFederateHandle)
override;
495 virtual void federationRestored()
override;
500 virtual void federationNotRestored(
501 RestoreFailureReason reason)
override;
506 virtual void federationRestoreStatusResponse(
507 FederateRestoreStatusVector
const& response)
override;
516 virtual void startRegistrationForObjectClass(
517 ObjectClassHandle
const& objectClass)
override;
522 virtual void stopRegistrationForObjectClass(
523 ObjectClassHandle
const& objectClass)
override;
528 virtual void turnInteractionsOn(
529 InteractionClassHandle
const& interactionClass)
override;
534 virtual void turnInteractionsOff(
535 InteractionClassHandle
const& interactionClass)
override;
544 virtual void objectInstanceNameReservationSucceeded(
545 std::wstring
const& objectInstanceName)
override;
550 virtual void objectInstanceNameReservationFailed(
551 std::wstring
const& objectInstanceName)
override;
556 virtual void multipleObjectInstanceNameReservationSucceeded(
557 std::set<std::wstring>
const& objectInstanceNames)
override;
562 virtual void multipleObjectInstanceNameReservationFailed(
563 std::set<std::wstring>
const& objectInstanceNames)
override;
569 virtual void discoverObjectInstance(
570 ObjectInstanceHandle
const& objectInstance,
571 ObjectClassHandle
const& objectClass,
572 std::wstring
const& objectInstanceName,
573 FederateHandle
const& producingFederate)
override;
578 virtual void reflectAttributeValues(
579 ObjectInstanceHandle
const& objectInstance,
580 AttributeHandleValueMap
const& attributeValues,
581 VariableLengthData
const& userSuppliedTag,
582 TransportationTypeHandle
const& transportationType,
583 FederateHandle
const& producingFederate,
584 RegionHandleSet
const* optionalSentRegions)
override;
589 virtual void reflectAttributeValues(
590 ObjectInstanceHandle
const& objectInstance,
591 AttributeHandleValueMap
const& attributeValues,
592 VariableLengthData
const& userSuppliedTag,
593 TransportationTypeHandle
const& transportationType,
594 FederateHandle
const& producingFederate,
595 RegionHandleSet
const* optionalSentRegions,
596 LogicalTime
const& time,
597 OrderType sentOrderType,
598 OrderType receivedOrderType,
599 MessageRetractionHandle
const* optionalRetraction)
override;
604 virtual void receiveInteraction(
605 InteractionClassHandle
const& interactionClass,
606 ParameterHandleValueMap
const& parameterValues,
607 VariableLengthData
const& userSuppliedTag,
608 TransportationTypeHandle
const& transportationType,
609 FederateHandle
const& producingFederate,
610 const RegionHandleSet* optionalSentRegions)
override;
615 virtual void receiveInteraction(
616 InteractionClassHandle
const& interactionClass,
617 ParameterHandleValueMap
const& parameterValues,
618 VariableLengthData
const& userSuppliedTag,
619 TransportationTypeHandle
const& transportationType,
620 FederateHandle
const& producingFederate,
621 RegionHandleSet
const* optionalSentRegions,
622 LogicalTime
const& time,
623 OrderType sentOrderType,
624 OrderType receivedOrderType,
625 MessageRetractionHandle
const* optionalRetraction)
override;
630 virtual void receiveDirectedInteraction(
631 InteractionClassHandle
const& interactionClass,
632 ObjectInstanceHandle
const& objectInstance,
633 ParameterHandleValueMap
const& parameterValues,
634 VariableLengthData
const& userSuppliedTag,
635 TransportationTypeHandle
const& transportationType,
636 FederateHandle
const& producingFederate)
override;
641 virtual void receiveDirectedInteraction(
642 InteractionClassHandle
const& interactionClass,
643 ObjectInstanceHandle
const& objectInstance,
644 ParameterHandleValueMap
const& parameterValues,
645 VariableLengthData
const& userSuppliedTag,
646 TransportationTypeHandle
const& transportationType,
647 FederateHandle
const& producingFederate,
648 LogicalTime
const& time,
649 OrderType sentOrderType,
650 OrderType receivedOrderType,
651 MessageRetractionHandle
const* optionalRetraction)
override;
656 virtual void removeObjectInstance(
657 ObjectInstanceHandle
const& objectInstance,
658 VariableLengthData
const& userSuppliedTag,
659 FederateHandle
const& producingFederate)
override;
664 virtual void removeObjectInstance(
665 ObjectInstanceHandle
const& objectInstance,
666 VariableLengthData
const& userSuppliedTag,
667 FederateHandle
const& producingFederate,
668 LogicalTime
const& time,
669 OrderType sentOrderType,
670 OrderType receivedOrderType,
671 MessageRetractionHandle
const* optionalRetraction)
override;
676 virtual void attributesInScope(
677 ObjectInstanceHandle
const& objectInstance,
678 AttributeHandleSet
const& attributes)
override;
683 virtual void attributesOutOfScope(
684 ObjectInstanceHandle
const& objectInstance,
685 AttributeHandleSet
const& attributes)
override;
690 virtual void provideAttributeValueUpdate(
691 ObjectInstanceHandle
const& objectInstance,
692 AttributeHandleSet
const& attributes,
693 VariableLengthData
const& userSuppliedTag)
override;
698 virtual void turnUpdatesOnForObjectInstance(
699 ObjectInstanceHandle
const& objectInstance,
700 AttributeHandleSet
const& attributes)
override;
705 virtual void turnUpdatesOnForObjectInstance(
706 ObjectInstanceHandle
const& objectInstance,
707 AttributeHandleSet
const& attributes,
708 std::wstring
const& updateRateDesignator)
override;
713 virtual void turnUpdatesOffForObjectInstance(
714 ObjectInstanceHandle
const& objectInstance,
715 AttributeHandleSet
const& attributes)
override;
720 virtual void confirmAttributeTransportationTypeChange(
721 ObjectInstanceHandle
const& objectInstance,
722 AttributeHandleSet
const& attributes,
723 TransportationTypeHandle
const& transportationType)
override;
728 virtual void reportAttributeTransportationType(
729 ObjectInstanceHandle
const& objectInstance,
730 AttributeHandle
const& attribute,
731 TransportationTypeHandle
const& transportationType)
override;
736 virtual void confirmInteractionTransportationTypeChange(
737 InteractionClassHandle
const& interactionClass,
738 TransportationTypeHandle
const& transportationType)
override;
743 virtual void reportInteractionTransportationType(
744 FederateHandle
const& federate,
745 InteractionClassHandle
const& interactionClass,
746 TransportationTypeHandle
const& transportationType)
override;
756 virtual void requestAttributeOwnershipAssumption(
757 ObjectInstanceHandle
const& objectInstance,
758 AttributeHandleSet
const& offeredAttributes,
759 VariableLengthData
const& userSuppliedTag)
override;
764 virtual void requestDivestitureConfirmation(
765 ObjectInstanceHandle
const& objectInstance,
766 AttributeHandleSet
const& releasedAttributes,
767 VariableLengthData
const& userSuppliedTag)
override;
772 virtual void attributeOwnershipAcquisitionNotification(
773 ObjectInstanceHandle
const& objectInstance,
774 AttributeHandleSet
const& securedAttributes,
775 VariableLengthData
const& userSuppliedTag)
override;
780 virtual void attributeOwnershipUnavailable(
781 ObjectInstanceHandle
const& objectInstance,
782 AttributeHandleSet
const& attributes,
783 VariableLengthData
const& userSuppliedTag)
override;
788 virtual void requestAttributeOwnershipRelease(
789 ObjectInstanceHandle
const& objectInstance,
790 AttributeHandleSet
const& candidateAttributes,
791 VariableLengthData
const& userSuppliedTag)
override;
796 virtual void confirmAttributeOwnershipAcquisitionCancellation(
797 ObjectInstanceHandle
const& objectInstance,
798 AttributeHandleSet
const& attributes)
override;
803 virtual void informAttributeOwnership(
804 ObjectInstanceHandle
const& objectInstance,
805 AttributeHandleSet
const& attributes,
806 FederateHandle
const& owner)
override;
811 virtual void attributeIsNotOwned(
812 ObjectInstanceHandle
const& objectInstance,
813 AttributeHandleSet
const& attributes)
override;
818 virtual void attributeIsOwnedByRTI(
819 ObjectInstanceHandle
const& objectInstance,
820 AttributeHandleSet
const& attributes)
override;
829 virtual void timeRegulationEnabled(
830 LogicalTime
const & time)
override;
835 virtual void timeConstrainedEnabled(
836 LogicalTime
const & time)
override;
841 virtual void flushQueueGrant(
842 LogicalTime
const & time, LogicalTime
const & optimisticTime)
override;
847 virtual void timeAdvanceGrant(
848 LogicalTime
const & time)
override;
853 virtual void requestRetraction(
854 MessageRetractionHandle
const & retraction)
override;
858 bool myWaitingForSave;
859 bool myWaitingForRestore;
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Instances of DtString are used to represent strings.
Definition: vlString.h:36
This file is used as a convenience to group RTI related callbacks together.