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 #define DtAssistantMessageVersion 22
52 
54 {
106 
107  // Assistant to Assistant messages
119 
125 };
126 
128 {
140 };
141 
142 // These status are sent by the Forwarder to Assistants.
143 // When a forwarder sends its state msg, it has a vector of clientStatus.
145 {
150 };
151 
153 class DT_DLL_ASSISTANT DtAssistantMsg : public MAKRti::DtBaseMsg
154 {
155 public:
156 
158  virtual ~DtAssistantMsg();
159 
163  virtual DtAssistantMsg* clone(bool copy = true) const=0;
164 
166  virtual DtNetAssistantMsgHeader* netHeader() const;
167 
169  virtual int version() const;
170 
172  virtual bool isValidVersion() const;
173 
175  virtual DtAssistantMsgKind msgKind() const;
176 
178  virtual void print() const;
179  virtual void printHeader() const;
180  virtual void printSrcDest() const;
181  virtual void printData() const;
182 
184  virtual bool isOk() const;
185 
188  bool isAssistantToAssistantMessage() const;
189 
192  virtual MAKRti::DtInetAddr sourceAddr() const;
193  virtual void setSourceAddr(const MAKRti::DtInetAddr& addr);
194 
197  virtual int sourceId() const;
198  virtual void setSourceId(int id);
199 
202  virtual MAKRti::DtString sourceHost() const;
203  virtual void setSourceHost(const MAKRti::DtString& addr);
204 
207  virtual MAKRti::DtInetAddr destAddr() const;
208  virtual void setDestAddr(const MAKRti::DtInetAddr& addr);
209 
212  virtual int destId() const;
213  virtual void setDestId(int id);
214 
217  virtual int compId() const;
218  virtual void setCompId( int compId );
219 
222  virtual const DtAssistantUuid& sourceUuid() const;
223  virtual void setSourceUuid(const DtAssistantUuid& uuid);
224 
227  virtual bool isForeign() const;
228  virtual void setIsForeign( bool isForeignDestination);
229 
232  virtual DtU32 sequence() const;
233  virtual void setSequence(DtU32 sequenceNumber);
234 
235 
236 public:
237 
239  static const char* kindToString(DtAssistantMsgKind kind);
240 
241 protected:
242 
244  DtAssistantMsg();
245 
246  virtual DtAssistantMsgKind internalMsgKind() = 0;
247 
250  virtual void sizeChanged(int size);
251 
253  void initAssistantMsg(int size, DtAssistantMsgKind msgKindVal, DtBufferPtr buffer);
254  void initAssistantMsg(const void *initial, int size, DtBufferPtr buffer);
255  void initAssistantMsg(const DtNetAssistantMsgHeader *header, DtBufferPtr buffer);
256 
259  virtual void adjustBytes(int offset, int numBytes);
260 
264  virtual void adjustBytes(void *address, int numBytes);
265 
268  virtual void resizeForSrcDestInfo();
269 
272  virtual const DtNetAssistantSrcDestInfo* srcDestInfoPtr() const;
273  virtual DtNetAssistantSrcDestInfo* srcDestInfoPtr();
274 
276  virtual void setSourceHostSize( unsigned long size );
277  virtual unsigned long sourceHostSize() const;
278 
280  virtual const char* sourceHostPtr() const;
281  virtual char* sourceHostPtr();
282 
283 };
284 
286 {
287  return (DtNetAssistantMsgHeader*) netRep();
288 }
289 
291 {
292  return DtAssistantMsgKind((DtU32) (DtU8) netHeader()->msgKind);
293 }
294 
295 inline bool DtAssistantMsg::isOk() const
296 {
297  return true;
298 }
299 
300 inline void DtAssistantMsg::adjustBytes(int offset, int numBytes)
301 {
302  if (numBytes > 0)
303  {
304  insertBytes(offset, numBytes);
305  }
306  else if (numBytes < 0)
307  {
308  deleteBytes(offset, -numBytes);
309  }
310 }
311 
312 inline void DtAssistantMsg::adjustBytes(void *address, int numBytes)
313 {
314  if (numBytes > 0)
315  {
316  insertBytes(address, numBytes);
317  }
318  else if (numBytes < 0)
319  {
320  deleteBytes(address, -numBytes);
321  }
322 }
323 
324 #endif
325 
Definition: assistantMsg.h:113
Definition: assistantMsg.h:56
Definition: assistantMsg.h:138
Definition: assistantMsg.h:69
Definition: assistantMsg.h:90
Definition: assistantMsg.h:66
virtual bool isOk() const
Message is good?
Definition: assistantMsg.h:295
Definition: assistantMsg.h:79
Definition: assistantMsg.h:57
Definition: assistantMsg.h:58
Definition: assistantMsg.h:98
Definition: assistantMsg.h:117
Definition: netAssistantMsgHdr.h:26
DtUuid DtAssistantUuid
Definition: assistantUtil.h:17
Definition: assistantMsg.h:70
Definition: assistantMsg.h:149
Definition: assistantMsg.h:59
Definition: assistantMsg.h:100
Definition: assistantMsg.h:83
virtual void adjustBytes(int offset, int numBytes)
Adjust numBytes bytes at the indicated offset in the net rep.
Definition: assistantMsg.h:300
Definition: assistantMsg.h:133
Definition: assistantMsg.h:76
Definition: assistantMsg.h:91
Definition: assistantMsg.h:116
Definition: assistantMsg.h:71
Definition: assistantMsg.h:115
Definition: assistantMsg.h:137
Definition: assistantMsg.h:148
Definition: assistantMsg.h:63
This file contains the declaration of Assistant Utility Functions.
Definition: assistantMsg.h:93
Definition: assistantMsg.h:75
DtAssistantMsgKind
Definition: assistantMsg.h:53
Base class for assistant Messages.
Definition: assistantMsg.h:153
Definition: assistantMsg.h:78
Definition: assistantMsg.h:118
Definition: assistantMsg.h:104
Definition: assistantMsg.h:84
Definition: assistantMsg.h:88
virtual DtAssistantMsgKind msgKind() const
Get the message kind.
Definition: assistantMsg.h:290
Definition: assistantMsg.h:101
Definition: assistantMsg.h:72
Definition: assistantMsg.h:99
#define DT_DLL_ASSISTANT
Default – Unix or Win32 static.
Definition: rtiMsConfig.h:150
DtAssistantMsgReadStatus
Definition: assistantMsg.h:127
Definition: assistantMsg.h:109
Definition: assistantMsg.h:61
Network representation for info regarding the source and destination Assistants for this message...
Definition: netAssistantSrcDestInfo.h:24
Definition: assistantMsg.h:89
Definition: assistantMsg.h:114
Definition: assistantMsg.h:134
Definition: assistantMsg.h:60
Definition: assistantMsg.h:131
Definition: assistantMsg.h:62
Definition: assistantMsg.h:82
Note: no message kind may be &gt; DtInvalidAssistantMsgKind This is a limitation imposed by the Assistan...
Definition: assistantMsg.h:124
Definition: assistantMsg.h:103
Definition: assistantMsg.h:95
Definition: assistantMsg.h:64
Definition: assistantMsg.h:146
Definition: assistantMsg.h:80
Definition: assistantMsg.h:68
Definition: assistantMsg.h:85
Definition: assistantMsg.h:110
Definition: assistantMsg.h:135
virtual DtNetAssistantMsgHeader * netHeader() const
Get header of network representation.
Definition: assistantMsg.h:285
Definition: assistantMsg.h:112
void insertBytes(std::vector< Octet > &wrapper, size_t length)
Insert bytes into the octet buffer.
Definition: encodingImplHelpers.h:125
Definition: assistantMsg.h:96
Definition: assistantMsg.h:130
Definition: assistantMsg.h:92
Definition: assistantMsg.h:73
Definition: assistantMsg.h:67
Definition: assistantMsg.h:77
Definition: assistantMsg.h:108
Definition: assistantMsg.h:94
The declaration of internal types.
Definition: assistantMsg.h:74
Definition: assistantMsg.h:147
Definition: assistantMsg.h:65
Definition: assistantMsg.h:136
Definition: assistantMsg.h:81
Definition: assistantMsg.h:86
Definition: assistantMsg.h:129
Definition: assistantMsg.h:139
Definition: assistantMsg.h:111
DtAssistantMsgFederateStatus
Definition: assistantMsg.h:144
Definition: assistantMsg.h:105
Definition: assistantMsg.h:132
Definition: assistantMsg.h:55

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)