9 #ifndef handleCreatore_H_
10 #define handleCreatore_H_
19 #include <vlutil/vlFedTarget.h>
20 #include <RTI/Handle.h>
21 #include <RTI/Typedefs.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* \
40 getImplementation(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( \
51 (HandleKind##Implementation*)handleValue); \
53 inline rti1516e::HandleKind HandleKind##Friend::HandleKind( \
54 VariableLengthData const & encodedValue) \
56 return rti1516e::HandleKind(encodedValue); \
58 inline HandleKind##Implementation const * \
59 HandleKind##Friend::getImplementation(rti1516e::HandleKind const& handle) \
61 return handle.getImplementation(); \
63 inline HandleKind##Implementation* \
64 HandleKind##Friend::getImplementation(rti1516e::HandleKind & handle) \
66 return handle.getImplementation(); \
68 inline rti1516e::HandleKind make##HandleKind(Dt##HandleKind handle) \
70 return HandleKind##Friend::HandleKind(handle); \
72 inline rti1516e::HandleKind make##HandleKind( \
73 VariableLengthData const & encodedValue) \
75 return HandleKind##Friend::HandleKind(encodedValue); \
77 inline Dt##HandleKind make##HandleKind##Impl(const rti1516e::HandleKind& handle) \
79 return (Dt##HandleKind)HandleKind##Friend::getImplementation(handle); \
84 #define DEFINE_FILL_HANDLE_SET_IMPL(HandleKind) \
85 inline void fill##HandleKind##SetImpl( \
86 rti1516e::HandleKind##Set const & rtiHandleSet, \
87 Dt##HandleKind##Set & internHandleSet) \
89 for (rti1516e::HandleKind##Set::const_iterator iter = rtiHandleSet.begin(); \
90 iter != rtiHandleSet.end(); \
93 internHandleSet.insert(make##HandleKind##Impl(*iter)); \
99 #define DEFINE_FILL_HANDLE_SET(HandleKind) \
100 inline void fill##HandleKind##Set( \
101 Dt##HandleKind##Set const & internHandleSet, \
102 rti1516e::HandleKind##Set & rtiHandleSet) \
104 for (Dt##HandleKind##Set::const_iterator iter = internHandleSet.begin(); \
105 iter != internHandleSet.end(); \
108 rtiHandleSet.insert(make##HandleKind(*iter)); \
115 DEFINE_HANDLE_CLASS_FRIEND(ObjectInstanceHandle)
119 DEFINE_HANDLE_CLASS_FRIEND(RegionHandle)
123 DEFINE_FILL_HANDLE_SET(RegionHandle)
124 DEFINE_FILL_HANDLE_SET_IMPL(RegionHandle)
129 class MessageRetractionHandleFriend
132 MessageRetractionHandleFriend();
133 static rti1516e::MessageRetractionHandle MessageRetractionHandle(
135 static rti1516e::MessageRetractionHandle MessageRetractionHandle(
136 VariableLengthData
const & encodedValue);
137 static MessageRetractionHandleImplementation
const*
138 getImplementation(rti1516e::MessageRetractionHandle
const& handle);
139 static MessageRetractionHandleImplementation* getImplementation(
140 rti1516e::MessageRetractionHandle& handle);
142 inline MessageRetractionHandleFriend::MessageRetractionHandleFriend()
145 inline rti1516e::MessageRetractionHandle
146 MessageRetractionHandleFriend::MessageRetractionHandle(
149 return rti1516e::MessageRetractionHandle(
150 (MessageRetractionHandleImplementation*)&handleValue);
152 inline rti1516e::MessageRetractionHandle
153 MessageRetractionHandleFriend::MessageRetractionHandle(
154 VariableLengthData
const & encodedValue)
156 return rti1516e::MessageRetractionHandle(encodedValue);
158 inline MessageRetractionHandleImplementation
const *
159 MessageRetractionHandleFriend::getImplementation(
160 rti1516e::MessageRetractionHandle
const& handle)
162 return handle.getImplementation();
164 inline MessageRetractionHandleImplementation*
165 MessageRetractionHandleFriend::getImplementation(
166 rti1516e::MessageRetractionHandle & handle)
168 return handle.getImplementation();
170 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
173 return MessageRetractionHandleFriend::MessageRetractionHandle(handle);
176 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
177 VariableLengthData
const & encodedValue)
179 return MessageRetractionHandleFriend::MessageRetractionHandle(encodedValue);
183 rti1516e::MessageRetractionHandle handle)
185 return MessageRetractionHandleFriend::getImplementation(handle)->value();
188 inline rti1516e::MessageRetractionHandle makeMessageRetractionHandle(
192 return makeMessageRetractionHandle(handleImpl);
197 return (order == RECEIVE) ? MAKRti::DtReceive : MAKRti::DtTimestamp;
200 inline MAKRti::DtTransportType makeTransportTypeImpl(rti1516e::TransportationType transport)
202 return (transport == RELIABLE) ? MAKRti::DtReliable : MAKRti::DtBest_Effort;
207 return (order == MAKRti::DtReceive) ? RECEIVE : TIMESTAMP;
210 inline rti1516e::TransportationType makeTransportType(MAKRti::DtTransportType transport)
212 return (transport == MAKRti::DtReliable) ? RELIABLE : BEST_EFFORT;