MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simpleFederate.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
8 
10 
11 #include <RTI/Typedefs.h>
12 #include <RTI/RtiConfiguration.h>
13 
14 #include <string>
15 #include <vector>
16 
17 class SimpleFederateAmbassador;
18 namespace rti1516_2025
19 {
20  class RTIambassador;
21 };
22 
23 // Map between strings and handles
24 typedef std::map<std::wstring, rti1516_2025::AttributeHandle> DtAttrNameHandleMap;
25 typedef std::map<rti1516_2025::AttributeHandle, std::wstring> DtAttrHandleNameMap;
26 typedef std::map<std::wstring, rti1516_2025::ParameterHandle> DtParamNameHandleMap;
27 typedef std::map<rti1516_2025::ParameterHandle, std::wstring> DtParamHandleNameMap;
28 
29 // Map between strings and parameter handles
30 typedef std::map<std::wstring, rti1516_2025::ParameterHandle> DtParamNameHandleMap;
31 
33 {
34  Configuration();
35 
36  void validateFederateType();
37 
38  void print();
39 
40  std::wstring federationName;
41  std::wstring federateName;
42  std::wstring federateType;
43  std::vector<std::wstring> fomModules;
44  rti1516_2025::RtiConfiguration rtiConfiguration;
45  std::wstring plainTextPassword;
48  bool useMom;
49 
50  static const wchar_t* theAircraftType;
51  static const wchar_t* theGroundVehicleType;
52 };
53 
55 class DtSimpleData
56 {
57 public:
58 
59  DtSimpleData();
60 
61  void clear();
62 
69 
70  rti1516_2025::FederationExecutionInformationVector myReportedFederationExecutions;
71 
72  std::map<rti1516_2025::ObjectClassHandle, std::wstring> myObjectClassMap;
73  std::map<rti1516_2025::ObjectInstanceHandle, std::wstring> myObjectInstanceNameMap;
74  std::map<rti1516_2025::ObjectInstanceHandle, rti1516_2025::ObjectClassHandle> myObjectInstanceClassMap;
75  std::map<rti1516_2025::InteractionClassHandle, std::wstring> myInteractionClassMap;
76 
77  rti1516_2025::TransportationTypeHandle myBestEffortTransportationTypeHandle;
78  rti1516_2025::TransportationTypeHandle myReliableTransportationTypeHandle;
79 
80  std::set<rti1516_2025::ObjectInstanceHandle> myDiscoveredObjects;
81 
82  rti1516_2025::RTIambassador* myRtiAmbassador;
83 };
84 
85 
88 {
89 
90 public:
91 
93  SimpleFederate(const Configuration& configuration);
94 
97 
98  void doSleep(double seconds);
99 
101  bool isJoined();
102 
106  void tick(double approximateMinimumTimeInSeconds, double approximateMaximumTimeInSeconds);
107 
109  void clear();
110 
113  bool connect();
114 
117  void disconnect();
118 
121  void listFederations();
122 
125  void createFedEx();
126 
129  bool joinFedEx();
130 
133  void resignAndDestroy();
134 
139 
143 
145  { return myAmbData; }
146 
147  rti1516_2025::RTIambassador* rtiAmb()
148  { return myRtiAmbassador.get(); }
149 
150 protected:
151 
152  void evokeMultipleCallbacks(double approximateMinimumTimeInSeconds, double approximateMaximumTimeInSeconds);
153 
154 protected:
155 
156  std::unique_ptr<rti1516_2025::RTIambassador> myRtiAmbassador;
162 
163  // Data shared between federate and federate ambassador
165 
166  // The federate handle
167  rti1516_2025::FederateHandle myFederateHandle;
168 
170 
171  // The object class name
172  std::wstring myObjectClassName;
173 
174 
175  // The interaction class name
177 
178  // The object class handle (to be retrieved from RTI).
179  rti1516_2025::ObjectClassHandle myObjectClassHandle;
180  rti1516_2025::ObjectClassHandle myBaseObjectClassHandle;
181  rti1516_2025::ObjectClassHandle myAirObjectClassHandle;
182  rti1516_2025::ObjectClassHandle myGroundObjectClassHandle;
183 
184  // The interaction class handle (to be retrieved from RTI).
185  rti1516_2025::InteractionClassHandle myInteractionClassHandle;
186 
187 
188  // Map between strings and attribute handles
190 
191  // Map between strings and parameter handles
193 
194  rti1516_2025::ObjectInstanceHandle myObjectHandle;
195  rti1516_2025::AttributeHandle myPrivilegeToDeleteHandle;
200 
201 };
202 
bool myReportFederationExecutionMembersReceived
Definition: simpleFederate.h:64
Simple federate actions.
Definition: simpleFederate.h:87
DtSimpleData & ambData()
Definition: simpleFederate.h:144
std::map< std::string, RTI::AttributeHandle > DtAttrNameHandleMap
Definition: simpleDDMSimple13.h:25
Data for interacting with the federate ambassador.
Definition: rtiSimpleFedAmb13.h:15
long myTickCount
Definition: simpleFederate.h:159
std::map< rti1516_2025::ParameterHandle, std::wstring > DtParamHandleNameMap
Definition: simpleFederate.h:27
rti1516_2025::InteractionClassHandle myInteractionClassHandle
Definition: simpleFederate.h:185
std::set< rti1516_2025::ObjectInstanceHandle > myDiscoveredObjects
Definition: simpleFederate.h:80
rti1516_2025::ObjectClassHandle myGroundObjectClassHandle
Definition: simpleFederate.h:182
bool connect()
Connect.
Basic federate ambassador service callback implementation.
Definition: rtiSimpleFedAmb13.h:35
rti1516_2025::FederationExecutionInformationVector myReportedFederationExecutions
Definition: simpleFederate.h:70
rti1516_2025::AttributeHandle myPrivilegeToDeleteHandle
Definition: simpleFederate.h:195
void validateFederateType()
void doSleep(double seconds)
rti1516_2025::AttributeHandleSet myBaseEntityAttributeSet
Definition: simpleFederate.h:197
rti1516_2025::AttributeHandleValueMap myAttributeValues
Definition: simpleFederate.h:160
std::vector< std::wstring > fomModules
Definition: simpleFederate.h:43
DtAttrNameHandleMap myAttrNameHandleMap
Definition: simpleFederate.h:189
rti1516_2025::AttributeHandleSet myAttrHandles
Definition: simpleFederate.h:196
void clear()
Definition: rtiSimpleFedAmb13.h:27
bool joinFedEx()
Join the federation execution.
bool publishSubscribeInteraction()
Publish and Subscribe to an interaction class.
std::wstring federateType
Definition: simpleFederate.h:42
rti1516_2025::AttributeHandleSet myAirAttributeSet
Definition: simpleFederate.h:199
void listFederations()
List the federation executions.
Configuration myConfiguration
Definition: simpleFederate.h:169
std::map< rti1516_2025::AttributeHandle, std::wstring > DtAttrHandleNameMap
Definition: simpleFederate.h:25
std::map< rti1516_2025::ObjectClassHandle, std::wstring > myObjectClassMap
Definition: simpleFederate.h:72
static const wchar_t * theGroundVehicleType
Definition: simpleFederate.h:51
CallbackModel
Definition: datatypes.pb.h:280
Definition: simpleFederate.h:32
rti1516_2025::CallbackModel myCallbackModel
Definition: simpleFederate.h:158
rti1516_2025::RtiConfiguration rtiConfiguration
Definition: simpleFederate.h:44
rti1516_2025::TransportationTypeHandle myBestEffortTransportationTypeHandle
Definition: simpleFederate.h:77
rti1516_2025::ObjectClassHandle myAirObjectClassHandle
Definition: simpleFederate.h:181
rti1516_2025::ObjectClassHandle myObjectClassHandle
Definition: simpleFederate.h:179
std::unique_ptr< rti1516_2025::RTIambassador > myRtiAmbassador
Definition: simpleFederate.h:156
std::map< rti1516_2025::ObjectInstanceHandle, rti1516_2025::ObjectClassHandle > myObjectInstanceClassMap
Definition: simpleFederate.h:74
void disconnect()
Disconnect.
This file contains the standard RTI types that are defined in namespace rti1516.
std::map< rti1516_2025::ObjectInstanceHandle, std::wstring > myObjectInstanceNameMap
Definition: simpleFederate.h:73
bool myFederateResigned
Definition: simpleFederate.h:66
void clear()
Clear data from previous connect/create/join.
std::wstring federationName
Definition: simpleFederate.h:40
bool publishSubscribeAndRegisterObject()
Publish and subscribe the object class attributes.
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:41
DtSimpleData()
Definition: rtiSimpleFedAmb13.h:22
rti1516_2025::RTIambassador * rtiAmb()
Definition: simpleFederate.h:147
rti1516_2025::RTIambassador * myRtiAmbassador
Definition: simpleFederate.h:82
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:36
DtSimpleData myAmbData
Definition: simpleFederate.h:164
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:27
SimpleFederate(const Configuration &configuration)
Constructor.
bool myNameReservationReturned
Definition: simpleFederate.h:67
std::wstring myObjectClassName
Definition: simpleFederate.h:172
std::wstring myInteractionClassName
Definition: simpleFederate.h:176
bool myReportFederationsReceived
Definition: simpleFederate.h:63
DtParamNameHandleMap myParamNameHandleMap
Definition: simpleFederate.h:192
bool myNameReservationSucceeded
Definition: simpleFederate.h:68
std::wstring plainTextPassword
Definition: simpleFederate.h:45
void resignAndDestroy()
Resign and destroy the federation execution.
rti1516_2025::TransportationTypeHandle myReliableTransportationTypeHandle
Definition: simpleFederate.h:78
bool subscribeUniversally
Definition: simpleFederate.h:46
~SimpleFederate()
Destructor.
rti1516_2025::AttributeHandleSet myGroundAttributeSet
Definition: simpleFederate.h:198
void tick(double approximateMinimumTimeInSeconds, double approximateMaximumTimeInSeconds)
Update and send interactions (periodically) and evoke callbacks Indicate the minimum and maximum time...
rti1516_2025::ObjectInstanceHandle myObjectHandle
Definition: simpleFederate.h:194
std::map< std::string, RTI::ParameterHandle > DtParamNameHandleMap
Definition: simpleDDMSimple13.h:27
std::wstring federateName
Definition: simpleFederate.h:41
MyFederateAmbassador myFederateAmbassador
Definition: simpleFederate.h:157
bool isJoined()
Return true if federate is joined to the federation; otherwise, false.
void createFedEx()
Create the federation execution.
std::map< rti1516_2025::InteractionClassHandle, std::wstring > myInteractionClassMap
Definition: simpleFederate.h:75
bool useMom
Definition: simpleFederate.h:48
rti1516_2025::FederateHandle myFederateHandle
Definition: simpleFederate.h:167
static const wchar_t * theAircraftType
Definition: simpleFederate.h:50
rti1516_2025::ParameterHandleValueMap myParameterValues
Definition: simpleFederate.h:161
rti1516_2025::CallbackModel callbackModel
Definition: simpleFederate.h:47
void evokeMultipleCallbacks(double approximateMinimumTimeInSeconds, double approximateMaximumTimeInSeconds)
rti1516_2025::ObjectClassHandle myBaseObjectClassHandle
Definition: simpleFederate.h:180
bool myReportFederationExecutionDoesNotExistReceived
Definition: simpleFederate.h:65

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)