MAK RTIspy API Documentation for HLA 4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fedAmbWrap1516_2025.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
8 #ifdef DtIFSPEC1516_2025
9 
10 #include "rtiMsConfig.h"
11 #include <RTI/Enums.h>
12 #include <RTI/Typedefs.h>
14 
15 class DtFedAmbWrapper;
16 
17 typedef DtFedAmbWrapper* (*DtFedAmbWrapperCreator) (rti1516_2025::FederateAmbassador* fedAmb);
18 
20 {
21  public:
23 
24  virtual ~DtFedAmbWrapper();
25 
26  virtual rti1516_2025::FederateAmbassador* fedAmb();
27  virtual void setFedAmb(rti1516_2025::FederateAmbassador* f);
28 
29  protected:
31 
32  public:
33 
35  // Federation Management Services //
37 
41  virtual void connectionLost(
42  std::wstring const& faultDescription) override;
43 
47  virtual void reportFederationExecutions(
49 
54  std::wstring const& federationName,
56 
61  std::wstring const& federationName) override;
62 
66  virtual void federateResigned(
67  std::wstring const& reasonForResignDescription) override;
68 
73  std::wstring const& synchronizationPointLabel) override;
74 
79  std::wstring const& synchronizationPointLabel,
81 
85  virtual void announceSynchronizationPoint(
86  std::wstring const& synchronizationPointLabel,
87  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
88 
92  virtual void federationSynchronized(
93  std::wstring const& synchronizationPointLabel,
94  rti1516_2025::FederateHandleSet const& failedToSyncSet) override;
95 
99  virtual void initiateFederateSave(
100  std::wstring const& label) override;
101 
105  virtual void initiateFederateSave(
106  std::wstring const& label,
107  rti1516_2025::LogicalTime const& time) override;
108 
112  virtual void federationSaved() override;
113 
117  virtual void federationNotSaved(
118  rti1516_2025::SaveFailureReason reason) override;
119 
123  virtual void federationSaveStatusResponse(
124  rti1516_2025::FederateHandleSaveStatusPairVector const& response) override;
125 
130  std::wstring const& label) override;
131 
135  virtual void requestFederationRestoreFailed(
136  std::wstring const& label) override;
137 
141  virtual void federationRestoreBegun() override;
142 
146  virtual void initiateFederateRestore(
147  std::wstring const& label,
148  std::wstring const& federateName,
149  rti1516_2025::FederateHandle const& postRestoreFederateHandle) override;
150 
154  virtual void federationRestored() override;
155 
159  virtual void federationNotRestored(
160  rti1516_2025::RestoreFailureReason reason) override;
161 
165  virtual void federationRestoreStatusResponse(
166  rti1516_2025::FederateRestoreStatusVector const& response) override;
167 
169  // Declaration Management Services //
171 
175  virtual void startRegistrationForObjectClass(
176  rti1516_2025::ObjectClassHandle const& objectClass) override;
177 
181  virtual void stopRegistrationForObjectClass(
182  rti1516_2025::ObjectClassHandle const& objectClass) override;
183 
187  virtual void turnInteractionsOn(
188  rti1516_2025::InteractionClassHandle const& interactionClass) override;
189 
193  virtual void turnInteractionsOff(
194  rti1516_2025::InteractionClassHandle const& interactionClass) override;
195 
197  // Object Management Services //
199 
204  std::wstring const& objectInstanceName) override;
205 
210  std::wstring const& objectInstanceName) override;
211 
216  std::set<std::wstring> const& objectInstanceNames) override;
217 
222  std::set<std::wstring> const& objectInstanceNames) override;
223 
224 
228  virtual void discoverObjectInstance(
229  rti1516_2025::ObjectInstanceHandle const& objectInstance,
230  rti1516_2025::ObjectClassHandle const& objectClass,
231  std::wstring const& objectInstanceName,
232  rti1516_2025::FederateHandle const& producingFederate) override;
233 
237  virtual void reflectAttributeValues(
238  rti1516_2025::ObjectInstanceHandle const& objectInstance,
239  rti1516_2025::AttributeHandleValueMap const& attributeValues,
240  rti1516_2025::VariableLengthData const& userSuppliedTag,
241  rti1516_2025::TransportationTypeHandle const& transportationType,
242  rti1516_2025::FederateHandle const& producingFederate,
243  rti1516_2025::RegionHandleSet const* optionalSentRegions) override;
244 
248  virtual void reflectAttributeValues(
249  rti1516_2025::ObjectInstanceHandle const& objectInstance,
250  rti1516_2025::AttributeHandleValueMap const& attributeValues,
251  rti1516_2025::VariableLengthData const& userSuppliedTag,
252  rti1516_2025::TransportationTypeHandle const& transportationType,
253  rti1516_2025::FederateHandle const& producingFederate,
254  rti1516_2025::RegionHandleSet const* optionalSentRegions,
255  rti1516_2025::LogicalTime const& time,
256  rti1516_2025::OrderType sentOrderType,
257  rti1516_2025::OrderType receivedOrderType,
258  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
259 
263  virtual void receiveInteraction(
264  rti1516_2025::InteractionClassHandle const& interactionClass,
265  rti1516_2025::ParameterHandleValueMap const& parameterValues,
266  rti1516_2025::VariableLengthData const& userSuppliedTag,
267  rti1516_2025::TransportationTypeHandle const& transportationType,
268  rti1516_2025::FederateHandle const& producingFederate,
269  const rti1516_2025::RegionHandleSet* optionalSentRegions) override;
270 
274  virtual void receiveInteraction(
275  rti1516_2025::InteractionClassHandle const& interactionClass,
276  rti1516_2025::ParameterHandleValueMap const& parameterValues,
277  rti1516_2025::VariableLengthData const& userSuppliedTag,
278  rti1516_2025::TransportationTypeHandle const& transportationType,
279  rti1516_2025::FederateHandle const& producingFederate,
280  rti1516_2025::RegionHandleSet const* optionalSentRegions,
281  rti1516_2025::LogicalTime const& time,
282  rti1516_2025::OrderType sentOrderType,
283  rti1516_2025::OrderType receivedOrderType,
284  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
285 
289  virtual void receiveDirectedInteraction(
290  rti1516_2025::InteractionClassHandle const& interactionClass,
291  rti1516_2025::ObjectInstanceHandle const& objectInstance,
292  rti1516_2025::ParameterHandleValueMap const& parameterValues,
293  rti1516_2025::VariableLengthData const& userSuppliedTag,
294  rti1516_2025::TransportationTypeHandle const& transportationType,
295  rti1516_2025::FederateHandle const& producingFederate) override;
296 
300  virtual void receiveDirectedInteraction(
301  rti1516_2025::InteractionClassHandle const& interactionClass,
302  rti1516_2025::ObjectInstanceHandle const& objectInstance,
303  rti1516_2025::ParameterHandleValueMap const& parameterValues,
304  rti1516_2025::VariableLengthData const& userSuppliedTag,
305  rti1516_2025::TransportationTypeHandle const& transportationType,
306  rti1516_2025::FederateHandle const& producingFederate,
307  rti1516_2025::LogicalTime const& time,
308  rti1516_2025::OrderType sentOrderType,
309  rti1516_2025::OrderType receivedOrderType,
310  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
311 
315  virtual void removeObjectInstance(
316  rti1516_2025::ObjectInstanceHandle const& objectInstance,
317  rti1516_2025::VariableLengthData const& userSuppliedTag,
318  rti1516_2025::FederateHandle const& producingFederate) override;
319 
323  virtual void removeObjectInstance(
324  rti1516_2025::ObjectInstanceHandle const& objectInstance,
325  rti1516_2025::VariableLengthData const& userSuppliedTag,
326  rti1516_2025::FederateHandle const& producingFederate,
327  rti1516_2025::LogicalTime const& time,
328  rti1516_2025::OrderType sentOrderType,
329  rti1516_2025::OrderType receivedOrderType,
330  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
331 
335  virtual void attributesInScope(
336  rti1516_2025::ObjectInstanceHandle const& objectInstance,
337  rti1516_2025::AttributeHandleSet const& attributes) override;
338 
342  virtual void attributesOutOfScope(
343  rti1516_2025::ObjectInstanceHandle const& objectInstance,
344  rti1516_2025::AttributeHandleSet const& attributes) override;
345 
349  virtual void provideAttributeValueUpdate(
350  rti1516_2025::ObjectInstanceHandle const& objectInstance,
351  rti1516_2025::AttributeHandleSet const& attributes,
352  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
353 
357  virtual void turnUpdatesOnForObjectInstance(
358  rti1516_2025::ObjectInstanceHandle const& objectInstance,
359  rti1516_2025::AttributeHandleSet const& attributes) override;
360 
364  virtual void turnUpdatesOnForObjectInstance(
365  rti1516_2025::ObjectInstanceHandle const& objectInstance,
366  rti1516_2025::AttributeHandleSet const& attributes,
367  std::wstring const& updateRateDesignator) override;
368 
372  virtual void turnUpdatesOffForObjectInstance(
373  rti1516_2025::ObjectInstanceHandle const& objectInstance,
374  rti1516_2025::AttributeHandleSet const& attributes) override;
375 
380  rti1516_2025::ObjectInstanceHandle const& objectInstance,
381  rti1516_2025::AttributeHandleSet const& attributes,
382  rti1516_2025::TransportationTypeHandle const& transportationType) override;
383 
388  rti1516_2025::ObjectInstanceHandle const& objectInstance,
389  rti1516_2025::AttributeHandle const& attribute,
390  rti1516_2025::TransportationTypeHandle const& transportationType) override;
391 
396  rti1516_2025::InteractionClassHandle const& interactionClass,
397  rti1516_2025::TransportationTypeHandle const& transportationType) override;
398 
403  rti1516_2025::FederateHandle const& federate,
404  rti1516_2025::InteractionClassHandle const& interactionClass,
405  rti1516_2025::TransportationTypeHandle const& transportationType) override;
406 
407 
409  // Ownership Management Services //
411 
416  rti1516_2025::ObjectInstanceHandle const& objectInstance,
417  rti1516_2025::AttributeHandleSet const& offeredAttributes,
418  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
419 
423  virtual void requestDivestitureConfirmation(
424  rti1516_2025::ObjectInstanceHandle const& objectInstance,
425  rti1516_2025::AttributeHandleSet const& releasedAttributes,
426  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
427 
432  rti1516_2025::ObjectInstanceHandle const& objectInstance,
433  rti1516_2025::AttributeHandleSet const& securedAttributes,
434  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
435 
439  virtual void attributeOwnershipUnavailable(
440  rti1516_2025::ObjectInstanceHandle const& objectInstance,
441  rti1516_2025::AttributeHandleSet const& attributes,
442  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
443 
448  rti1516_2025::ObjectInstanceHandle const& objectInstance,
449  rti1516_2025::AttributeHandleSet const& candidateAttributes,
450  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
451 
456  rti1516_2025::ObjectInstanceHandle const& objectInstance,
457  rti1516_2025::AttributeHandleSet const& attributes) override;
458 
462  virtual void informAttributeOwnership(
463  rti1516_2025::ObjectInstanceHandle const& objectInstance,
464  rti1516_2025::AttributeHandleSet const& attributes,
465  rti1516_2025::FederateHandle const& owner) override;
466 
470  virtual void attributeIsNotOwned(
471  rti1516_2025::ObjectInstanceHandle const& objectInstance,
472  rti1516_2025::AttributeHandleSet const& attributes) override;
473 
477  virtual void attributeIsOwnedByRTI(
478  rti1516_2025::ObjectInstanceHandle const& objectInstance,
479  rti1516_2025::AttributeHandleSet const& attributes) override;
480 
482  // Time Management Services //
484 
488  virtual void timeRegulationEnabled(
489  rti1516_2025::LogicalTime const& time) override;
490 
494  virtual void timeConstrainedEnabled(
495  rti1516_2025::LogicalTime const& time) override;
496 
500  virtual void flushQueueGrant(
501  rti1516_2025::LogicalTime const& time, rti1516_2025::LogicalTime const& optimisticTime) override;
502 
506  virtual void timeAdvanceGrant(
507  rti1516_2025::LogicalTime const& time) override;
508 
512  virtual void requestRetraction(
513  rti1516_2025::MessageRetractionHandle const& retraction) override;
514 
515 };
516 
517 
518 inline DtFedAmbWrapper::DtFedAmbWrapper(rti1516_2025::FederateAmbassador* fedAmb)
519  : rti1516_2025::FederateAmbassador(), myFedAmb(fedAmb)
520 {
521 }
522 
523 inline DtFedAmbWrapper::~DtFedAmbWrapper()
524 {
525 }
526 
527 inline rti1516_2025::FederateAmbassador* DtFedAmbWrapper::fedAmb()
528 {
529  return myFedAmb;
530 }
531 
532 inline void DtFedAmbWrapper::setFedAmb(rti1516_2025::FederateAmbassador* f)
533 {
534  myFedAmb = f;
535 }
536 
538 // Federation Management Services //
540 
541 inline void DtFedAmbWrapper::connectionLost(
542  std::wstring const& faultDescription)
543 {
544  if (myFedAmb)
545  {
546  myFedAmb->connectionLost(faultDescription);
547  }
548 }
549 
550 inline void DtFedAmbWrapper::federateResigned(std::wstring const& reasonForResignDescription)
551 {
552  if (myFedAmb)
553  {
554  myFedAmb->federateResigned(reasonForResignDescription);
555  }
556 }
557 
558 inline void DtFedAmbWrapper::reportFederationExecutions(
559  rti1516_2025::FederationExecutionInformationVector const& theFederationExecutionInformationList)
560 {
561  if (myFedAmb)
562  {
563  myFedAmb->reportFederationExecutions(theFederationExecutionInformationList);
564  }
565 }
566 
567 inline void DtFedAmbWrapper::reportFederationExecutionMembers(
568  std::wstring const& theFederationExecutionName,
569  rti1516_2025::FederationExecutionMemberInformationVector const& theFederationExecutionMemberInformationList)
570 {
571  if (myFedAmb)
572  {
573  myFedAmb->reportFederationExecutionMembers(theFederationExecutionName, theFederationExecutionMemberInformationList);
574  }
575 }
576 
577 inline void DtFedAmbWrapper::reportFederationExecutionDoesNotExist(std::wstring const& federationExecutionName)
578 {
579  if (myFedAmb)
580  {
581  myFedAmb->reportFederationExecutionDoesNotExist(federationExecutionName);
582  }
583 }
584 
586  std::wstring const& label)
587 {
588  if (myFedAmb)
589  {
590  myFedAmb->synchronizationPointRegistrationSucceeded(label);
591  }
592 }
593 
595  std::wstring const& label,
597 {
598  if (myFedAmb)
599  {
600  myFedAmb->synchronizationPointRegistrationFailed(label, reason);
601  }
602 }
603 
605  std::wstring const& label,
606  rti1516_2025::VariableLengthData const& theUserSuppliedTag)
607 {
608  if (myFedAmb)
609  {
610  myFedAmb->announceSynchronizationPoint(label, theUserSuppliedTag);
611  }
612 }
613 
615  std::wstring const& label,
616  rti1516_2025::FederateHandleSet const& failedToSyncSet)
617 {
618  if (myFedAmb)
619  {
620  myFedAmb->federationSynchronized(label, failedToSyncSet);
621  }
622 }
623 
625  std::wstring const& label)
626 {
627  if (myFedAmb)
628  {
629  myFedAmb->initiateFederateSave(label);
630  }
631 }
632 
634  std::wstring const& label,
635  rti1516_2025::LogicalTime const& theTime)
636 {
637  if (myFedAmb)
638  {
639  myFedAmb->initiateFederateSave(label, theTime);
640  }
641 }
642 
644 {
645  if (myFedAmb)
646  {
647  myFedAmb->federationSaved();
648  }
649 }
650 
652  rti1516_2025::SaveFailureReason theSaveFailureReason)
653 {
654  if (myFedAmb)
655  {
656  myFedAmb->federationNotSaved(theSaveFailureReason);
657  }
658 }
659 
660 inline void DtFedAmbWrapper::federationSaveStatusResponse(
661  rti1516_2025::FederateHandleSaveStatusPairVector const& theFederateStatusVector)
662 {
663  if (myFedAmb)
664  {
665  myFedAmb->federationSaveStatusResponse(theFederateStatusVector);
666  }
667 }
668 
670  std::wstring const& label)
671 {
672  if (myFedAmb)
673  {
674  myFedAmb->requestFederationRestoreSucceeded(label);
675  }
676 }
677 
679  std::wstring const& label)
680 {
681  if (myFedAmb)
682  {
683  myFedAmb->requestFederationRestoreFailed(label);
684  }
685 }
686 
688 {
689  if (myFedAmb)
690  {
691  myFedAmb->federationRestoreBegun();
692  }
693 }
694 
696  std::wstring const& label,
697  std::wstring const& federateName,
698  rti1516_2025::FederateHandle const& theHandle)
699 {
700  if (myFedAmb)
701  {
702  myFedAmb->initiateFederateRestore(label, federateName, theHandle);
703  }
704 }
705 
707 {
708  if (myFedAmb)
709  {
710  myFedAmb->federationRestored();
711  }
712 }
713 
715  rti1516_2025::RestoreFailureReason theRestoreFailureReason)
716 {
717  if (myFedAmb)
718  {
719  myFedAmb->federationNotRestored(theRestoreFailureReason);
720  }
721 }
722 
723 inline void DtFedAmbWrapper::federationRestoreStatusResponse(
725  theFederateRestoreStatusVector)
726 {
727  if (myFedAmb)
728  {
729  myFedAmb->federationRestoreStatusResponse(theFederateRestoreStatusVector);
730  }
731 }
732 
734 // Declaration Management Services //
736 
738  rti1516_2025::ObjectClassHandle const& theClass)
739 {
740  if (myFedAmb)
741  {
742  myFedAmb->startRegistrationForObjectClass(theClass);
743  }
744 }
745 
747  rti1516_2025::ObjectClassHandle const& theClass)
748 {
749  if (myFedAmb)
750  {
751  myFedAmb->stopRegistrationForObjectClass(theClass);
752  }
753 }
754 
756  rti1516_2025::InteractionClassHandle const& theHandle)
757 {
758  if (myFedAmb)
759  {
760  myFedAmb->turnInteractionsOn(theHandle);
761  }
762 }
763 
765  rti1516_2025::InteractionClassHandle const& theHandle)
766 {
767  if (myFedAmb)
768  {
769  myFedAmb->turnInteractionsOff(theHandle);
770  }
771 }
772 
774 // Object Management Services //
776 
777 inline void DtFedAmbWrapper::objectInstanceNameReservationSucceeded(
778  std::wstring const& theObjectInstanceName)
779 {
780  if (myFedAmb)
781  {
782  myFedAmb->objectInstanceNameReservationSucceeded(theObjectInstanceName);
783  }
784 }
785 
786 inline void DtFedAmbWrapper::objectInstanceNameReservationFailed(
787  std::wstring const& theObjectInstanceName)
788 {
789  if (myFedAmb)
790  {
791  myFedAmb->objectInstanceNameReservationFailed(theObjectInstanceName);
792  }
793 }
794 
795 inline void DtFedAmbWrapper::multipleObjectInstanceNameReservationSucceeded(
796  std::set<std::wstring> const& theObjectInstanceNames)
797 {
798  if (myFedAmb)
799  {
800  myFedAmb->multipleObjectInstanceNameReservationSucceeded(theObjectInstanceNames);
801  }
802 }
803 
804 inline void DtFedAmbWrapper::multipleObjectInstanceNameReservationFailed(
805  std::set<std::wstring> const& theObjectInstanceNames)
806 {
807  if (myFedAmb)
808  {
809  myFedAmb->multipleObjectInstanceNameReservationFailed(theObjectInstanceNames);
810  }
811 }
812 
814  rti1516_2025::ObjectInstanceHandle const& theObject,
815  rti1516_2025::ObjectClassHandle const& theObjectClass,
816  std::wstring const& theObjectInstanceName,
817  rti1516_2025::FederateHandle const& producingFederate)
818 {
819  if (myFedAmb)
820  {
821  myFedAmb->discoverObjectInstance(theObject, theObjectClass, theObjectInstanceName, producingFederate);
822  }
823 }
824 
826  rti1516_2025::ObjectInstanceHandle const& theObject,
827  rti1516_2025::AttributeHandleValueMap const& theAttributeValues,
828  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
829  rti1516_2025::TransportationTypeHandle const& theType,
830  rti1516_2025::FederateHandle const& theProducingFederate,
831  rti1516_2025::RegionHandleSet const* theOptionalSentRegions)
832 {
833  if (myFedAmb)
834  {
835  myFedAmb->reflectAttributeValues(theObject, theAttributeValues, theUserSuppliedTag, theType, theProducingFederate,
836  theOptionalSentRegions);
837  }
838 }
839 
841  rti1516_2025::ObjectInstanceHandle const& theObject,
842  rti1516_2025::AttributeHandleValueMap const& theAttributeValues,
843  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
844  rti1516_2025::TransportationTypeHandle const& theType,
845  rti1516_2025::FederateHandle const& theProducingFederate,
846  rti1516_2025::RegionHandleSet const* theOptionalSentRegions,
847  rti1516_2025::LogicalTime const& theTime,
848  rti1516_2025::OrderType theSentOrder,
849  rti1516_2025::OrderType theReceivedOrder,
850  rti1516_2025::MessageRetractionHandle const* theOptionalRetraction)
851 {
852  if (myFedAmb)
853  {
854  myFedAmb->reflectAttributeValues(theObject, theAttributeValues, theUserSuppliedTag, theType, theProducingFederate,
855  theOptionalSentRegions, theTime, theSentOrder, theReceivedOrder, theOptionalRetraction);
856  }
857 }
858 
860  rti1516_2025::InteractionClassHandle const& theInteraction,
861  rti1516_2025::ParameterHandleValueMap const& theParameterValues,
862  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
863  rti1516_2025::TransportationTypeHandle const& theType,
864  rti1516_2025::FederateHandle const& theProducingFederate,
865  rti1516_2025::RegionHandleSet const* theOptionalSentRegions)
866 {
867  if (myFedAmb)
868  {
869  myFedAmb->receiveInteraction(theInteraction, theParameterValues, theUserSuppliedTag, theType, theProducingFederate,
870  theOptionalSentRegions);
871  }
872 }
873 
875  rti1516_2025::InteractionClassHandle const& theInteraction,
876  rti1516_2025::ParameterHandleValueMap const& theParameterValues,
877  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
878  rti1516_2025::TransportationTypeHandle const& theType,
879  rti1516_2025::FederateHandle const& theProducingFederate,
880  rti1516_2025::RegionHandleSet const* theOptionalSentRegions,
881  rti1516_2025::LogicalTime const& theTime,
882  rti1516_2025::OrderType theSentOrder,
883  rti1516_2025::OrderType theReceivedOrder,
884  rti1516_2025::MessageRetractionHandle const* theOptionalRetraction)
885 {
886  if (myFedAmb)
887  {
888  myFedAmb->receiveInteraction(theInteraction, theParameterValues, theUserSuppliedTag, theType, theProducingFederate,
889  theOptionalSentRegions, theTime, theSentOrder, theReceivedOrder, theOptionalRetraction);
890  }
891 }
892 
893 inline void DtFedAmbWrapper::receiveDirectedInteraction(
894  rti1516_2025::InteractionClassHandle const& theInteraction,
895  rti1516_2025::ObjectInstanceHandle const& theObject,
896  rti1516_2025::ParameterHandleValueMap const& theParameterValues,
897  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
898  rti1516_2025::TransportationTypeHandle const& theType,
899  rti1516_2025::FederateHandle const& theProducingFederate)
900 {
901  if (myFedAmb)
902  {
903  // HLA4 TODO
904  myFedAmb->receiveDirectedInteraction(theInteraction, theObject, theParameterValues, theUserSuppliedTag, theType,
905  theProducingFederate);
906  }
907 }
908 
909 inline void DtFedAmbWrapper::receiveDirectedInteraction(
910  rti1516_2025::InteractionClassHandle const& theInteraction,
911  rti1516_2025::ObjectInstanceHandle const& theObject,
912  rti1516_2025::ParameterHandleValueMap const& theParameterValues,
913  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
914  rti1516_2025::TransportationTypeHandle const& theType,
915  rti1516_2025::FederateHandle const& theProducingFederate,
916  rti1516_2025::LogicalTime const& theTime,
917  rti1516_2025::OrderType theSentOrder,
918  rti1516_2025::OrderType theReceivedOrder,
919  rti1516_2025::MessageRetractionHandle const* theOptionalRetraction)
920 {
921  if (myFedAmb)
922  {
923  // HLA4 TODO
924  myFedAmb->receiveDirectedInteraction(theInteraction, theObject, theParameterValues, theUserSuppliedTag, theType,
925  theProducingFederate, theTime, theSentOrder, theReceivedOrder, theOptionalRetraction);
926  }
927 }
928 
930  rti1516_2025::ObjectInstanceHandle const& theObject,
931  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
932  rti1516_2025::FederateHandle const& theProducingFederate)
933 {
934  if (myFedAmb)
935  {
936  myFedAmb->removeObjectInstance(theObject, theUserSuppliedTag, theProducingFederate);
937  }
938 }
939 
941  rti1516_2025::ObjectInstanceHandle const& theObject,
942  rti1516_2025::VariableLengthData const& theUserSuppliedTag,
943  rti1516_2025::FederateHandle const& theProducingFederate,
944  rti1516_2025::LogicalTime const& theTime,
945  rti1516_2025::OrderType theSentOrder,
946  rti1516_2025::OrderType theReceivedOrder,
947  rti1516_2025::MessageRetractionHandle const* theOptionalRetraction)
948 {
949  if (myFedAmb)
950  {
951  myFedAmb->removeObjectInstance(theObject, theUserSuppliedTag, theProducingFederate,
952  theTime, theSentOrder, theReceivedOrder, theOptionalRetraction);
953  }
954 }
955 
957  rti1516_2025::ObjectInstanceHandle const& theObject,
958  rti1516_2025::AttributeHandleSet const& theAttributes)
959 {
960  if (myFedAmb)
961  {
962  myFedAmb->attributesInScope(theObject, theAttributes);
963  }
964 }
965 
967  rti1516_2025::ObjectInstanceHandle const& theObject,
968  rti1516_2025::AttributeHandleSet const& theAttributes)
969 {
970  if (myFedAmb)
971  {
972  myFedAmb->attributesOutOfScope(theObject, theAttributes);
973  }
974 }
975 
977  rti1516_2025::ObjectInstanceHandle const& theObject,
978  rti1516_2025::AttributeHandleSet const& theAttributes,
979  rti1516_2025::VariableLengthData const& theUserSuppliedTag)
980 {
981  if (myFedAmb)
982  {
983  myFedAmb->provideAttributeValueUpdate(theObject, theAttributes, theUserSuppliedTag);
984  }
985 }
986 
988  rti1516_2025::ObjectInstanceHandle const& theObject,
989  rti1516_2025::AttributeHandleSet const& theAttributes)
990 {
991  if (myFedAmb)
992  {
993  myFedAmb->turnUpdatesOnForObjectInstance(theObject, theAttributes);
994  }
995 }
996 
998  rti1516_2025::ObjectInstanceHandle const& theObject,
999  rti1516_2025::AttributeHandleSet const& theAttributes,
1000  std::wstring const& updateRateDesignator)
1001 {
1002  if (myFedAmb)
1003  {
1004  myFedAmb->turnUpdatesOnForObjectInstance(theObject, theAttributes, updateRateDesignator);
1005  }
1006 }
1007 
1009  rti1516_2025::ObjectInstanceHandle const& theObject,
1010  rti1516_2025::AttributeHandleSet const& theAttributes)
1011 {
1012  if (myFedAmb)
1013  {
1014  myFedAmb->turnUpdatesOffForObjectInstance(theObject, theAttributes);
1015  }
1016 }
1017 
1018 inline void DtFedAmbWrapper::confirmAttributeTransportationTypeChange(
1019  rti1516_2025::ObjectInstanceHandle const& theObject,
1020  rti1516_2025::AttributeHandleSet const& theAttributes,
1021  rti1516_2025::TransportationTypeHandle const& theTransportation)
1022 {
1023  if (myFedAmb)
1024  {
1025  myFedAmb->confirmAttributeTransportationTypeChange(theObject, theAttributes, theTransportation);
1026  }
1027 }
1028 
1029 inline void DtFedAmbWrapper::reportAttributeTransportationType(
1030  rti1516_2025::ObjectInstanceHandle const& theObject,
1031  rti1516_2025::AttributeHandle const& theAttribute,
1032  rti1516_2025::TransportationTypeHandle const& theTransportation)
1033 {
1034  if (myFedAmb)
1035  {
1036  myFedAmb->reportAttributeTransportationType(theObject, theAttribute, theTransportation);
1037  }
1038 }
1039 
1040 inline void DtFedAmbWrapper::confirmInteractionTransportationTypeChange(
1041  rti1516_2025::InteractionClassHandle const& theInteraction,
1042  rti1516_2025::TransportationTypeHandle const& theTransportation)
1043 {
1044  if (myFedAmb)
1045  {
1046  myFedAmb->confirmInteractionTransportationTypeChange(theInteraction, theTransportation);
1047  }
1048 }
1049 
1050 inline void DtFedAmbWrapper::reportInteractionTransportationType(
1051  rti1516_2025::FederateHandle const& theFederateHandle,
1052  rti1516_2025::InteractionClassHandle const& theInteraction,
1053  rti1516_2025::TransportationTypeHandle const& theTransportation)
1054 {
1055  if (myFedAmb)
1056  {
1057  myFedAmb->reportInteractionTransportationType(theFederateHandle, theInteraction, theTransportation);
1058  }
1059 }
1060 
1061 
1063 // Ownership Management Services //
1065 
1067  rti1516_2025::ObjectInstanceHandle const& theObject,
1068  rti1516_2025::AttributeHandleSet const& offeredAttributes,
1069  rti1516_2025::VariableLengthData const& theUserSuppliedTag)
1070 {
1071  if (myFedAmb)
1072  {
1073  myFedAmb->requestAttributeOwnershipAssumption(theObject, offeredAttributes, theUserSuppliedTag);
1074  }
1075 }
1076 
1077 inline void DtFedAmbWrapper::requestDivestitureConfirmation(
1078  rti1516_2025::ObjectInstanceHandle const& theObject,
1079  rti1516_2025::AttributeHandleSet const& releasedAttributes,
1080  rti1516_2025::VariableLengthData const& theUserSuppliedTag)
1081 {
1082  if (myFedAmb)
1083  {
1084  myFedAmb->requestDivestitureConfirmation(theObject, releasedAttributes, theUserSuppliedTag);
1085  }
1086 }
1087 
1089  rti1516_2025::ObjectInstanceHandle const& theObject,
1090  rti1516_2025::AttributeHandleSet const& securedAttributes,
1091  rti1516_2025::VariableLengthData const& theUserSuppliedTag)
1092 {
1093  if (myFedAmb)
1094  {
1095  myFedAmb->attributeOwnershipAcquisitionNotification(theObject, securedAttributes, theUserSuppliedTag);
1096  }
1097 }
1098 
1100  rti1516_2025::ObjectInstanceHandle const& theObject,
1101  rti1516_2025::AttributeHandleSet const& theAttributes,
1102  rti1516_2025::VariableLengthData const& theUserSuppliedTag)
1103 {
1104  if (myFedAmb)
1105  {
1106  myFedAmb->attributeOwnershipUnavailable(theObject, theAttributes, theUserSuppliedTag);
1107  }
1108 }
1109 
1111  rti1516_2025::ObjectInstanceHandle const& theObject,
1112  rti1516_2025::AttributeHandleSet const& candidateAttributes,
1113  rti1516_2025::VariableLengthData const& theUserSuppliedTag)
1114 {
1115  if (myFedAmb)
1116  {
1117  myFedAmb->requestAttributeOwnershipRelease(theObject, candidateAttributes, theUserSuppliedTag);
1118  }
1119 }
1120 
1122  rti1516_2025::ObjectInstanceHandle const& theObject,
1123  rti1516_2025::AttributeHandleSet const& theAttributes)
1124 {
1125  if (myFedAmb)
1126  {
1127  myFedAmb->confirmAttributeOwnershipAcquisitionCancellation(theObject, theAttributes);
1128  }
1129 }
1130 
1132  rti1516_2025::ObjectInstanceHandle const& theObject,
1133  rti1516_2025::AttributeHandleSet const& theAttributes,
1134  rti1516_2025::FederateHandle const& theOwner)
1135 {
1136  if (myFedAmb)
1137  {
1138  myFedAmb->informAttributeOwnership(theObject, theAttributes, theOwner);
1139  }
1140 }
1141 
1143  rti1516_2025::ObjectInstanceHandle const& theObject,
1144  rti1516_2025::AttributeHandleSet const& theAttributes)
1145 {
1146  if (myFedAmb)
1147  {
1148  myFedAmb->attributeIsNotOwned(theObject, theAttributes);
1149  }
1150 }
1151 
1152 inline void DtFedAmbWrapper::attributeIsOwnedByRTI(
1153  rti1516_2025::ObjectInstanceHandle const& theObject,
1154  rti1516_2025::AttributeHandleSet const& theAttributes)
1155 {
1156  if (myFedAmb)
1157  {
1158  myFedAmb->attributeIsOwnedByRTI(theObject, theAttributes);
1159  }
1160 }
1161 
1163 // Time Management Services //
1165 
1167  rti1516_2025::LogicalTime const& theFederateTime)
1168 {
1169  if (myFedAmb)
1170  {
1171  myFedAmb->timeRegulationEnabled(theFederateTime);
1172  }
1173 }
1174 
1176  rti1516_2025::LogicalTime const& theFederateTime)
1177 {
1178  if (myFedAmb)
1179  {
1180  myFedAmb->timeConstrainedEnabled(theFederateTime);
1181  }
1182 }
1183 
1184 inline void DtFedAmbWrapper::flushQueueGrant(rti1516_2025::LogicalTime const& theTime, rti1516_2025::LogicalTime const& optimisticTime)
1185 {
1186  if (myFedAmb)
1187  {
1188  myFedAmb->flushQueueGrant(theTime, optimisticTime);
1189  }
1190 }
1191 
1193  rti1516_2025::LogicalTime const& theTime)
1194 {
1195  if (myFedAmb)
1196  {
1197  myFedAmb->timeAdvanceGrant(theTime);
1198  }
1199 }
1200 
1202  rti1516_2025::MessageRetractionHandle const& theHandle)
1203 {
1204  if (myFedAmb)
1205  {
1206  myFedAmb->requestRetraction(theHandle);
1207  }
1208 }
1209 
1210 
1211 #endif // DtIFSPEC1516_2025
virtual void federationNotSaved(SaveFailureReason reason)=0
4.23
virtual void attributesInScope(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes)=0
6.19
virtual void reportFederationExecutionMembers(std::wstring const &federationName, FederationExecutionMemberInformationVector const &report)=0
4.10
virtual void synchronizationPointRegistrationFailed(std::wstring const &synchronizationPointLabel, SynchronizationPointFailureReason reason)=0
4.15
Definition: LogicalTime.h:30
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:29
virtual void requestAttributeOwnershipRelease(ObjectHandle theObject, const AttributeHandleSet &candidateAttributes, const char *theTag)=0
7.10
std::vector< FederationExecutionInformation > FederationExecutionInformationVector
Definition: Typedefs.h:112
virtual void reportFederationExecutions(FederationExecutionInformationVector const &report)=0
4.8
virtual void reportFederationExecutionDoesNotExist(std::wstring const &federationName)=0
4.11
virtual void attributesOutOfScope(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.14
std::vector< FederateRestoreStatus > FederateRestoreStatusVector
Definition: Typedefs.h:95
OrderType
Definition: Enums.h:28
virtual void requestFederationRestoreSucceeded(std::wstring const &label)=0
4.28
virtual void informAttributeOwnership(ObjectHandle theObject, AttributeHandle theAttribute, FederateHandle theOwner)=0
7.16
virtual void federationRestoreStatusResponse(FederateRestoreStatusVector const &response)=0
4.35
virtual void initiateFederateRestore(const char *label, FederateHandle handle)=0
4.19
virtual void confirmAttributeOwnershipAcquisitionCancellation(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
7.14
virtual void startRegistrationForObjectClass(ObjectClassHandle theClass)=0
! Declaration Management Services //!
virtual void federateResigned(std::wstring const &reasonForResignDescription)=0
4.13
virtual void requestRetraction(EventRetractionHandle theHandle)=0
8.22
virtual void connectionLost(std::wstring const &faultDescription)=0
4.4
virtual void initiateFederateRestore(std::wstring const &label, std::wstring const &federateName, FederateHandle const &postRestoreFederateHandle)=0
4.30
SynchronizationPointFailureReason
Definition: Enums.h:92
virtual void synchronizationPointRegistrationFailed(const char *label)=0
supplied C4)
virtual void federationSaved()=0
4.23
virtual void requestAttributeOwnershipRelease(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &candidateAttributes, VariableLengthData const &userSuppliedTag)=0
7.11
virtual void confirmAttributeTransportationTypeChange(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes, TransportationTypeHandle const &transportationType)=0
6.26
virtual void federationNotRestored()=0
virtual void timeRegulationEnabled(LogicalTime const &time)=0
8.3
virtual void reportInteractionTransportationType(FederateHandle const &federate, InteractionClassHandle const &interactionClass, TransportationTypeHandle const &transportationType)=0
6.33
virtual void attributesInScope(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.13
virtual void attributeOwnershipUnavailable(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
7.9
virtual void federationRestoreBegun()=0
4.29
virtual void provideAttributeValueUpdate(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes, VariableLengthData const &userSuppliedTag)=0
6.22
SaveFailureReason
Definition: Enums.h:63
virtual void timeConstrainedEnabled(LogicalTime const &time)=0
8.6
virtual void confirmAttributeOwnershipAcquisitionCancellation(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes)=0
7.16
virtual void attributeIsNotOwned(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes)=0
7.18
virtual void receiveInteraction(InteractionClassHandle theInteraction, const ParameterHandleValuePairSet &theParameters, const FedTime &theTime, const char *theTag, EventRetractionHandle theHandle)=0
6.7
virtual void removeObjectInstance(ObjectHandle theObject, const FedTime &theTime, const char *theTag, EventRetractionHandle theHandle)=0
6.9
virtual void multipleObjectInstanceNameReservationSucceeded(std::set< std::wstring > const &objectInstanceNames)=0
6.6
virtual void synchronizationPointRegistrationSucceeded(const char *label)=0
RTI Parameter Passing Memory Conventions.
std::vector< FederationExecutionMemberInformation > FederationExecutionMemberInformationVector
Definition: Typedefs.h:129
virtual void turnInteractionsOff(InteractionClassHandle const &interactionClass)=0
5.17
virtual void initiateFederateSave(const char *label)=0
4.12
virtual void synchronizationPointRegistrationSucceeded(std::wstring const &synchronizationPointLabel)=0
4.15
virtual void requestFederationRestoreFailed(std::wstring const &label)=0
4.28
virtual void timeAdvanceGrant(const FedTime &theTime)=0
8.13
virtual void confirmInteractionTransportationTypeChange(InteractionClassHandle const &interactionClass, TransportationTypeHandle const &transportationType)=0
6.31
virtual void announceSynchronizationPoint(const char *label, const char *tag)=0
4.8
virtual void attributeOwnershipAcquisitionNotification(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &securedAttributes, VariableLengthData const &userSuppliedTag)=0
7.7
virtual void requestFederationRestoreFailed(const char *label, const char *reason)=0
supplied C4
virtual void federationNotSaved()=0
This file contains the standard RTI types that are defined in namespace rti1516.
virtual void federationSynchronized(const char *label)=0
4.10
virtual void reportAttributeTransportationType(ObjectInstanceHandle const &objectInstance, AttributeHandle const &attribute, TransportationTypeHandle const &transportationType)=0
6.29
virtual void requestDivestitureConfirmation(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &releasedAttributes, VariableLengthData const &userSuppliedTag)=0
7.5
virtual void receiveDirectedInteraction(InteractionClassHandle const &interactionClass, ObjectInstanceHandle const &objectInstance, ParameterHandleValueMap const &parameterValues, VariableLengthData const &userSuppliedTag, TransportationTypeHandle const &transportationType, FederateHandle const &producingFederate)=0
6.15
virtual void removeObjectInstance(ObjectInstanceHandle const &objectInstance, VariableLengthData const &userSuppliedTag, FederateHandle const &producingFederate)=0
6.17
virtual void federationSaveStatusResponse(FederateHandleSaveStatusPairVector const &response)=0
4.26
virtual void informAttributeOwnership(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes, FederateHandle const &owner)=0
7.18
virtual void announceSynchronizationPoint(std::wstring const &synchronizationPointLabel, VariableLengthData const &userSuppliedTag)=0
4.16
virtual void requestRetraction(MessageRetractionHandle const &retraction)=0
8.23
virtual void requestAttributeOwnershipAssumption(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &offeredAttributes, VariableLengthData const &userSuppliedTag)=0
7.4
virtual void reflectAttributeValues(ObjectInstanceHandle const &objectInstance, AttributeHandleValueMap const &attributeValues, VariableLengthData const &userSuppliedTag, TransportationTypeHandle const &transportationType, FederateHandle const &producingFederate, RegionHandleSet const *optionalSentRegions)=0
6.11
virtual void objectInstanceNameReservationFailed(std::wstring const &objectInstanceName)=0
6.3
virtual void discoverObjectInstance(ObjectHandle theObject, ObjectClassHandle theObjectClass, const char *theObjectName)=0
! Object Management Services //!
virtual void requestFederationRestoreSucceeded(const char *label)=0
4.17
virtual void attributeOwnershipAcquisitionNotification(ObjectHandle theObject, const AttributeHandleSet &securedAttributes)=0
7.6
virtual void reflectAttributeValues(ObjectHandle theObject, const AttributeHandleValuePairSet &theAttributes, const FedTime &theTime, const char *theTag, EventRetractionHandle theHandle)=0
6.5
virtual void stopRegistrationForObjectClass(ObjectClassHandle const &objectClass)=0
5.15
An abstract base class which must be implemented, and used by a federate.
Definition: FederateAmbassador.h:26
virtual void turnInteractionsOff(InteractionClassHandle theHandle)=0
5.13
virtual void startRegistrationForObjectClass(ObjectClassHandle const &objectClass)=0
5.14
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:39
virtual void federationNotRestored(RestoreFailureReason reason)=0
4.32
virtual void receiveInteraction(InteractionClassHandle const &interactionClass, ParameterHandleValueMap const &parameterValues, VariableLengthData const &userSuppliedTag, TransportationTypeHandle const &transportationType, FederateHandle const &producingFederate, const RegionHandleSet *optionalSentRegions)=0
6.13
virtual void federationRestored()=0
4.21
virtual void provideAttributeValueUpdate(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.16
virtual void initiateFederateSave(std::wstring const &label)=0
4.20
virtual void turnUpdatesOffForObjectInstance(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.18
virtual void objectInstanceNameReservationSucceeded(std::wstring const &objectInstanceName)=0
6.3
virtual void attributesOutOfScope(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes)=0
6.20
virtual void requestAttributeOwnershipAssumption(ObjectHandle theObject, const AttributeHandleSet &offeredAttributes, const char *theTag)=0
! Ownership Management Services //!
virtual void turnUpdatesOnForObjectInstance(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes)=0
6.23
This file contains enumerations used by the interface.
virtual void turnUpdatesOnForObjectInstance(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.17
virtual void attributeIsOwnedByRTI(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes)=0
7.18
virtual void discoverObjectInstance(ObjectInstanceHandle const &objectInstance, ObjectClassHandle const &objectClass, std::wstring const &objectInstanceName, FederateHandle const &producingFederate)=0
6.9
virtual void turnInteractionsOn(InteractionClassHandle const &interactionClass)=0
5.16
virtual void multipleObjectInstanceNameReservationFailed(std::set< std::wstring > const &objectInstanceNames)=0
6.6
std::vector< FederateHandleSaveStatusPair > FederateHandleSaveStatusPairVector
Definition: Typedefs.h:60
virtual void stopRegistrationForObjectClass(ObjectClassHandle theClass)=0
5.11
virtual void attributeIsNotOwned(ObjectHandle theObject, AttributeHandle theAttribute)=0
supplied C1
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155
virtual void federationRestoreBegun()=0
4.18
virtual void federationSaved()=0
4.15
virtual void turnUpdatesOffForObjectInstance(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes)=0
6.24
This file provides an example derivation of the rti1516_2025::FederateAmbassador with NULL actions fo...
virtual void federationRestored()=0
4.32
Definition: VariableLengthData.h:28
virtual void timeConstrainedEnabled(const FedTime &theFederateTime)=0
8.6
virtual void federationSynchronized(std::wstring const &synchronizationPointLabel, FederateHandleSet const &failedToSyncSet)=0
4.18
virtual void attributeOwnershipUnavailable(ObjectInstanceHandle const &objectInstance, AttributeHandleSet const &attributes, VariableLengthData const &userSuppliedTag)=0
7.10
RestoreFailureReason
Definition: Enums.h:44
virtual void timeRegulationEnabled(const FedTime &theFederateTime)=0
! Time Management Services //!
virtual void timeAdvanceGrant(LogicalTime const &time)=0
8.14
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:44
virtual void turnInteractionsOn(InteractionClassHandle theHandle)=0
5.12
virtual void flushQueueGrant(LogicalTime const &time, LogicalTime const &optimisticTime)=0
8.13
std::set< FederateHandle > FederateHandleSet
Definition: Typedefs.h:32
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:34

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)