VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrlFederateAmbassador1516e.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 
7 #pragma once
8 
12 
13 #if DtHLA_1516_EVOLVED && !DtHLA_4
14 
15 
16 #include "callbacks.h"
17 
18 #include "rtiNamespace.h"
20 #include <list>
21 
22 typedef void (*DtFederateSaveCb)(
23  const char* label,
24  void* usr);
25 
26 typedef void (*DtFederateRestoreCb)(
27  const char* label,
28  void* usr);
29 
30 typedef void (*DtSynchPointCb)(
31  const char* label,
32  void* usr);
33 
34 typedef void (*DtAnnounceSynchPointCb)(
35  const char* label,
36  const RTI::VariableLengthData& tag,
37  void* usr);
38 
41 
46 {
47  struct DtScopeChangeCallbackData
48  {
50  RTI::ObjectInstanceHandle handle;
51  };
52 
53 public:
56  throw (RTI::FederateInternalError);
58  virtual ~DtVrlFederateAmbassador()
59  throw( );
60 
61 protected:
64 
66  DtVrlFederateAmbassador& operator=(const DtVrlFederateAmbassador& src );
67 
68 public:
71  virtual void init( DtExerciseConn* exConn,
72  DtHlaObjectManager* hlaObjMgr,
73  DtInteractionManager* interMgr );
74 
75 public:
77  static DtVrlFederateAmbassador* create();
78 
79 public:
82  virtual void addReflectAttributeValuesCb(
83  RTI::ObjectInstanceHandle id, DtReflectAttributeValuesCb cb, void* usr );
84  virtual void removeReflectAttributeValuesCb(
85  RTI::ObjectInstanceHandle id, DtReflectAttributeValuesCb cb, void* usr );
86 
89  virtual void addDiscoverObjectCb( RTI::ObjectClassHandle hand,
90  DtDiscoverObjectCb cb, void* usr );
91  virtual void removeDiscoverObjectCb( RTI::ObjectClassHandle hand,
92  DtDiscoverObjectCb cb, void* usr );
93 
96  virtual void addRemoveObjectCb( RTI::ObjectInstanceHandle id,
97  DtRemoveObjectCb cb, void* usr );
98  virtual void removeRemoveObjectCb( RTI::ObjectInstanceHandle id,
99  DtRemoveObjectCb cb, void* usr );
100 
103  virtual void addStartRegCb( RTI::ObjectClassHandle hand,
104  DtStartRegCb cb, void* usr );
105  virtual void removeStartRegCb( RTI::ObjectClassHandle hand,
106  DtStartRegCb cb, void* usr );
107 
110  virtual void addStopRegCb( RTI::ObjectClassHandle hand,
111  DtStopRegCb cb, void* usr );
112  virtual void removeStopRegCb( RTI::ObjectClassHandle hand,
113  DtStopRegCb cb, void* usr );
114 
117  virtual void addUpdatesOnCb( RTI::ObjectInstanceHandle hand,
118  DtUpdatesOnCb cb, void* usr );
119  virtual void removeUpdatesOnCb( RTI::ObjectInstanceHandle hand,
120  DtUpdatesOnCb cb, void* usr );
121 
124  virtual void addUpdatesOffCb( RTI::ObjectInstanceHandle hand,
125  DtUpdatesOffCb cb, void* usr );
126  virtual void removeUpdatesOffCb( RTI::ObjectInstanceHandle hand,
127  DtUpdatesOffCb cb, void* usr );
128 
131  virtual void addStartInteractionsCb( RTI::InteractionClassHandle hand,
132  DtStartStopInterCb cb, void* usr );
133  virtual void removeStartInteractionsCb( RTI::InteractionClassHandle hand,
134  DtStartStopInterCb cb, void* usr );
135 
138  virtual void addStopInteractionsCb( RTI::InteractionClassHandle hand,
139  DtStartStopInterCb cb, void* usr );
140  virtual void removeStopInteractionsCb( RTI::InteractionClassHandle hand,
141  DtStartStopInterCb cb, void* usr );
142 
145  virtual void addReceiveInteractionCb( RTI::InteractionClassHandle hand,
146  DtReceiveInteractionCb cb, void* usr, DtDDMRegionSP region = DtDDMRegionSP());
147  virtual void removeReceiveInteractionCb( RTI::InteractionClassHandle hand,
148  DtReceiveInteractionCb cb, void* usr, DtDDMRegionSP region = DtDDMRegionSP() );
149 
152  virtual void addTimeAdvanceGrantCb( DtFedTimeCb cb, void* usr );
153  virtual void removeTimeAdvanceGrantCb( DtFedTimeCb cb, void* usr );
154 
157  virtual void addTimeRegulationEnabledCb( DtFedTimeCb cb, void* usr );
158  virtual void removeTimeRegulationEnabledCb( DtFedTimeCb cb, void* usr );
159 
162  virtual void addTimeConstrainedEnabledCb( DtFedTimeCb cb, void* usr );
163  virtual void removeTimeConstrainedEnabledCb( DtFedTimeCb cb, void* usr );
164 
167  virtual void addNameReservationSucceeded( DtReserveNameCb cb, void* usr );
168  virtual void removeNameReservationSucceeded( DtReserveNameCb cb, void* usr );
169 
172  virtual void addNameReservationFailed( DtReserveNameCb cb, void* usr );
173  virtual void removeNameReservationFailed( DtReserveNameCb cb, void* usr );
174 
175 
178  virtual void addMultipleNameReservationSucceeded( DtReserveMultipleNamesCb cb, void* usr );
179  virtual void removeNameReservationSucceeded( DtReserveMultipleNamesCb, void* usr );
180 
183  virtual void addMultipleNameReservationFailed( DtReserveMultipleNamesCb cb, void* usr );
184  virtual void removeMultipleNameReservationFailed( DtReserveMultipleNamesCb, void* usr );
185 
187  virtual void addSynchPointRegSucceededCb(const DtString& label,
188  DtSynchPointCb func, void* usr);
189  virtual void addSynchPointRegSucceededCb(DtSynchPointCb func,
190  void* usr);
191 
192  virtual void removeSynchPointRegSucceededCb(const DtString& label,
193  DtSynchPointCb func, void* usr);
194  virtual void removeSynchPointRegSucceededCb(DtSynchPointCb func,
195  void* usr);
196 
197  virtual void addSynchPointRegFailedCb(const DtString& label,
198  DtSynchPointCb func, void* usr);
199  virtual void addSynchPointRegFailedCb(DtSynchPointCb func,
200  void* usr);
201 
202  virtual void removeSynchPointRegFailedCb(const DtString& label,
203  DtSynchPointCb func, void* usr);
204  virtual void removeSynchPointRegFailedCb(DtSynchPointCb func,
205  void* usr);
206 
207  virtual void addFederationSynchedCb(const DtString& label,
208  DtSynchPointCb func, void* usr);
209  virtual void addFederationSynchedCb(DtSynchPointCb func,
210  void* usr);
211 
212  virtual void removeFederationSynchedCb(const DtString& label,
213  DtSynchPointCb func, void* usr);
214  virtual void removeFederationSynchedCb(DtSynchPointCb func,
215  void* usr);
216 
217  virtual void addAnnounceSynchPointCb(const DtString& label,
218  DtAnnounceSynchPointCb func, void* usr);
219  virtual void addAnnounceSynchPointCb(DtAnnounceSynchPointCb func,
220  void* usr);
221 
222  virtual void removeAnnounceSynchPointCb(const DtString& label,
223  DtAnnounceSynchPointCb func, void* usr);
224  virtual void removeAnnounceSynchPointCb(DtAnnounceSynchPointCb func,
225  void* usr);
226 
227  virtual void setRemoveObjectOnAttOutOfScope(bool remove);
228  virtual bool removeObjectOnAttOutOfScope() const;
229 
230  virtual void addConnectionLostCb( DtConnectionLostCb func, void* usr );
231  virtual void removeConnectionLostCb(DtConnectionLostCb func, void* usr );
232 
233 
234 
236 
237  virtual void addFederateSaveCb(const DtString& label,
238  DtFederateSaveCb func, void* usr);
239  virtual void addFederateSaveCb(DtFederateSaveCb func,
240  void* usr);
241 
242  virtual void removeFederateSaveCb(const DtString& label,
243  DtFederateSaveCb func, void* usr);
244  virtual void removeFederateSaveCb(DtFederateSaveCb func,
245  void* usr);
247 
249 
250  virtual void addFederateRestoreCb(const DtString& label,
251  DtFederateRestoreCb func, void* usr);
252  virtual void addFederateRestoreCb(DtFederateRestoreCb func,
253  void* usr);
254 
255  virtual void removeFederateRestoreCb(const DtString& label,
256  DtFederateRestoreCb func, void* usr);
257  virtual void removeFederateRestoreCb(DtFederateRestoreCb func,
258  void* usr);
260  virtual bool waitingForSaveOrRestore() const;
261 
262 #if DtHLA_1516_EVOLVED
263  virtual DtString getFederateNameFromHandle(const RTI::FederateHandle&) const;
265 #endif
266 
267 
268 
269 protected:
271  struct DtFederateSaveCbInfo
272  {
273  DtFederateSaveCb cbFunction;
274  void* userData;
275  };
276 
277  struct DtFederateRestoreCbInfo
278  {
279  DtFederateRestoreCb cbFunction;
280  void* userData;
281  };
282 
283  struct DtLabelledFederateSaveCbInfo
284  {
285  DtString label;
286  DtFederateSaveCb cbFunction;
287  void* userData;
288  };
289 
290  struct DtLabelledFederateRestoreCbInfo
291  {
292  DtString label;
293  DtFederateRestoreCb cbFunction;
294  void* userData;
295  };
296 
297  struct DtGeneralSynchPointCbInfo
298  {
299  DtSynchPointCb cbFunction;
300  void* userData;
301  };
302 
303  struct DtLabelledSynchPointCbInfo
304  {
305  DtString label;
306  DtSynchPointCb cbFunction;
307  void* userData;
308  };
309 
310  struct DtGeneralAnnounceCbInfo
311  {
312  DtAnnounceSynchPointCb cbFunction;
313  void* userData;
314  };
315 
316  struct DtLabelledAnnounceCbInfo
317  {
318  DtString label;
319  DtAnnounceSynchPointCb cbFunction;
320  void* userData;
321  };
322 
323  static void attributesOutOfScopeCb(void* usr);
324 
325  virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
326 
327  DtExerciseConn* myExConn;
328  DtInteractionManager* myInteractionManager;
329  DtHlaObjectManager* myHlaObjectManager;
330 
331  DtReflectAttributeValuesCbList myRavCbList;
332  DtUpdatesOnCbList myUpdatesOnCbList;
333  DtUpdatesOffCbList myUpdatesOffCbList;
334  DtStartRegCbList myStartRegCbList;
335  DtStopRegCbList myStopRegCbList;
336  DtStartStopInterCbList myStartIntCbList;
337  DtStartStopInterCbList myStopIntCbList;
338  DtFedTimeCbList myTimeAdvanceGrantCbList;
339  DtFedTimeCbList myRegulationEnabledCbList;
340  DtFedTimeCbList myConstrainedEnabledCbList;
341  DtConnectionLostCbList myConnectionLostCbList;
342  DtReserveNameCbList myNameReservationSucceededCbList;
343  DtReserveNameCbList myNameReservationFailedCbList;
344 
345  DtReserveMultipleNamesCbList myMultipleNamesReservationSucceededCbList;
346  DtReserveMultipleNamesCbList myMultipleNamesReservationFailedCbList;
347 
349  std::list<DtFederateSaveCbInfo> myFederateSaveCbList;
350  std::list<DtLabelledFederateSaveCbInfo> myLabFederateSaveCbList;
351  std::list<DtFederateRestoreCbInfo> myFederateRestoreCbList;
352  std::list<DtLabelledFederateRestoreCbInfo> myLabFederateRestoreCbList;
353 
354  std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
355  std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
356  std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
357  std::list<DtLabelledAnnounceCbInfo> myLabAnnounceSynchPointCbList;
358 
359  std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
360  std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
361  std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
362  std::list<DtGeneralAnnounceCbInfo> myAnnounceSynchPointCbList;
363 
364  bool myRemoveObjectOnAttOutOfScope;
365 
367  virtual void applyFedsSynchedCallbacks(const DtString& label);
368  virtual void applyRegistrationSucceededCallbacks(const DtString& label);
369  virtual void applyRegistrationFailedCallbacks(const DtString& label);
370 
372  virtual bool applyAnnounceCallbacks(const DtString& label, const RTI::VariableLengthData& tag);
373 
374 
375 public:
376 
377  // 4.4
378  virtual void connectionLost (
379  std::wstring const & faultDescription)
380  throw (
381  RTI::FederateInternalError);
382 
383  // 4.8
384  virtual void reportFederationExecutions (
385  RTI::FederationExecutionInformationVector const &
386  theFederationExecutionInformationList)
387  throw (
388  RTI::FederateInternalError);
389 
390  // 4.12
392  std::wstring const & label)
393  throw (
394  RTI::FederateInternalError);
395 
397  std::wstring const & label,
398  RTI::SynchronizationPointFailureReason reason)
399  throw (
400  RTI::FederateInternalError);
401 
402  // 4.13
403  virtual void announceSynchronizationPoint (
404  std::wstring const & label,
405  RTI::VariableLengthData const & theUserSuppliedTag)
406  throw (
407  RTI::FederateInternalError);
408 
409  // 4.15
410  virtual void federationSynchronized (
411  std::wstring const & label,
412  RTI::FederateHandleSet const& failedToSyncSet)
413  throw (
414  RTI::FederateInternalError);
415 
416  // 4.17
417  virtual void initiateFederateSave (
418  std::wstring const & label)
419  throw (
420  RTI::FederateInternalError);
421 
422  virtual void initiateFederateSave (
423  std::wstring const & label,
424  RTI::LogicalTime const & theTime)
425  throw (
426  RTI::FederateInternalError);
427 
428  // 4.20
429  virtual void federationSaved ()
430  throw (
431  RTI::FederateInternalError);
432 
433  virtual void federationNotSaved (
434  RTI::SaveFailureReason theSaveFailureReason)
435  throw (
436  RTI::FederateInternalError);
437 
438 
439  // 4.23
440  virtual void federationSaveStatusResponse (
441  RTI::FederateHandleSaveStatusPairVector const &
442  theFederateStatusVector)
443  throw (
444  RTI::FederateInternalError);
445 
446  // 4.25
447  virtual void requestFederateRestoreSucceeded (
448  std::wstring const & label)
449  throw (
450  RTI::FederateInternalError);
451 
452  virtual void requestFederateRestoreFailed (
453  std::wstring const & label)
454  throw (
455  RTI::FederateInternalError);
456 
457  // 4.26
458  virtual void federationRestoreBegun ()
459  throw (
460  RTI::FederateInternalError);
461 
462  // 4.27
463  virtual void initiateFederateRestore (
464  std::wstring const & label,
465  std::wstring const & federateName,
466  RTI::FederateHandle handle)
467  throw (
468  RTI::FederateInternalError);
469 
470  // 4.29
471  virtual void federationRestored ()
472  throw (
473  RTI::FederateInternalError);
474 
475  virtual void federationNotRestored (
476  RTI::RestoreFailureReason theRestoreFailureReason)
477  throw (
478  RTI::FederateInternalError);
479 
480  // 4.32
481  virtual void federationRestoreStatusResponse (
482  RTI::FederateRestoreStatusVector const &
483  theFederateRestoreStatusVector)
484  throw (
485  RTI::FederateInternalError);
486 
488  // Declaration Management Services //
490 
491  // 5.10
492  virtual void startRegistrationForObjectClass (
493  RTI::ObjectClassHandle theClass)
494  throw (
495  RTI::FederateInternalError);
496 
497  // 5.11
498  virtual void stopRegistrationForObjectClass (
499  RTI::ObjectClassHandle theClass)
500  throw (
501  RTI::FederateInternalError);
502 
503  // 5.12
504  virtual void turnInteractionsOn (
505  RTI::InteractionClassHandle theHandle)
506  throw (
507  RTI::FederateInternalError);
508 
509  // 5.13
510  virtual void turnInteractionsOff (
511  RTI::InteractionClassHandle theHandle)
512  throw (
513  RTI::FederateInternalError);
514 
516  // Object Management Services //
518 
519  // 6.3
520  virtual void objectInstanceNameReservationSucceeded (
521  std::wstring const & theObjectInstanceName)
522  throw (
523  RTI::FederateInternalError);
524 
525  virtual void objectInstanceNameReservationFailed (
526  std::wstring const & theObjectInstanceName)
527  throw (
528  RTI::FederateInternalError);
529 
530  // 6.6
531  virtual void multipleObjectInstanceNameReservationSucceeded (
532  std::set<std::wstring> const & theObjectInstanceNames)
533  throw (
534  RTI::FederateInternalError);
535 
536  virtual void multipleObjectInstanceNameReservationFailed (
537  std::set<std::wstring> const & theObjectInstanceNames)
538  throw (
539  RTI::FederateInternalError);
540 
541 
542  // 6.9
543  virtual void discoverObjectInstance (
544  RTI::ObjectInstanceHandle theObject,
545  RTI::ObjectClassHandle theObjectClass,
546  std::wstring const & theObjectInstanceName)
547  throw (
548  RTI::FederateInternalError);
549 
550  virtual void discoverObjectInstance (
551  RTI::ObjectInstanceHandle theObject,
552  RTI::ObjectClassHandle theObjectClass,
553  std::wstring const & theObjectInstanceName,
554  RTI::FederateHandle producingFederate)
555  throw (
556  RTI::FederateInternalError);
557 
558  // 6.11
559  virtual void reflectAttributeValues (
560  RTI::ObjectInstanceHandle theObject,
561  RTI::AttributeHandleValueMap const & theAttributeValues,
562  RTI::VariableLengthData const & theUserSuppliedTag,
563  RTI::OrderType sentOrder,
564  RTI::TransportationType theType,
565  RTI::SupplementalReflectInfo theReflectInfo)
566  throw (
567  RTI::FederateInternalError);
568 
569  virtual void reflectAttributeValues (
570  RTI::ObjectInstanceHandle theObject,
571  RTI::AttributeHandleValueMap const & theAttributeValues,
572  RTI::VariableLengthData const & theUserSuppliedTag,
573  RTI::OrderType sentOrder,
574  RTI::TransportationType theType,
575  RTI::LogicalTime const & theTime,
576  RTI::OrderType receivedOrder,
577  RTI::SupplementalReflectInfo theReflectInfo)
578  throw (
579  RTI::FederateInternalError);
580 
581  virtual void reflectAttributeValues (
582  RTI::ObjectInstanceHandle theObject,
583  RTI::AttributeHandleValueMap const & theAttributeValues,
584  RTI::VariableLengthData const & theUserSuppliedTag,
585  RTI::OrderType sentOrder,
586  RTI::TransportationType theType,
587  RTI::LogicalTime const & theTime,
588  RTI::OrderType receivedOrder,
589  RTI::MessageRetractionHandle theHandle,
590  RTI::SupplementalReflectInfo theReflectInfo)
591  throw (
592  RTI::FederateInternalError);
593 
594  // 6.13
595  virtual void receiveInteraction (
596  RTI::InteractionClassHandle theInteraction,
597  RTI::ParameterHandleValueMap const & theParameterValues,
598  RTI::VariableLengthData const & theUserSuppliedTag,
599  RTI::OrderType sentOrder,
600  RTI::TransportationType theType,
601  RTI::SupplementalReceiveInfo theReceiveInfo)
602  throw (
603  RTI::FederateInternalError);
604 
605  virtual void receiveInteraction (
606  RTI::InteractionClassHandle theInteraction,
607  RTI::ParameterHandleValueMap const & theParameterValues,
608  RTI::VariableLengthData const & theUserSuppliedTag,
609  RTI::OrderType sentOrder,
610  RTI::TransportationType theType,
611  RTI::LogicalTime const & theTime,
612  RTI::OrderType receivedOrder,
613  RTI::SupplementalReceiveInfo theReceiveInfo)
614  throw (
615  RTI::FederateInternalError);
616 
617  virtual void receiveInteraction (
618  RTI::InteractionClassHandle theInteraction,
619  RTI::ParameterHandleValueMap const & theParameterValues,
620  RTI::VariableLengthData const & theUserSuppliedTag,
621  RTI::OrderType sentOrder,
622  RTI::TransportationType theType,
623  RTI::LogicalTime const & theTime,
624  RTI::OrderType receivedOrder,
625  RTI::MessageRetractionHandle theHandle,
626  RTI::SupplementalReceiveInfo theReceiveInfo)
627  throw (
628  RTI::FederateInternalError);
629 
630  // 6.15
631  virtual void removeObjectInstance (
632  RTI::ObjectInstanceHandle theObject,
633  RTI::VariableLengthData const & theUserSuppliedTag,
634  RTI::OrderType sentOrder,
635  RTI::SupplementalRemoveInfo theRemoveInfo)
636  throw (
637  RTI::FederateInternalError);
638 
639  virtual void removeObjectInstance (
640  RTI::ObjectInstanceHandle theObject,
641  RTI::VariableLengthData const & theUserSuppliedTag,
642  RTI::OrderType sentOrder,
643  RTI::LogicalTime const & theTime,
644  RTI::OrderType receivedOrder,
645  RTI::SupplementalRemoveInfo theRemoveInfo)
646  throw (
647  RTI::FederateInternalError);
648 
649  virtual void removeObjectInstance (
650  RTI::ObjectInstanceHandle theObject,
651  RTI::VariableLengthData const & theUserSuppliedTag,
652  RTI::OrderType sentOrder,
653  RTI::LogicalTime const & theTime,
654  RTI::OrderType receivedOrder,
655  RTI::MessageRetractionHandle theHandle,
656  RTI::SupplementalRemoveInfo theRemoveInfo)
657  throw (
658  RTI::FederateInternalError);
659 
660  // 6.17
661  virtual void attributesInScope (
662  RTI::ObjectInstanceHandle theObject,
663  RTI::AttributeHandleSet const & theAttributes)
664  throw (
665  RTI::FederateInternalError);
666 
667  // 6.18
668  virtual void attributesOutOfScope (
669  RTI::ObjectInstanceHandle theObject,
670  RTI::AttributeHandleSet const & theAttributes)
671  throw (
672  RTI::FederateInternalError);
673 
674  // 6.20
675  virtual void provideAttributeValueUpdate (
676  RTI::ObjectInstanceHandle theObject,
677  RTI::AttributeHandleSet const & theAttributes,
678  RTI::VariableLengthData const & theUserSuppliedTag)
679  throw (
680  RTI::FederateInternalError);
681 
682  // 6.21
683  virtual void turnUpdatesOnForObjectInstance (
684  RTI::ObjectInstanceHandle theObject,
685  RTI::AttributeHandleSet const & theAttributes)
686  throw (
687  RTI::FederateInternalError);
688 
689  virtual void turnUpdatesOnForObjectInstance (
690  RTI::ObjectInstanceHandle theObject,
691  RTI::AttributeHandleSet const & theAttributes,
692  std::wstring const & updateRateDesignator)
693  throw (
694  RTI::FederateInternalError);
695 
696  // 6.22
697  virtual void turnUpdatesOffForObjectInstance (
698  RTI::ObjectInstanceHandle theObject,
699  RTI::AttributeHandleSet const & theAttributes)
700  throw (
701  RTI::FederateInternalError);
702 
703  // 6.24
704  virtual void confirmAttributeTransportationTypeChange (
705  RTI::ObjectInstanceHandle theObject,
706  RTI::AttributeHandleSet theAttributes,
707  RTI::TransportationType theTransportation)
708  throw (
709  RTI::FederateInternalError);
710 
711  // 6.26
712  virtual void reportAttributeTransportationType (
713  RTI::ObjectInstanceHandle theObject,
714  RTI::AttributeHandle theAttribute,
715  RTI::TransportationType theTransportation)
716  throw (
717  RTI::FederateInternalError);
718 
719  // 6.28
720  virtual void confirmInteractionTransportationTypeChange (
721  RTI::InteractionClassHandle theInteraction,
722  RTI::TransportationType theTransportation)
723  throw (
724  RTI::FederateInternalError);
725 
726  // 6.30
727  virtual void reportInteractionTransportationType (
728  RTI::FederateHandle federateHandle,
729  RTI::InteractionClassHandle theInteraction,
730  RTI::TransportationType theTransportation)
731  throw (
732  RTI::FederateInternalError);
733 
734 
736  // Ownership Management Services //
738 
739  // 7.4
740  virtual void requestAttributeOwnershipAssumption (
741  RTI::ObjectInstanceHandle theObject,
742  RTI::AttributeHandleSet const & offeredAttributes,
743  RTI::VariableLengthData const & theUserSuppliedTag)
744  throw (
745  RTI::FederateInternalError);
746 
747  // 7.5
748  virtual void requestDivestitureConfirmation (
749  RTI::ObjectInstanceHandle theObject,
750  RTI::AttributeHandleSet const & releasedAttributes)
751  throw (
752  RTI::FederateInternalError);
753 
754  // 7.7
755  virtual void attributeOwnershipAcquisitionNotification (
756  RTI::ObjectInstanceHandle theObject,
757  RTI::AttributeHandleSet const & securedAttributes,
758  RTI::VariableLengthData const & theUserSuppliedTag)
759  throw (
760  RTI::FederateInternalError);
761 
762  // 7.10
763  virtual void attributeOwnershipUnavailable (
764  RTI::ObjectInstanceHandle theObject,
765  RTI::AttributeHandleSet const & theAttributes)
766  throw (
767  RTI::FederateInternalError);
768 
769  // 7.11
770  virtual void requestAttributeOwnershipRelease (
771  RTI::ObjectInstanceHandle theObject,
772  RTI::AttributeHandleSet const & candidateAttributes,
773  RTI::VariableLengthData const & theUserSuppliedTag)
774  throw (
775  RTI::FederateInternalError);
776 
777  // 7.16
778  virtual void confirmAttributeOwnershipAcquisitionCancellation (
779  RTI::ObjectInstanceHandle theObject,
780  RTI::AttributeHandleSet const & theAttributes)
781  throw (
782  RTI::FederateInternalError);
783 
784  // 7.18
785  virtual void informAttributeOwnership (
786  RTI::ObjectInstanceHandle theObject,
787  RTI::AttributeHandle theAttribute,
788  RTI::FederateHandle theOwner)
789  throw (
790  RTI::FederateInternalError);
791 
792  virtual void attributeIsNotOwned (
793  RTI::ObjectInstanceHandle theObject,
794  RTI::AttributeHandle theAttribute)
795  throw (
796  RTI::FederateInternalError);
797 
798  virtual void attributeIsOwnedByRTI (
799  RTI::ObjectInstanceHandle theObject,
800  RTI::AttributeHandle theAttribute)
801  throw (
802  RTI::FederateInternalError);
803 
805  // Time Management Services //
807 
808  // 8.3
809  virtual void timeRegulationEnabled (
810  RTI::LogicalTime const & theFederateTime)
811  throw (
812  RTI::FederateInternalError);
813 
814  // 8.6
815  virtual void timeConstrainedEnabled (
816  RTI::LogicalTime const & theFederateTime)
817  throw (
818  RTI::FederateInternalError);
819 
820  // 8.13
821  virtual void timeAdvanceGrant (
822  RTI::LogicalTime const & theTime)
823  throw (
824  RTI::FederateInternalError);
825 
826  // 8.22
827  virtual void requestRetraction (
828  RTI::MessageRetractionHandle theHandle)
829  throw (
830  RTI::FederateInternalError);
831 
832 protected:
833 
834  bool myWaitingForSave;
835  bool myWaitingForRestore;
836 };
837 
838 #endif
839 
840 
void(* DtFederateSaveCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador13.h:25
Instances of DtRegControlCbList are used to provide a list of callbacks (DtRegControlCbInfo) which ar...
Definition: regControlCbList.h:32
virtual void federationSaved()
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
virtual void synchronizationPointRegistrationSucceeded(const char *label)
! Federation Management Services //!
virtual void announceSynchronizationPoint(const char *label, const char *tag)
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
void(* DtAnnounceSynchPointCb)(const char *label, const char *tag, void *usr)
Definition: vrlFederateAmbassador13.h:37
Definition: vrlFederateAmbassador13.h:45
DtRegControlCb DtStopRegCb
Definition: regControlCbList.h:25
void(* DtDiscoverObjectCb)(DtHlaObject *obj, void *usr)
Definition: discoverObjectCbInfo.h:20
DtUpdateControlCb DtUpdatesOnCb
Definition: updateControlCbInfo.h:29
void(* DtStartStopInterCb)(RTI::InteractionClassHandle intClass, void *usr)
Definition: startStopInterCbList.h:21
void(* DtReflectAttributeValuesCb)(const DtStateMsg &stateMsg, void *usr)
Definition: reflectAttributeValuesCbList.h:24
void(* DtFederateRestoreCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador13.h:29
DtRegControlCb DtStartRegCb
Definition: regControlCbList.h:24
class DtStartStopInterCbList:
Definition: startStopInterCbList.h:32
void(* DtReceiveInteractionCb)(DtInteraction *inter, void *usr)
Definition: receiveInteractionCbInfo.h:23
#define LogicalTime
Definition: hlaLogicalTime.h:18
std::shared_ptr< DtDDMRegion > DtDDMRegionSP
Definition: region13.h:31
class DtInteractionManager:
Definition: interactionManager.h:25
Instances of DtUpdateControlCbList are used to provide a list of callbacks (DtUpdateControlCbInfo) wh...
Definition: updateControlCbList.h:33
class DtFedTimeCbList:
Definition: fedTimeCbList.h:35
void(* DtFedTimeCb)(const RTI::FedTime &theFedTime, void *theUserData)
Definition: fedTimeCbList.h:21
class DtHlaObjectManager:
Definition: hlaObjectManager.h:30
void(* DtSynchPointCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador13.h:33
Definition: nullFederateAmbassador13.h:24
virtual void federationSynchronized(const char *label)
Instances of DtString are used to represent strings.
Definition: vlString.h:36
Instances of DtReflectAttributeValuesCbList are used to provide a list of callbacks (DtReflectAttribu...
Definition: reflectAttributeValuesCbList.h:31
DtUpdateControlCb DtUpdatesOffCb
Definition: updateControlCbInfo.h:30
This file is used as a convenience to group RTI related callbacks together.
virtual void synchronizationPointRegistrationFailed(const char *label)
virtual void initiateFederateSave(const char *label)
void(* DtRemoveObjectCb)(DtHlaObject *obj, void *usr)
Definition: removeObjectCbInfo.h:22

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)