VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
environmentalProcessPdu.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vl/pdu.h>
13 #include <vl/stateMsg.h>
14 #include <vl/exerciseConn.h>
17 #include <vlutil/vlMachineTypes.h>
18 #include <vl/packets/envProcP.h>
19 #include <vector>
20 
22 
24 typedef void (*DtEnvironmentalProcessPduCb)( DtEnvironmentalProcessPdu* pdu, void* usr );
25 
29 #if DtDIS
31 #else
33 #endif
34 {
35 public:
36 
39 
42  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
43 
46 
49 
52 
54  virtual void setEnvironmentalProcessID(const DtEntityIdentifier& entity);
55  virtual const DtEntityIdentifier& environmentalProcessID() const;
56 
58  virtual void setEnvironmentType(const DtEnvironmentTypeRecord& type);
59  virtual const DtEnvironmentTypeRecord& environmentType() const;
60 
62  virtual void setModelType(DtEnvironmentalModelType value);
63  virtual DtEnvironmentalModelType modelType() const;
64 
66  virtual void setEnvironmentalStatus(DtU8 value);
67  virtual DtU8 environmentalStatus() const;
68 
70  virtual void setEnvironmentalStatusBit( DtEnvironmentalStatusBit bit, bool value );
71  virtual bool environmentalStatusBit( DtEnvironmentalStatusBit bit ) const;
72 
74  virtual bool setNumberOfEnvironmentalRecords(DtU16 newNumberOfRecords);
75  virtual DtU16 numberOfEnvironmentalRecords() const;
76 
78  virtual void setSequenceNumber(DtU16 value);
79  virtual DtU16 sequenceNumber() const;
80 
86  virtual bool setRecordBitSize(int recordIndex, int newRecordBitSize);
87 
89  virtual void printData() const;
90  virtual void printDataToStream(std::ostream& stream) const;
91 
93  virtual void setEnvironmentalRecord( int index, const DtEnvironmentalRecord& envRecord );
94 
97  virtual DtNetEnvironmentalRecord* recordPointer(int recordIndex) const;
98 
99  //****
108 
109 
114  virtual int numberOfGeometryRecords() const;
115 
117  virtual DtEnvironmentalRecordType geometryRecordType(int index) const;
118 
122  virtual DtEnvironmentalRecordType stateRecordType(int index) const;
123 
129  virtual bool getGeometryRecord(int index,
130  DtEnvironmentalGeometryRecord& geometryRecord) const;
131 
137  virtual bool getStateRecord(int index,
138  DtEnvironmentalRecord& stateRecord) const;
139 
140 public:
141 
144  static DtPdu* create(const DtNetPacket* initial,
145  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
146 
148  static void addCallback( DtExerciseConn* conn, DtEnvironmentalProcessPduCb cb, void* usr );
149  static void removeCallback( DtExerciseConn* conn, DtEnvironmentalProcessPduCb cb, void* usr );
150 
163  static void setLengthIsWholeEnvRec(bool lengthMode);
164  static bool lengthIsWholeEnvRec();
165 
166 protected:
167 
169  virtual DtPduKind internalGetPduKind() const;
170 
174 
177  DtEnvironmentalProcessPdu* self() const;
178 
180  virtual char* var() const;
181 
184  virtual int recordOffset(int recordIndex) const;
185 
186  virtual void invalidateCache();
187 
193  void verifyRecDataSize();
194 
195 protected:
196 
198  static const int theStaticSize;
199  static bool theLengthIsWholeRec;
200 
204  mutable std::vector<int> myOffsetCache;
205 
206 };

Document ID: Generated on Mon Apr 8 04:49:21 EDT 2019 from SVN revision 197403
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)