VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
datumRecordSet.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 datumRecordSet_H_
11 #define datumRecordSet_H_
12 
13 #include "hostStructs.h"
14 #include <vlpi/idTypeMap.h>
15 #include <vlutil/vlBaseMsg.h>
16 #include "packets/dataP.h"
17 
19 {
24 };
25 
27 {
30 };
31 
36 {
37 public:
39  int length;
40 };
41 
42 #define DtNullDatumParam DtDatumParam(0)
43 #define DtNullVarDatumSpec DtNullDatumParam,0
44 
46 {
47 public:
48 
51 
53  DtDatumRecordSet(const void* netRep, int size,
55 
57  virtual ~DtDatumRecordSet();
58 
61 
64 
66  virtual int numFixedFields() const;
67 
69  virtual int numVarFields() const;
70 
74  virtual DtDatumParam varDatumId(int index) const;
75 
79  virtual DtDatumParam fixedDatumId(int index) const;
80 
85  virtual DtDatumParam datumId(DtDatumRecordType fixedOrVar, int index) const;
86 
91  virtual int datumSizeBits(DtDatumRecordType fixedOrVar, int index) const;
92 
97  virtual int datumSizeBytes(DtDatumRecordType fixedOrVar, int index) const;
98 
105  virtual void getIndex(DtDatumParam param, DtDatumRecordType* fixedOrVar,
106  int* index, DtDatumRetCode* retcode = NULL) const;
107 
120 
121  virtual DtFloat32 datumValFloat32(DtDatumRecordType fixedOrVar, int index,
122  DtDatumRetCode* retcode = NULL) const;
123  virtual DtFloat64 datumValFloat64(DtDatumRecordType fixedOrVar, int index,
124  DtDatumRetCode* retcode = NULL) const;
125  virtual unsigned long datumValUnsigned32(DtDatumRecordType fixedOrVar,
126  int index, DtDatumRetCode* retcode = NULL) const;
127  virtual long datumValInt32(DtDatumRecordType fixedOrVar, int index,
128  DtDatumRetCode* retcode = NULL) const;
129  virtual const char* datumValByteArray(DtDatumRecordType fixedOrVar,
130  int index) const;
131 
144 
145  virtual DtFloat32 datumValFloat32(DtDatumParam param,
146  DtDatumRetCode* retcode = NULL) const;
147  virtual DtFloat64 datumValFloat64(DtDatumParam param,
148  DtDatumRetCode* retcode = NULL) const;
149  virtual unsigned long datumValUnsigned32(DtDatumParam param,
150  DtDatumRetCode* retcode = NULL) const;
151  virtual long datumValInt32(DtDatumParam param,
152  DtDatumRetCode* retcode = NULL) const;
153  virtual const char* datumValByteArray(DtDatumParam param,
154  DtDatumRetCode* retcode = NULL) const;
155 
157 
164  virtual void init(const DtDatumParam* fixedParams,
165  const DtVarDatumSpec* specList);
166 
171  virtual void setNumFixedFields(int newNum);
172  virtual void setNumVarFields(int newNum);
173 
178  virtual void setDatumParam(DtDatumRecordType fixedOrVar, int index, DtDatumParam param,
179  DtDatumRetCode* retcode = NULL);
180 
186  virtual void setVarDataBytes(int index, int length, DtDatumRetCode* retcode = NULL);
187 
200 
201  virtual void setDatumValFloat64(DtDatumRecordType fixedOrVar, int index, DtFloat64 val,
202  DtDatumRetCode* retcode = NULL);
203  virtual void setDatumValFloat32(DtDatumRecordType fixedOrVar, int index, DtFloat32 val,
204  DtDatumRetCode* retcode = NULL);
205  virtual void setDatumValInt32(DtDatumRecordType fixedOrVar, int index, long val,
206  DtDatumRetCode* retcode = NULL);
207  virtual void setDatumValUnsigned32(DtDatumRecordType fixedOrVar, int index,
208  unsigned long val, DtDatumRetCode* retcode = NULL);
209  virtual void setDatumValByteArray(DtDatumRecordType fixedOrVar, int index,
210  const char* val, DtDatumRetCode* retcode = NULL);
211 
224 
225  virtual void setDatumValFloat64(DtDatumParam param, DtFloat64 val,
226  DtDatumRetCode* retcode = NULL);
227  virtual void setDatumValFloat32(DtDatumParam param, DtFloat32 val,
228  DtDatumRetCode* retcode = NULL);
229  virtual void setDatumValInt32(DtDatumParam param, long val,
230  DtDatumRetCode* retcode = NULL);
231  virtual void setDatumValUnsigned32(DtDatumParam param, unsigned long val,
232  DtDatumRetCode* retcode = NULL);
233  virtual void setDatumValByteArray(DtDatumParam param, const char* val,
234  DtDatumRetCode* retcode = NULL);
235 
237  virtual void printData() const;
238 
240  virtual void printDataToStream(std::ostream& stream) const;
241 
245  virtual DtNetDataPduTail* netDataRep() const;
246 
249  virtual DtNetFixDatum* nthFixedDataRecord(int index) const;
250 
253  virtual DtNetVarDatum* nthVarDataRecord(int index) const;
254 
257  virtual void setFromNetFixed(const char* fixedFields, int numFixedFields);
258 
262  virtual void setFromNetVar(const char* varFields, int numVarFields,
263  int totalVarFieldsLength);
264 
265 protected:
266 
267  friend class DtPduWithData;
268 
271  virtual void sizeChanged(int size);
272 
276  virtual void* datumValPtr(DtDatumRecordType fixedOrVar, int index) const;
277 };
278 
280 {
281  return (DtNetDataPduTail*) netRep();
282 }
283 
285 #define DtFIXED DtFixed
286 #define DtVAR DtVar
287 #define DtDATUM_VALID DtDatumValid
288 #define DtDATUM_BAD_LENGTH DtDatumBadLength
289 #define DtDATUM_BAD_ID DtDatumBadId
290 #define DtDATUM_BAD_INDEX DtDatumBadIndex
291 
292 #endif
293 
294 

Document ID: Generated on Thu Feb 22 04:26:36 EST 2018 from SVN revision 186468
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)