VR-Link API Documentation for HLA Evolved
pduWithData.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #ifndef DtPduWithData_H_
11 #define DtPduWithData_H_
12 
13 #if DtDIS
14 
15 #include "hostStructs.h"
16 #include "simanPdu.h"
17 #include <vlpi/datumIdType.h>
18 #include "datumRecSet.h"
19 
23 class DT_DLL_VL DtPduWithData : public DtSimanPdu
24 {
25 public:
26 
27  enum { PduStaticSize=40 };
28 
29 public:
30 
32  DtPduWithData();
33 
35  virtual ~DtPduWithData();
36 
37  DtPduWithData(const DtPduWithData& orig);
38 
40  DtPduWithData& operator=(const DtPduWithData& orig)
41  {
42  this->DtPdu::operator=(orig);
43  return *this;
44  }
45 
47  virtual int numFixedFields() const;
48 
50  virtual int numVarFields() const;
51 
55  virtual DtDatumParam varDatumId(int index) const;
56 
60  virtual DtDatumParam fixedDatumId(int index) const;
61 
66  virtual DtDatumParam datumId(DtDatumRecordType fixedOrVar, int index) const;
67 
72  virtual int datumSizeBits(DtDatumRecordType fixedOrVar, int index) const;
73 
78  virtual int datumSizeBytes(DtDatumRecordType fixedOrVar, int index) const;
79 
86  virtual void getIndex(DtDatumParam param, DtDatumRecordType *fixedOrVar, int *index,
87  DtDatumRetCode *retcode = NULL) const;
88 
101 
102  virtual DtFloat32 datumValFloat32(DtDatumRecordType fixedOrVar, int index,
103  DtDatumRetCode *retcode = NULL) const;
104  virtual DtFloat64 datumValFloat64(DtDatumRecordType fixedOrVar, int index,
105  DtDatumRetCode *retcode = NULL) const;
106  virtual unsigned long datumValUnsigned32(DtDatumRecordType fixedOrVar, int index,
107  DtDatumRetCode *retcode = NULL) const;
108  virtual long datumValInt32(DtDatumRecordType fixedOrVar, int index,
109  DtDatumRetCode *retcode = NULL) const;
110  virtual const char* datumValByteArray(DtDatumRecordType fixedOrVar, int index) const;
111 
124 
125  virtual DtFloat32 datumValFloat32(DtDatumParam param,
126  DtDatumRetCode *retcode = NULL) const;
127  virtual DtFloat64 datumValFloat64(DtDatumParam param,
128  DtDatumRetCode *retcode = NULL) const;
129  virtual unsigned long datumValUnsigned32(DtDatumParam param,
130  DtDatumRetCode *retcode = NULL) const;
131  virtual long datumValInt32(DtDatumParam param,
132  DtDatumRetCode *retcode = NULL) const;
133  virtual const char* datumValByteArray(DtDatumParam param,
134  DtDatumRetCode *retcode = NULL) const;
135 
137 
144  virtual void initDataSection(const DtDatumParam *fixedParams,
145  const DtVarDatumSpec *specList);
146 
151  virtual void setNumFixedFields(int newNum);
152  virtual void setNumVarFields(int newNum);
153 
158  virtual void setDatumParam(DtDatumRecordType fixedOrVar, int index, DtDatumParam param,
159  DtDatumRetCode *retcode = NULL);
160 
166  virtual void setVarDataBytes(int index, int length, DtDatumRetCode *retcode = NULL);
167 
180 
181  virtual void setDatumValFloat64(DtDatumRecordType fixedOrVar, int index, DtFloat64 val,
182  DtDatumRetCode *retcode = NULL);
183  virtual void setDatumValFloat32(DtDatumRecordType fixedOrVar, int index, DtFloat32 val,
184  DtDatumRetCode *retcode = NULL);
185  virtual void setDatumValInt32(DtDatumRecordType fixedOrVar, int index, long val,
186  DtDatumRetCode *retcode = NULL);
187  virtual void setDatumValUnsigned32(DtDatumRecordType fixedOrVar, int index, unsigned long val,
188  DtDatumRetCode *retcode = NULL);
189  virtual void setDatumValByteArray(DtDatumRecordType fixedOrVar, int index, const char *val,
190  DtDatumRetCode *retcode = NULL);
191 
204 
205  virtual void setDatumValFloat64(DtDatumParam param, DtFloat64 val,
206  DtDatumRetCode *retcode = NULL);
207  virtual void setDatumValFloat32(DtDatumParam param, DtFloat32 val,
208  DtDatumRetCode *retcode = NULL);
209  virtual void setDatumValInt32(DtDatumParam param, long val,
210  DtDatumRetCode *retcode = NULL);
211  virtual void setDatumValUnsigned32(DtDatumParam param, unsigned long val,
212  DtDatumRetCode *retcode = NULL);
213  virtual void setDatumValByteArray(DtDatumParam param, const char *val,
214  DtDatumRetCode *retcode = NULL);
215 
217  virtual void printData() const;
218  virtual void printDataToStream(std::ostream& stream) const;
219 
221  virtual void printDataSection() const;
222  virtual void printDataSectionToStream(std::ostream& stream) const;
223 
224 protected:
225 
226  friend class DtPduDatumRecordSet;
227 
228 #ifdef DtGATEWAY
229  friend class DtDataInteractionTranslator;
230  friend class DtSetDataInteractionTranslator;
231  friend class DtCommentInteractionTranslator;
232  friend class DtEventReportInteractionTranslator;
233  friend class DtActionRequestInteractionTranslator;
234  friend class DtActionResponseInteractionTranslator;
235 #endif
236 
238  virtual DtDatumRecordSet* datumRecSet();
240  virtual const DtDatumRecordSet* datumRecSet() const;
241 
242 
243 
246  virtual DtNetDataPduTail *dataSection() const = 0;
247 
250  virtual DtNetFixDatum *nthFixedDataRecord(int index) const;
251 
254  virtual DtNetVarDatum *nthVarDataRecord(int index) const;
255 
259  virtual void *datumValPtr(DtDatumRecordType fixedOrVar, int index) const;
260 
261 
262 protected:
263 
264  DtDatumRecordSet* myRecSet;
265 };
266 
267 #endif
268 #endif
269 
270 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)