MAK RTIspy API Documentation for HLA 4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
FederateAmbassador.h
Go to the documentation of this file.
1 #pragma once
2 /***********************************************************************
3  The IEEE hereby grants a general, royalty-free license to copy, distribute,
4  display and make derivative works from this material, for all purposes,
5  provided that any use of the material contains the following
6  attribution: "Reprinted with permission from IEEE 1516.1(TM)-2025".
7  Should you require additional information, contact the Manager, Standards
8  Intellectual Property, IEEE Standards Association (stds-ipr@ieee.org).
9 ***********************************************************************/
10 
11 // This is a pure abstract interface that must be implemented by the
12 // federate to receive callbacks from the RTI.
13 
14 namespace rti1516_2025
15 {
16  class LogicalTime;
17 }
18 
19 #include <RTI/SpecificConfig.h>
20 #include <RTI/Exception.h>
21 #include <RTI/Typedefs.h>
22 #include <RTI/Enums.h>
23 
24 namespace rti1516_2025
25 {
27  {
28  protected:
30 
31  public:
32  virtual ~FederateAmbassador ()
33  noexcept = 0;
34 
36  // Federation Management Services //
38 
42  virtual void connectionLost(
43  std::wstring const & faultDescription) = 0;
44 
48  virtual void reportFederationExecutions(
49  FederationExecutionInformationVector const & report) = 0;
50 
54  virtual void reportFederationExecutionMembers(
55  std::wstring const & federationName,
57 
61  virtual void reportFederationExecutionDoesNotExist(
62  std::wstring const & federationName) = 0;
63 
67  virtual void federateResigned(
68  std::wstring const & reasonForResignDescription) = 0;
69 
74  std::wstring const & synchronizationPointLabel) = 0;
75 
80  std::wstring const & synchronizationPointLabel,
82 
86  virtual void announceSynchronizationPoint(
87  std::wstring const & synchronizationPointLabel,
88  VariableLengthData const & userSuppliedTag) = 0;
89 
93  virtual void federationSynchronized(
94  std::wstring const & synchronizationPointLabel,
95  FederateHandleSet const & failedToSyncSet) = 0;
96 
100  virtual void initiateFederateSave(
101  std::wstring const & label) = 0;
102 
106  virtual void initiateFederateSave(
107  std::wstring const & label,
108  LogicalTime const & time) = 0;
109 
113  virtual void federationSaved() = 0;
114 
118  virtual void federationNotSaved (
119  SaveFailureReason reason) = 0;
120 
124  virtual void federationSaveStatusResponse(
125  FederateHandleSaveStatusPairVector const & response) = 0;
126 
131  std::wstring const & label) = 0;
132 
136  virtual void requestFederationRestoreFailed(
137  std::wstring const & label) = 0;
138 
142  virtual void federationRestoreBegun() = 0;
143 
147  virtual void initiateFederateRestore(
148  std::wstring const & label,
149  std::wstring const & federateName,
150  FederateHandle const & postRestoreFederateHandle) = 0;
151 
155  virtual void federationRestored() = 0;
156 
160  virtual void federationNotRestored (
161  RestoreFailureReason reason) = 0;
162 
166  virtual void federationRestoreStatusResponse(
167  FederateRestoreStatusVector const & response) = 0;
168 
170  // Declaration Management Services //
172 
176  virtual void startRegistrationForObjectClass(
177  ObjectClassHandle const & objectClass) = 0;
178 
182  virtual void stopRegistrationForObjectClass(
183  ObjectClassHandle const & objectClass) = 0;
184 
188  virtual void turnInteractionsOn(
189  InteractionClassHandle const & interactionClass) = 0;
190 
194  virtual void turnInteractionsOff(
195  InteractionClassHandle const & interactionClass) = 0;
196 
198  // Object Management Services //
200 
204  virtual void objectInstanceNameReservationSucceeded(
205  std::wstring const & objectInstanceName) = 0;
206 
210  virtual void objectInstanceNameReservationFailed(
211  std::wstring const & objectInstanceName) = 0;
212 
216  virtual void multipleObjectInstanceNameReservationSucceeded(
217  std::set<std::wstring> const & objectInstanceNames) = 0;
218 
222  virtual void multipleObjectInstanceNameReservationFailed(
223  std::set<std::wstring> const & objectInstanceNames) = 0;
224 
225 
229  virtual void discoverObjectInstance(
230  ObjectInstanceHandle const & objectInstance,
231  ObjectClassHandle const & objectClass,
232  std::wstring const & objectInstanceName,
233  FederateHandle const & producingFederate) = 0;
234 
238  virtual void reflectAttributeValues(
239  ObjectInstanceHandle const & objectInstance,
240  AttributeHandleValueMap const & attributeValues,
241  VariableLengthData const & userSuppliedTag,
242  TransportationTypeHandle const & transportationType,
243  FederateHandle const & producingFederate,
244  RegionHandleSet const * optionalSentRegions) = 0;
245 
249  virtual void reflectAttributeValues(
250  ObjectInstanceHandle const & objectInstance,
251  AttributeHandleValueMap const & attributeValues,
252  VariableLengthData const & userSuppliedTag,
253  TransportationTypeHandle const & transportationType,
254  FederateHandle const & producingFederate,
255  RegionHandleSet const * optionalSentRegions,
256  LogicalTime const & time,
257  OrderType sentOrderType,
258  OrderType receivedOrderType,
259  MessageRetractionHandle const * optionalRetraction) = 0;
260 
264  virtual void receiveInteraction(
265  InteractionClassHandle const & interactionClass,
266  ParameterHandleValueMap const & parameterValues,
267  VariableLengthData const & userSuppliedTag,
268  TransportationTypeHandle const & transportationType,
269  FederateHandle const & producingFederate,
270  const RegionHandleSet * optionalSentRegions) = 0;
271 
275  virtual void receiveInteraction(
276  InteractionClassHandle const & interactionClass,
277  ParameterHandleValueMap const & parameterValues,
278  VariableLengthData const & userSuppliedTag,
279  TransportationTypeHandle const & transportationType,
280  FederateHandle const & producingFederate,
281  RegionHandleSet const * optionalSentRegions,
282  LogicalTime const & time,
283  OrderType sentOrderType,
284  OrderType receivedOrderType,
285  MessageRetractionHandle const * optionalRetraction) = 0;
286 
290  virtual void receiveDirectedInteraction(
291  InteractionClassHandle const & interactionClass,
292  ObjectInstanceHandle const & objectInstance,
293  ParameterHandleValueMap const & parameterValues,
294  VariableLengthData const & userSuppliedTag,
295  TransportationTypeHandle const & transportationType,
296  FederateHandle const & producingFederate) = 0;
297 
301  virtual void receiveDirectedInteraction(
302  InteractionClassHandle const & interactionClass,
303  ObjectInstanceHandle const & objectInstance,
304  ParameterHandleValueMap const & parameterValues,
305  VariableLengthData const & userSuppliedTag,
306  TransportationTypeHandle const & transportationType,
307  FederateHandle const & producingFederate,
308  LogicalTime const & time,
309  OrderType sentOrderType,
310  OrderType receivedOrderType,
311  MessageRetractionHandle const * optionalRetraction) = 0;
312 
316  virtual void removeObjectInstance(
317  ObjectInstanceHandle const & objectInstance,
318  VariableLengthData const & userSuppliedTag,
319  FederateHandle const & producingFederate) = 0;
320 
324  virtual void removeObjectInstance(
325  ObjectInstanceHandle const & objectInstance,
326  VariableLengthData const & userSuppliedTag,
327  FederateHandle const & producingFederate,
328  LogicalTime const & time,
329  OrderType sentOrderType,
330  OrderType receivedOrderType,
331  MessageRetractionHandle const * optionalRetraction) = 0;
332 
336  virtual void attributesInScope(
337  ObjectInstanceHandle const & objectInstance,
338  AttributeHandleSet const & attributes) = 0;
339 
343  virtual void attributesOutOfScope(
344  ObjectInstanceHandle const & objectInstance,
345  AttributeHandleSet const & attributes) = 0;
346 
350  virtual void provideAttributeValueUpdate(
351  ObjectInstanceHandle const & objectInstance,
352  AttributeHandleSet const & attributes,
353  VariableLengthData const & userSuppliedTag) = 0;
354 
358  virtual void turnUpdatesOnForObjectInstance(
359  ObjectInstanceHandle const & objectInstance,
360  AttributeHandleSet const & attributes) = 0;
361 
365  virtual void turnUpdatesOnForObjectInstance(
366  ObjectInstanceHandle const & objectInstance,
367  AttributeHandleSet const & attributes,
368  std::wstring const & updateRateDesignator) = 0;
369 
373  virtual void turnUpdatesOffForObjectInstance(
374  ObjectInstanceHandle const & objectInstance,
375  AttributeHandleSet const & attributes) = 0;
376 
380  virtual void confirmAttributeTransportationTypeChange(
381  ObjectInstanceHandle const & objectInstance,
382  AttributeHandleSet const & attributes,
383  TransportationTypeHandle const & transportationType) = 0;
384 
388  virtual void reportAttributeTransportationType(
389  ObjectInstanceHandle const & objectInstance,
390  AttributeHandle const & attribute,
391  TransportationTypeHandle const & transportationType) = 0;
392 
396  virtual void confirmInteractionTransportationTypeChange(
397  InteractionClassHandle const & interactionClass,
398  TransportationTypeHandle const & transportationType) = 0;
399 
403  virtual void reportInteractionTransportationType(
404  FederateHandle const & federate,
405  InteractionClassHandle const & interactionClass,
406  TransportationTypeHandle const & transportationType) = 0;
407 
408 
410  // Ownership Management Services //
412 
417  ObjectInstanceHandle const & objectInstance,
418  AttributeHandleSet const & offeredAttributes,
419  VariableLengthData const & userSuppliedTag) = 0;
420 
424  virtual void requestDivestitureConfirmation(
425  ObjectInstanceHandle const & objectInstance,
426  AttributeHandleSet const & releasedAttributes,
427  VariableLengthData const & userSuppliedTag) = 0;
428 
433  ObjectInstanceHandle const & objectInstance,
434  AttributeHandleSet const & securedAttributes,
435  VariableLengthData const & userSuppliedTag) = 0;
436 
440  virtual void attributeOwnershipUnavailable(
441  ObjectInstanceHandle const & objectInstance,
442  AttributeHandleSet const & attributes,
443  VariableLengthData const & userSuppliedTag) = 0;
444 
449  ObjectInstanceHandle const & objectInstance,
450  AttributeHandleSet const & candidateAttributes,
451  VariableLengthData const & userSuppliedTag) = 0;
452 
457  ObjectInstanceHandle const & objectInstance,
458  AttributeHandleSet const & attributes) = 0;
459 
463  virtual void informAttributeOwnership(
464  ObjectInstanceHandle const & objectInstance,
465  AttributeHandleSet const & attributes,
466  FederateHandle const & owner) = 0;
467 
471  virtual void attributeIsNotOwned (
472  ObjectInstanceHandle const & objectInstance,
473  AttributeHandleSet const & attributes) = 0;
474 
478  virtual void attributeIsOwnedByRTI (
479  ObjectInstanceHandle const & objectInstance,
480  AttributeHandleSet const & attributes) = 0;
481 
483  // Time Management Services //
485 
489  virtual void timeRegulationEnabled(
490  LogicalTime const & time) = 0;
491 
495  virtual void timeConstrainedEnabled(
496  LogicalTime const & time) = 0;
497 
501  virtual void flushQueueGrant(
502  LogicalTime const & time, LogicalTime const & optimisticTime) = 0;
503 
507  virtual void timeAdvanceGrant(
508  LogicalTime const & time) = 0;
509 
513  virtual void requestRetraction(
514  MessageRetractionHandle const & retraction) = 0;
515  };
516 }
517 
518 
Definition: LogicalTime.h:30
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:29
#define RTI_EXPORT
Definition: SpecificConfig.h:45
virtual void requestAttributeOwnershipRelease(ObjectHandle theObject, const AttributeHandleSet &candidateAttributes, const char *theTag)=0
7.10
std::vector< FederationExecutionInformation > FederationExecutionInformationVector
Definition: Typedefs.h:112
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 informAttributeOwnership(ObjectHandle theObject, AttributeHandle theAttribute, FederateHandle theOwner)=0
7.16
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 requestRetraction(EventRetractionHandle theHandle)=0
8.22
virtual ~FederateAmbassador()
Definition: fedAmbServ.h:394
SynchronizationPointFailureReason
Definition: Enums.h:92
virtual void synchronizationPointRegistrationFailed(const char *label)=0
supplied C4)
virtual void federationNotRestored()=0
virtual void attributesInScope(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.13
virtual void attributeOwnershipUnavailable(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
7.9
SaveFailureReason
Definition: Enums.h:63
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 synchronizationPointRegistrationSucceeded(const char *label)=0
RTI Parameter Passing Memory Conventions.
std::vector< FederationExecutionMemberInformation > FederationExecutionMemberInformationVector
Definition: Typedefs.h:129
virtual void initiateFederateSave(const char *label)=0
4.12
virtual void timeAdvanceGrant(const FedTime &theTime)=0
8.13
virtual void announceSynchronizationPoint(const char *label, const char *tag)=0
4.8
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 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
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
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:39
virtual void federationRestored()=0
4.21
virtual void provideAttributeValueUpdate(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.16
virtual void turnUpdatesOffForObjectInstance(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.18
virtual void requestAttributeOwnershipAssumption(ObjectHandle theObject, const AttributeHandleSet &offeredAttributes, const char *theTag)=0
! Ownership Management Services //!
This file contains enumerations used by the interface.
This file contains definitions that are used to isolate platform-specific elements of the API...
virtual void turnUpdatesOnForObjectInstance(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.17
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
virtual void federationRestoreBegun()=0
4.18
virtual void federationSaved()=0
4.15
Definition: VariableLengthData.h:28
virtual void timeConstrainedEnabled(const FedTime &theFederateTime)=0
8.6
RestoreFailureReason
Definition: Enums.h:44
virtual void timeRegulationEnabled(const FedTime &theFederateTime)=0
! Time Management Services //!
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:44
virtual void turnInteractionsOn(InteractionClassHandle theHandle)=0
5.12
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)