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 Feb 6 18:36:34 EST 2017 from SVN revision 173107
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)