MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
assistantMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: assistantMsg.h,v $ $Revision: 1.41 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtAssistantMsg_H_
13 #define DtAssistantMsg_H_
14 
15 #include <memory>
16 
17 #include <vlutil/vlBaseMsg.h>
18 #include <vlutil/vlString.h>
19 #include <vlutil/vlInetAddr.h>
20 
21 #include <internalTypes.h>
22 
23 #include "assistantUtil.h"
24 #include "netAssistantMsgHdr.h"
25 
27 
28 // Default port for all assistant communication
29 // When this is changed you must also update DtRIDParameters::verifyPortsAreUnique
30 #define DtASSISTANT_DEFAULT_PORT 6003
31 
32 // Default destination id (everyone)
33 #define DtASSISTANT_DEFAULT_DEST_ID 0
34 
35 // Default multicast address for communication between assistants
36 #define DtASSISTANT_DEFAULT_IPV4_ADDR "229.7.7.10"
37 #define DtASSISTANT_DEFAULT_IPV6_ADDR "ff12::7:10"
38 
39 // Default TTL for all assistant communication
40 #define DtASSISTANT_DEFAULT_TTL 1
41 
42 // RTI 4.1.1 DtAssistantMessageVersion = 14
43 // RTI 4.2pr DtAssistantMessageVersion = 15 (pre-release)
44 // RTI 4.2 DtAssistantMessageVersion = 16
45 // RTI 4.3 DtAssistantMessageVersion = 17
46 // RTI 4.4 DtAssistantMessageVersion = 18
47 // RTI 4.4.x DtAssistantMessageVersion = 19
48 // RTI 4.5 DtAssistantMessageVersion = 20
49 // RTI 4.6 DtAssistantMessageVersion = 21
50 // RTI 5.0 DtAssistantMessageVersion = 22
51 // RTI 5.0.1 DtAssistantMessageVersion = 23
52 #define DtAssistantMessageVersion 23
53 
55 {
107 
108  // Assistant to Assistant messages
120 
126 };
127 
129 {
141 };
142 
143 // These status are sent by the Forwarder to Assistants.
144 // When a forwarder sends its state msg, it has a vector of clientStatus.
146 {
151 };
152 
154 class DT_DLL_ASSISTANT DtAssistantMsg : public MAKRti::DtBaseMsg
155 {
156 public:
157 
159  virtual ~DtAssistantMsg();
160 
164  virtual DtAssistantMsg* clone(bool copy = true) const=0;
165 
167  virtual DtNetAssistantMsgHeader* netHeader() const;
168 
170  virtual int version() const;
171 
173  virtual bool isValidVersion() const;
174 
176  virtual DtAssistantMsgKind msgKind() const;
177 
179  virtual void print() const;
180  virtual void printHeader() const;
181  virtual void printSrcDest() const;
182  virtual void printData() const;
183 
185  virtual bool isOk() const;
186 
189  bool isAssistantToAssistantMessage() const;
190 
193  virtual MAKRti::DtInetAddr sourceAddr() const;
194  virtual void setSourceAddr(const MAKRti::DtInetAddr& addr);
195 
198  virtual int sourceId() const;
199  virtual void setSourceId(int id);
200 
203  virtual MAKRti::DtString sourceHost() const;
204  virtual void setSourceHost(const MAKRti::DtString& addr);
205 
208  virtual MAKRti::DtInetAddr destAddr() const;
209  virtual void setDestAddr(const MAKRti::DtInetAddr& addr);
210 
213  virtual int destId() const;
214  virtual void setDestId(int id);
215 
218  virtual int compId() const;
219  virtual void setCompId( int compId );
220 
223  virtual const DtAssistantUuid& sourceUuid() const;
224  virtual void setSourceUuid(const DtAssistantUuid& uuid);
225 
228  virtual bool isForeign() const;
229  virtual void setIsForeign( bool isForeignDestination);
230 
233  virtual DtU32 sequence() const;
234  virtual void setSequence(DtU32 sequenceNumber);
235 
236 
237 public:
238 
240  static const char* kindToString(DtAssistantMsgKind kind);
241 
242 protected:
243 
245  DtAssistantMsg();
246 
247  virtual DtAssistantMsgKind internalMsgKind() = 0;
248 
251  virtual void sizeChanged(int size);
252 
254  void initAssistantMsg(int size, DtAssistantMsgKind msgKindVal, DtBufferPtr buffer);
255  void initAssistantMsg(const void *initial, int size, DtBufferPtr buffer);
256  void initAssistantMsg(const DtNetAssistantMsgHeader *header, DtBufferPtr buffer);
257 
260  virtual void adjustBytes(int offset, int numBytes);
261 
265  virtual void adjustBytes(void *address, int numBytes);
266 
269  virtual void resizeForSrcDestInfo();
270 
273  virtual const DtNetAssistantSrcDestInfo* srcDestInfoPtr() const;
274  virtual DtNetAssistantSrcDestInfo* srcDestInfoPtr();
275 
277  virtual void setSourceHostSize( unsigned long size );
278  virtual unsigned long sourceHostSize() const;
279 
281  virtual const char* sourceHostPtr() const;
282  virtual char* sourceHostPtr();
283 
284 };
285 
287 {
288  return (DtNetAssistantMsgHeader*) netRep();
289 }
290 
292 {
293  return DtAssistantMsgKind((DtU32) (DtU8) netHeader()->msgKind);
294 }
295 
296 inline bool DtAssistantMsg::isOk() const
297 {
298  return true;
299 }
300 
301 inline void DtAssistantMsg::adjustBytes(int offset, int numBytes)
302 {
303  if (numBytes > 0)
304  {
305  insertBytes(offset, numBytes);
306  }
307  else if (numBytes < 0)
308  {
309  deleteBytes(offset, -numBytes);
310  }
311 }
312 
313 inline void DtAssistantMsg::adjustBytes(void *address, int numBytes)
314 {
315  if (numBytes > 0)
316  {
317  insertBytes(address, numBytes);
318  }
319  else if (numBytes < 0)
320  {
321  deleteBytes(address, -numBytes);
322  }
323 }
324 
325 #endif
326 
Definition: assistantMsg.h:114
Definition: assistantMsg.h:57
Definition: assistantMsg.h:139
Definition: assistantMsg.h:70
Definition: assistantMsg.h:91
Definition: assistantMsg.h:67
virtual bool isOk() const
Message is good?
Definition: assistantMsg.h:296
Definition: assistantMsg.h:80
Definition: assistantMsg.h:58
Definition: assistantMsg.h:59
Definition: assistantMsg.h:99
Definition: assistantMsg.h:118
Definition: netAssistantMsgHdr.h:26
DtUuid DtAssistantUuid
Definition: assistantUtil.h:17
Definition: assistantMsg.h:71
Definition: assistantMsg.h:150
Definition: assistantMsg.h:60
Definition: assistantMsg.h:101
Definition: assistantMsg.h:84
virtual void adjustBytes(int offset, int numBytes)
Adjust numBytes bytes at the indicated offset in the net rep.
Definition: assistantMsg.h:301
Definition: assistantMsg.h:134
Definition: assistantMsg.h:77
Definition: assistantMsg.h:92
Definition: assistantMsg.h:117
Definition: assistantMsg.h:72
Definition: assistantMsg.h:116
Definition: assistantMsg.h:138
Definition: assistantMsg.h:149
Definition: assistantMsg.h:64
This file contains the declaration of Assistant Utility Functions.
Definition: assistantMsg.h:94
Definition: assistantMsg.h:76
DtAssistantMsgKind
Definition: assistantMsg.h:54
Base class for assistant Messages.
Definition: assistantMsg.h:154
Definition: assistantMsg.h:79
Definition: assistantMsg.h:119
Definition: assistantMsg.h:105
Definition: assistantMsg.h:85
Definition: assistantMsg.h:89
virtual DtAssistantMsgKind msgKind() const
Get the message kind.
Definition: assistantMsg.h:291
Definition: assistantMsg.h:102
Definition: assistantMsg.h:73
Definition: assistantMsg.h:100
#define DT_DLL_ASSISTANT
Default – Unix or Win32 static.
Definition: rtiMsConfig.h:150
DtAssistantMsgReadStatus
Definition: assistantMsg.h:128
Definition: assistantMsg.h:110
Definition: assistantMsg.h:62
Network representation for info regarding the source and destination Assistants for this message...
Definition: netAssistantSrcDestInfo.h:24
Definition: assistantMsg.h:90
Definition: assistantMsg.h:115
Definition: assistantMsg.h:135
Definition: assistantMsg.h:61
Definition: assistantMsg.h:132
Definition: assistantMsg.h:63
Definition: assistantMsg.h:83
Note: no message kind may be &gt; DtInvalidAssistantMsgKind This is a limitation imposed by the Assistan...
Definition: assistantMsg.h:125
Definition: assistantMsg.h:104
Definition: assistantMsg.h:96
Definition: assistantMsg.h:65
Definition: assistantMsg.h:147
Definition: assistantMsg.h:81
Definition: assistantMsg.h:69
Definition: assistantMsg.h:86
Definition: assistantMsg.h:111
Definition: assistantMsg.h:136
virtual DtNetAssistantMsgHeader * netHeader() const
Get header of network representation.
Definition: assistantMsg.h:286
Definition: assistantMsg.h:113
void insertBytes(std::vector< Octet > &wrapper, size_t length)
Insert bytes into the octet buffer.
Definition: encodingImplHelpers.h:125
Definition: assistantMsg.h:97
Definition: assistantMsg.h:131
Definition: assistantMsg.h:93
Definition: assistantMsg.h:74
Definition: assistantMsg.h:68
Definition: assistantMsg.h:78
Definition: assistantMsg.h:109
Definition: assistantMsg.h:95
The declaration of internal types.
Definition: assistantMsg.h:75
Definition: assistantMsg.h:148
Definition: assistantMsg.h:66
Definition: assistantMsg.h:137
Definition: assistantMsg.h:82
Definition: assistantMsg.h:87
Definition: assistantMsg.h:130
Definition: assistantMsg.h:140
Definition: assistantMsg.h:112
DtAssistantMsgFederateStatus
Definition: assistantMsg.h:145
Definition: assistantMsg.h:106
Definition: assistantMsg.h:133
Definition: assistantMsg.h:56

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)