9 #ifndef handleCreator_H_
10 #define handleCreator_H_
19 #include <vlutil/vlFedTarget.h>
30 #define DEFINE_HANDLE_CLASS_FRIEND(HandleKind) \
32 class HandleKind##Friend \
35 HandleKind##Friend(); \
36 static rti1516::HandleKind HandleKind(Dt##HandleKind handleValue); \
37 static rti1516::HandleKind HandleKind( \
38 VariableLengthData const & encodedValue); \
39 static HandleKind##Implementation const* getImplementation( \
40 rti1516::HandleKind const& handle); \
41 static HandleKind##Implementation* getImplementation( \
42 rti1516::HandleKind& handle); \
44 inline HandleKind##Friend::HandleKind##Friend() \
47 inline rti1516::HandleKind HandleKind##Friend::HandleKind( \
48 Dt##HandleKind handleValue) \
50 return rti1516::HandleKind( \
51 (HandleKind##Implementation*)handleValue); \
53 inline rti1516::HandleKind HandleKind##Friend::HandleKind( \
54 VariableLengthData const & encodedValue) \
56 return rti1516::HandleKind(encodedValue); \
58 inline HandleKind##Implementation const * \
59 HandleKind##Friend::getImplementation(rti1516::HandleKind const& handle) \
61 return handle.getImplementation(); \
63 inline HandleKind##Implementation* \
64 HandleKind##Friend::getImplementation(rti1516::HandleKind & handle) \
66 return handle.getImplementation(); \
69 inline rti1516::HandleKind make##HandleKind(Dt##HandleKind handle) \
71 return HandleKind##Friend::HandleKind(handle); \
74 inline rti1516::HandleKind make##HandleKind( \
75 VariableLengthData const & encodedValue) \
77 return HandleKind##Friend::HandleKind(encodedValue); \
80 inline Dt##HandleKind make##HandleKind##Impl(rti1516::HandleKind handle) \
82 return (Dt##HandleKind)HandleKind##Friend::getImplementation(handle); \
87 #define DEFINE_FILL_HANDLE_SET_IMPL(HandleKind) \
89 inline void fill##HandleKind##SetImpl( \
90 rti1516::HandleKind##Set const & rtiHandleSet, \
91 Dt##HandleKind##Set & internHandleSet) \
93 for (rti1516::HandleKind##Set::const_iterator iter = rtiHandleSet.begin(); \
94 iter != rtiHandleSet.end(); \
97 internHandleSet.insert(make##HandleKind##Impl(*iter)); \
103 #define DEFINE_FILL_HANDLE_SET(HandleKind) \
105 inline void fill##HandleKind##Set( \
106 Dt##HandleKind##Set const & internHandleSet, \
107 rti1516::HandleKind##Set & rtiHandleSet) \
109 for (Dt##HandleKind##Set::const_iterator iter = internHandleSet.begin(); \
110 iter != internHandleSet.end(); \
113 rtiHandleSet.insert(make##HandleKind(*iter)); \
117 DEFINE_HANDLE_CLASS_FRIEND(FederateHandle)
118 DEFINE_HANDLE_CLASS_FRIEND(ObjectClassHandle)
119 DEFINE_HANDLE_CLASS_FRIEND(InteractionClassHandle)
120 DEFINE_HANDLE_CLASS_FRIEND(ObjectInstanceHandle)
121 DEFINE_HANDLE_CLASS_FRIEND(AttributeHandle)
122 DEFINE_HANDLE_CLASS_FRIEND(ParameterHandle)
123 DEFINE_HANDLE_CLASS_FRIEND(DimensionHandle)
124 DEFINE_HANDLE_CLASS_FRIEND(RegionHandle)
126 DEFINE_FILL_HANDLE_SET(DimensionHandle)
127 DEFINE_FILL_HANDLE_SET_IMPL(DimensionHandle)
128 DEFINE_FILL_HANDLE_SET(RegionHandle)
129 DEFINE_FILL_HANDLE_SET_IMPL(RegionHandle)
134 class MessageRetractionHandleFriend
137 MessageRetractionHandleFriend();
138 static rti1516::MessageRetractionHandle MessageRetractionHandle(
140 static rti1516::MessageRetractionHandle MessageRetractionHandle(
141 VariableLengthData
const & encodedValue);
142 static MessageRetractionHandleImplementation
const* getImplementation(
143 rti1516::MessageRetractionHandle
const& handle);
144 static MessageRetractionHandleImplementation* getImplementation(
145 rti1516::MessageRetractionHandle& handle);
147 inline MessageRetractionHandleFriend::MessageRetractionHandleFriend()
150 inline rti1516::MessageRetractionHandle
151 MessageRetractionHandleFriend::MessageRetractionHandle(
154 return rti1516::MessageRetractionHandle(
155 (MessageRetractionHandleImplementation*)&handleValue);
157 inline rti1516::MessageRetractionHandle
158 MessageRetractionHandleFriend::MessageRetractionHandle(
159 VariableLengthData
const & encodedValue)
161 return rti1516::MessageRetractionHandle(encodedValue);
163 inline MessageRetractionHandleImplementation
const *
164 MessageRetractionHandleFriend::getImplementation(
165 rti1516::MessageRetractionHandle
const& handle)
167 return handle.getImplementation();
169 inline MessageRetractionHandleImplementation*
170 MessageRetractionHandleFriend::getImplementation(
171 rti1516::MessageRetractionHandle & handle)
173 return handle.getImplementation();
176 inline rti1516::MessageRetractionHandle makeMessageRetractionHandle(
179 return MessageRetractionHandleFriend::MessageRetractionHandle(handle);
182 inline rti1516::MessageRetractionHandle makeMessageRetractionHandle(
183 VariableLengthData
const & encodedValue)
185 return MessageRetractionHandleFriend::MessageRetractionHandle(encodedValue);
189 rti1516::MessageRetractionHandle handle)
191 return MessageRetractionHandleFriend::getImplementation(handle)->value();
194 inline rti1516::MessageRetractionHandle makeMessageRetractionHandle(
198 return makeMessageRetractionHandle(handleImpl);
203 return (order ==
RECEIVE) ? MAKRti::DtReceive : MAKRti::DtTimestamp;
208 return (transport ==
RELIABLE) ? MAKRti::DtReliable : MAKRti::DtBest_Effort;
223 #elif defined(DtIFSPEC1516E)
227 #include <vlutil/vlFedTarget.h>
238 #define DEFINE_HANDLE_CLASS_FRIEND(HandleKind) \
240 class HandleKind##Friend \
243 HandleKind##Friend(); \
244 static rti1516e::HandleKind HandleKind(Dt##HandleKind handleValue); \
245 static rti1516e::HandleKind HandleKind( \
246 VariableLengthData const & encodedValue); \
247 static HandleKind##Implementation const* getImplementation( \
248 rti1516e::HandleKind const& handle); \
249 static HandleKind##Implementation* getImplementation( \
250 rti1516e::HandleKind& handle); \
252 inline HandleKind##Friend::HandleKind##Friend() \
255 inline rti1516e::HandleKind HandleKind##Friend::HandleKind( \
256 Dt##HandleKind handleValue) \
258 return rti1516e::HandleKind((HandleKind##Implementation*)handleValue); \
260 inline rti1516e::HandleKind HandleKind##Friend::HandleKind( \
261 VariableLengthData const & encodedValue) \
263 return rti1516e::HandleKind(encodedValue); \
265 inline HandleKind##Implementation const * \
266 HandleKind##Friend::getImplementation(rti1516e::HandleKind const& handle) \
268 return handle.getImplementation(); \
270 inline HandleKind##Implementation* \
271 HandleKind##Friend::getImplementation(rti1516e::HandleKind & handle) \
273 return handle.getImplementation(); \
276 inline rti1516e::HandleKind make##HandleKind(Dt##HandleKind handle) \
278 return HandleKind##Friend::HandleKind(handle); \
281 inline rti1516e::HandleKind make##HandleKind( \
282 VariableLengthData const & encodedValue) \
284 return HandleKind##Friend::HandleKind(encodedValue); \
287 inline Dt##HandleKind make##HandleKind##Impl(const rti1516e::HandleKind& handle)\
289 return (Dt##HandleKind)HandleKind##Friend::getImplementation(handle); \
294 #define DEFINE_FILL_HANDLE_SET_IMPL(HandleKind) \
296 inline void fill##HandleKind##SetImpl( \
297 rti1516e::HandleKind##Set const & rtiHandleSet, \
298 Dt##HandleKind##Set & internHandleSet) \
300 for (rti1516e::HandleKind##Set::const_iterator iter = rtiHandleSet.begin();\
301 iter != rtiHandleSet.end(); \
304 internHandleSet.insert(make##HandleKind##Impl(*iter)); \
310 #define DEFINE_FILL_HANDLE_SET(HandleKind) \
312 inline void fill##HandleKind##Set( \
313 Dt##HandleKind##Set const & internHandleSet, \
314 rti1516e::HandleKind##Set & rtiHandleSet) \
316 for (Dt##HandleKind##Set::const_iterator iter = internHandleSet.begin(); \
317 iter != internHandleSet.end(); \
320 rtiHandleSet.insert(make##HandleKind(*iter)); \
324 DEFINE_HANDLE_CLASS_FRIEND(FederateHandle)
325 DEFINE_HANDLE_CLASS_FRIEND(ObjectClassHandle)
326 DEFINE_HANDLE_CLASS_FRIEND(InteractionClassHandle)
327 DEFINE_HANDLE_CLASS_FRIEND(ObjectInstanceHandle)
328 DEFINE_HANDLE_CLASS_FRIEND(AttributeHandle)
329 DEFINE_HANDLE_CLASS_FRIEND(ParameterHandle)
330 DEFINE_HANDLE_CLASS_FRIEND(DimensionHandle)
331 DEFINE_HANDLE_CLASS_FRIEND(RegionHandle)
333 DEFINE_FILL_HANDLE_SET(DimensionHandle)
334 DEFINE_FILL_HANDLE_SET_IMPL(DimensionHandle)
335 DEFINE_FILL_HANDLE_SET(RegionHandle)
336 DEFINE_FILL_HANDLE_SET_IMPL(RegionHandle)
341 class MessageRetractionHandleFriend
344 MessageRetractionHandleFriend();
345 static rti1516e::MessageRetractionHandle MessageRetractionHandle(
347 static rti1516e::MessageRetractionHandle MessageRetractionHandle(
348 VariableLengthData
const & encodedValue);
349 static MessageRetractionHandleImplementation
const* getImplementation(
350 rti1516e::MessageRetractionHandle
const& handle);
351 static MessageRetractionHandleImplementation* getImplementation(
352 rti1516e::MessageRetractionHandle& handle);
354 inline MessageRetractionHandleFriend::MessageRetractionHandleFriend()
357 inline rti1516e::MessageRetractionHandle
358 MessageRetractionHandleFriend::MessageRetractionHandle(
361 return rti1516e::MessageRetractionHandle(
362 (MessageRetractionHandleImplementation*)&handleValue);
364 inline rti1516e::MessageRetractionHandle
365 MessageRetractionHandleFriend::MessageRetractionHandle(
366 VariableLengthData
const & encodedValue)
368 return rti1516e::MessageRetractionHandle(encodedValue);
370 inline MessageRetractionHandleImplementation
const *
371 MessageRetractionHandleFriend::getImplementation(
372 rti1516e::MessageRetractionHandle
const& handle)
374 return handle.getImplementation();
376 inline MessageRetractionHandleImplementation*
377 MessageRetractionHandleFriend::getImplementation(
378 rti1516e::MessageRetractionHandle & handle)
380 return handle.getImplementation();
383 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
386 return MessageRetractionHandleFriend::MessageRetractionHandle(handle);
389 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
390 VariableLengthData
const & encodedValue)
392 return MessageRetractionHandleFriend::MessageRetractionHandle(encodedValue);
396 rti1516e::MessageRetractionHandle handle)
398 return MessageRetractionHandleFriend::getImplementation(handle)->value();
401 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
405 return makeMessageRetractionHandle(handleImpl);
410 return (order ==
RECEIVE) ? MAKRti::DtReceive : MAKRti::DtTimestamp;
415 return (transport ==
RELIABLE) ? MAKRti::DtReliable : MAKRti::DtBest_Effort;
This file contains the designator or handle classes used by the interface.
OrderType
Definition: Enums.h:13
DtHandle DtFederateHandle
Definition: internalTypes.h:29
This file contains the standard RTI types that are defined in namespace rti1516.
Definition: internalTypes.h:63
The declaration of internal types.
TransportationType
Definition: Enums.h:84