MAK RTIspy API Documentation for HLA 1516
updateMsg.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1998 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: updateMsg.h,v $ $Revision: 1.25 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef DtUpdateMsg_H_
13 #define DtUpdateMsg_H_
14 
15 #include "rtiMsConfig.h"
16 #include "rtiMsg.h"
17 #include "netAttrs.h"
18 #include "rtiObject.h"
20 #include "RIDparams.h"
21 class DtAhvps;
22 class DtUpdateMsg;
23 class DtObjectClassInfo;
24 
25 typedef void (*DtUpdateCb)(const DtUpdateMsg& msg, void* usr);
26 
28 {
29 public:
30 
32  DtUpdateMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
33 
35  virtual ~DtUpdateMsg();
36 
38  virtual void setClassHandle(DtObjectClassHandle hand) = 0;
39  virtual DtObjectClassHandle classHandle() const = 0;
40 
42  virtual void setObjHandle(DtObjectInstanceHandle id) = 0;
43  virtual DtObjectInstanceHandle objHandle() const = 0;
44 
46  virtual void setChannel(unsigned long handleValue);
47  virtual unsigned long channel() const;
48 
50  virtual void setObjName(const char* name);
51  virtual const char* objName() const;
52 
54 #ifdef DtIFSPEC1516
55  virtual void setTag(rti1516::VariableLengthData const& tag);
56  virtual rti1516::VariableLengthData const& tag() const;
57 #elif defined(DtIFSPEC1516E)
58  virtual void setTag(rti1516e::VariableLengthData const& tag);
59  virtual rti1516e::VariableLengthData const& tag() const;
60 #else
61  virtual void setTag(char const * tag);
62  virtual char const * tag() const;
63 #endif
64 
66  virtual void setAttrs(
67  const DtAhvps& theAttributes,
68  bool checkBufferSize=true);
69 
75  virtual void getAttrs(DtAhvps& attrSetBuff,
76  bool useMsgMemory,
77  DtObjectClassInfo* objDesc=NULL,
78  DtHandle regionSetHandle=DtDefaultRegionSetHandle,
79  DtRtiObject* obj=NULL,
80  float tolerance=0.0) const;
81 
83  virtual unsigned long numAttrs() const;
84 
85 public:
86 
88  static void setChannelIncluded(bool includeChannel);
89  static bool channelIncluded();
90 
91 protected:
92 
94  virtual void setNameSize(int size) = 0;
95  virtual int nameSize() const = 0;
96 
98  virtual void setTagSize(int size) = 0;
99  virtual int tagSize() const = 0;
100 
102  virtual DtNetU32* channelPtr() const=0;
103 
105  virtual char* namePtr()=0;
106 
108  virtual char* tagPtr()=0;
109 
111  virtual DtNetAttrs* netAttrs() = 0;
112 
115  virtual DtNetBigAttrs* netBigAttrs() = 0;
116 
119  virtual DtNetAttrValue* nextNetAttr(char* netAttrTail) const;
120 
124  virtual DtNetBigAttrValue* nextNetBigAttr(char* netAttrTail) const;
125 
131  virtual void fillFromNetAttrs(
132  const DtNetAttrs* netRepAttrs,
133  DtAhvps& attrs,
134  bool useMsgMemory,
135  DtObjectClassInfo* objDesc=NULL,
136  DtHandle regionSetHandle=DtDefaultRegionSetHandle,
137  DtRtiObject* obj=NULL,
138  float tolerance=0.0) const;
139 
147  virtual void fillFromNetBigAttrs(
148  const DtNetBigAttrs* netAttrs,
149  DtAhvps& attrs,
150  bool useMsgMemory,
151  DtObjectClassInfo* objDesc=NULL,
152  DtHandle regionSetHandle=DtDefaultRegionSetHandle,
153  DtRtiObject* obj=NULL,
154  float tolerance=0.0) const;
155 
157  virtual void fillNetAttrs(
158  const DtAhvps& theAttributes,
159  DtNetAttrs* netRepAttrs);
160 
163  virtual void fillNetBigAttrs(
164  const DtAhvps& attrs,
165  DtNetBigAttrs* netAttrs);
166 
168  virtual void adjustBufferForAttrs(const DtAhvps& attrs);
169 
171  virtual unsigned long sizeNeededForNetAttr(unsigned long attrOffset,
172  unsigned long attrSize) const;
173 
175  virtual unsigned long sizeNeededForNetAttrs(unsigned long offset, const DtAhvps& attrs) const;
176 
178  virtual int channelFieldSize() const;
179 
181  virtual int tagFieldSize() const;
182 
184  virtual int nameFieldSize() const;
185 
187  virtual int attrAlignPaddingSize(unsigned long offset) const;
188 
190  virtual DtUpdateMsg* self() const;
191 
192 protected:
193 #ifdef DtIFSPEC1516
195 #elif defined(DtIFSPEC1516E)
197 #endif
201  unsigned long myMaxAttrSize;
202 
203 protected:
204  static bool theChannelIncluded;
205 };
206 
207 
209 {
210  return const_cast<DtUpdateMsg*>( this );
211 }
212 
214 {
215  return theChannelIncluded;
216 }
217 
218 #endif
219 

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)