9 #ifndef handleCreatore_H_
10 #define handleCreatore_H_
19 #include <vlutil/vlFedTarget.h>
30 #define DEFINE_HANDLE_CLASS_FRIEND(HandleKind) \
32 class HandleKind##Friend \
35 HandleKind##Friend(); \
36 static rti1516e::HandleKind HandleKind(Dt##HandleKind handleValue); \
37 static rti1516e::HandleKind HandleKind( \
38 VariableLengthData const & encodedValue); \
39 static HandleKind##Implementation const* getImplementation( \
40 rti1516e::HandleKind const& handle); \
41 static HandleKind##Implementation* getImplementation( \
42 rti1516e::HandleKind& handle); \
44 inline HandleKind##Friend::HandleKind##Friend() \
47 inline rti1516e::HandleKind HandleKind##Friend::HandleKind( \
48 Dt##HandleKind handleValue) \
50 return rti1516e::HandleKind((HandleKind##Implementation*)handleValue); \
52 inline rti1516e::HandleKind HandleKind##Friend::HandleKind( \
53 VariableLengthData const & encodedValue) \
55 return rti1516e::HandleKind(encodedValue); \
57 inline HandleKind##Implementation const* \
58 HandleKind##Friend::getImplementation(rti1516e::HandleKind const& handle) \
60 return handle.getImplementation(); \
62 inline HandleKind##Implementation* \
63 HandleKind##Friend::getImplementation(rti1516e::HandleKind & handle) \
65 return handle.getImplementation(); \
68 inline rti1516e::HandleKind make##HandleKind(Dt##HandleKind handle) \
70 return HandleKind##Friend::HandleKind(handle); \
73 inline rti1516e::HandleKind make##HandleKind( \
74 VariableLengthData const & encodedValue) \
76 return HandleKind##Friend::HandleKind(encodedValue); \
79 inline Dt##HandleKind make##HandleKind##Impl( \
80 const rti1516e::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 rti1516e::HandleKind##Set const & rtiHandleSet, \
91 Dt##HandleKind##Set & internHandleSet) \
93 for (rti1516e::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 rti1516e::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 rti1516e::MessageRetractionHandle MessageRetractionHandle(
140 static rti1516e::MessageRetractionHandle MessageRetractionHandle(
141 VariableLengthData
const & encodedValue);
142 static MessageRetractionHandleImplementation
const* getImplementation(
143 rti1516e::MessageRetractionHandle
const& handle);
144 static MessageRetractionHandleImplementation* getImplementation(
145 rti1516e::MessageRetractionHandle& handle);
147 inline MessageRetractionHandleFriend::MessageRetractionHandleFriend()
150 inline rti1516e::MessageRetractionHandle
151 MessageRetractionHandleFriend::MessageRetractionHandle(
154 return rti1516e::MessageRetractionHandle(
155 (MessageRetractionHandleImplementation*)&handleValue);
157 inline rti1516e::MessageRetractionHandle
158 MessageRetractionHandleFriend::MessageRetractionHandle(
159 VariableLengthData
const & encodedValue)
161 return rti1516e::MessageRetractionHandle(encodedValue);
163 inline MessageRetractionHandleImplementation
const *
164 MessageRetractionHandleFriend::getImplementation(
165 rti1516e::MessageRetractionHandle
const& handle)
167 return handle.getImplementation();
169 inline MessageRetractionHandleImplementation*
170 MessageRetractionHandleFriend::getImplementation(
171 rti1516e::MessageRetractionHandle & handle)
173 return handle.getImplementation();
176 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
179 return MessageRetractionHandleFriend::MessageRetractionHandle(handle);
182 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
183 VariableLengthData
const & encodedValue)
185 return MessageRetractionHandleFriend::MessageRetractionHandle(encodedValue);
189 rti1516e::MessageRetractionHandle handle)
191 return MessageRetractionHandleFriend::getImplementation(handle)->value();
194 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
198 return makeMessageRetractionHandle(handleImpl);
203 return (order ==
RECEIVE) ? MAKRti::DtReceive : MAKRti::DtTimestamp;
208 return (transport ==
RELIABLE) ? MAKRti::DtReliable : MAKRti::DtBest_Effort;
This file contains the designator or handle classes used by the interface.
DtHandle DtFederateHandle
Definition: internalTypes.h:29
This file contains the standard RTI types that are defined in namespace rti1516.
OrderType
Definition: Enums.h:27
Definition: internalTypes.h:63
TransportationType
Definition: Enums.h:97
The declaration of internal types.