9 #ifndef DtAssistantTemplateMsg_H_
10 #define DtAssistantTemplateMsg_H_
71 virtual int minSize()
const;
99 static const char theName[] =
"Header";
139 #define DtASTNT_DECLARE_STANDARD_MSG_METHODS(ClassName) \
141 typedef void (*ClassName##Cb)(const ClassName& msg, void* usr); \
142 ClassName(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); \
143 ClassName(const DtNetAssistantMsgHeader* netHeader, \
144 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); \
145 virtual ~ClassName(); \
146 void addAllParameters(); \
147 virtual DtAssistantMsg* clone(bool copy = true) const; \
148 static DtAssistantMsg* create(const DtNetAssistantMsgHeader* initial, \
149 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); \
150 static DtAssistantMsg* create( \
151 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); \
153 ClassName* self() const \
154 { return const_cast<ClassName*>( this ); }
159 #define DtASTNT_DECLARE_PEER_CALLBACK_METHODS(ClassName) \
161 static void addCallback(DtRtiAssistantPeer* peer, \
162 ClassName##Cb cb, void* usr); \
163 static void removeCallback(DtRtiAssistantPeer* peer, \
164 ClassName##Cb cb, void* usr);
169 #define DtASTNT_DECLARE_SERVER_CALLBACK_METHODS(ClassName) \
171 static void addCallback(DtRtiAssistantServer* srvr, \
172 ClassName##Cb cb, void* usr); \
173 static void removeCallback(DtRtiAssistantServer* srvr, \
174 ClassName##Cb cb, void* usr);
179 #define DtASTNT_DECLARE_CLIENT_CALLBACK_METHODS(ClassName) \
181 static void addCallback(DtRtiAssistantClient* client, \
182 ClassName##Cb cb, void* usr); \
183 static void removeCallback(DtRtiAssistantClient* client, \
184 ClassName##Cb cb, void* usr);
189 #define DtASTNT_DECLARE_QUEUE_CALLBACK_METHODS(ClassName) \
191 static void addCallback(DtAssistantMsgQueue* qu, \
192 ClassName##Cb cb, void* usr); \
193 static void removeCallback(DtAssistantMsgQueue* qu, \
194 ClassName##Cb cb, void* usr);
198 #define DtASTNT_DEFINE_STANDARD_MSG_METHODS(ClassName) \
199 ClassName::ClassName(DtBufferPtr buffer) \
200 : DtAssistantTemplateMsg(ClassName##Kind) \
202 addAllParameters(); \
203 initAssistantMsg(minSize(), internalMsgKind(), buffer); \
205 ClassName::ClassName(const DtNetAssistantMsgHeader* netHdr, \
206 DtBufferPtr buffer) \
207 : DtAssistantTemplateMsg(ClassName##Kind) \
209 addAllParameters(); \
210 initAssistantMsg(netHdr, buffer); \
212 ClassName::~ClassName() {} \
213 DtAssistantMsg* ClassName::clone(bool copy) const \
217 return new ClassName(this->netHeader()); \
221 return new ClassName(); \
224 DtAssistantMsg* ClassName::create(DtBufferPtr buffer) \
226 return new ClassName(buffer); \
228 DtAssistantMsg* ClassName::create(const DtNetAssistantMsgHeader* initial,\
229 DtBufferPtr buffer) \
231 return new ClassName(initial, buffer); \
236 #define DtASTNT_DEFINE_PEER_CALLBACK_METHODS(ClassName) \
237 void ClassName::addCallback(DtRtiAssistantPeer* conn, \
238 ClassName##Cb cb, void* usr) \
240 conn->addMsgCallback(ClassName##Kind, \
241 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
243 void ClassName::removeCallback(DtRtiAssistantPeer* conn, \
244 ClassName##Cb cb, void* usr) \
246 conn->removeMsgCallback(ClassName##Kind, \
247 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
252 #define DtASTNT_DEFINE_SERVER_CALLBACK_METHODS(ClassName) \
253 void ClassName::addCallback(DtRtiAssistantServer* conn, \
254 ClassName##Cb cb, void* usr) \
256 conn->addMsgCallback(ClassName##Kind, \
257 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
259 void ClassName::removeCallback(DtRtiAssistantServer* conn, \
260 ClassName##Cb cb, void* usr) \
262 conn->removeMsgCallback(ClassName##Kind, \
263 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
268 #define DtASTNT_DEFINE_CLIENT_CALLBACK_METHODS(ClassName) \
269 void ClassName::addCallback(DtRtiAssistantClient* conn, \
270 ClassName##Cb cb, void* usr) \
272 conn->addMsgCallback(ClassName##Kind, \
273 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
275 void ClassName::removeCallback(DtRtiAssistantClient* conn, \
276 ClassName##Cb cb, void* usr) \
278 conn->removeMsgCallback(ClassName##Kind, \
279 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
284 #define DtASTNT_DEFINE_QUEUE_CALLBACK_METHODS(ClassName) \
285 void ClassName::addCallback(DtAssistantMsgQueue* conn, \
286 ClassName##Cb cb, void* usr) \
288 conn->addMsgCallback(ClassName##Kind, \
289 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
291 void ClassName::removeCallback(DtAssistantMsgQueue* conn, \
292 ClassName##Cb cb, void* usr) \
294 conn->removeMsgCallback(ClassName##Kind, \
295 (DtAssistantMsgCbMgr::DtCallbackFcn) cb, usr); \
DtAssistantTemplateMsg defines a base class which can be subclassed to quickly produce a new Assistan...
Definition: assistantTemplateMsg.h:46
unsigned myOctetBoundary
Octet boundary of this parameter.
Definition: rtiTemplateMsgParams.h:87
DtAssistantMsgKind
Definition: assistantMsg.h:53
Base class for assistant Messages.
Definition: assistantMsg.h:153
DtAssistantMsgKind myMsgKind
The message kind.
Definition: assistantTemplateMsg.h:84
virtual DtAssistantMsgKind internalMsgKind()=0
This file defines the DtRtiMsgParam template which can be used to produce template based message clas...
#define DT_DLL_ASSISTANT
Default – Unix or Win32 static.
Definition: rtiMsConfig.h:150
The base class for all templated RTI message parameters.
Definition: rtiTemplateMsgParams.h:32
virtual void printData() const
virtual DtNetAssistantMsgHeader * netHeader() const
Get header of network representation.
Definition: assistantMsg.h:285
std::vector< DtRtiBaseMsgParam * > myMsgParams
The list of other message parameters.
Definition: assistantTemplateMsg.h:81
DtNetAssistantMsgHeaderParam * myHeaderParam
The parameter which points to the message header.
Definition: assistantTemplateMsg.h:78
int myMinSize
The minimum size needed for this message.
Definition: assistantTemplateMsg.h:87