VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDiGuyDecoders.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (c) 2020 MAK Technologies, Inc.
3  * All rights reserved.
4  ***************************************************************************/
8 
9 #pragma once
10 
11 #if DtDIS
12 
13 #include <vl/stateRepositoryExtension.h>
14 #include <vl/globalObjectDesignator.h>
15 
16 #include <vlpi/netStructs.h>
17 
18 #include <vl/packets/standardVariableRecordP.h>
19 
20 #include <vl/genericVariableRecord.h>
21 
22 #include <vl/stateRepositoryExtensionEncoder.h>
23 #include <vl/stateRepositoryExtensionDecoder.h>
25 
27 
28 namespace makVrv
29 {
30  namespace DT_PROTOCOL_NAMESPACE
31  {
33 
36  {
37  public:
38 
39  Dt_DEF_EXTENSION_NAME("diguyEquipment");
45  static DtStateRepositoryExtension* create();
46 
48  const DtString& equipmentString();
49  bool setEquipmentString(const DtString& val);
50 
52  void setForceNextUpdate();
53 
54  protected:
57 
58  private:
63 
64  };
65 
66 
69 
72  {
73  bool operator==(const DtNetDiguyEquipmentRecord& rhs) const
74  {
75  return strcmp((char*)myName, (char*)rhs.myName);
76  }
77  bool operator!=(const DtNetDiguyEquipmentRecord& rhs) const
78  {
79  return !operator==(rhs);
80  }
81 
82  // Name is a string value that will require padding to 8-byte boundary
83  // Name is variable size. Needs to be at the end of net struct.
84  DtNetU8 myName[1];
85 
86  private:
90  DtNetDiguyEquipmentRecord& operator=(const DtNetDiguyEquipmentRecord&) = delete;
91 
92  } ;
93 
98  {
99  public:
100 
103 
106 
108  DtDiGuyEquipmentRecord(void* netBuffer, unsigned int size);
109 
111  virtual DtDiGuyEquipmentRecord& operator=(const DtDiGuyEquipmentRecord& record);
112 
114  virtual DtStandardVariableRecord& operator=(const DtStandardVariableRecord& other);
115 
117  virtual bool operator==(const DtDiGuyEquipmentRecord& record);
118 
120  virtual bool operator==(const DtStandardVariableRecord& other);
121 
123 
124  virtual unsigned int recordType() const;
125  virtual void setRecordType(unsigned int recordType);
127 
129 
130  virtual unsigned int recordLength() const;
132  virtual void setRecordLength(unsigned int length);
134 
136 
137  virtual const char* equipmentString() const;
138  virtual void setEquipmentString(const DtString& nameValue);
140 
141 
144  virtual void writeRecord(void * addr) const;
145 
148  virtual void setFromNet(const void* netRecord, unsigned int length, DtStandardVariableRetCode* retCode = NULL);
149 
151  virtual void printDataToStream(std::ostream& stream) const;
152 
154  virtual unsigned int unpaddedNetsize() const;
155 
157  virtual DtStandardVariableRecord* clone() const;
158 
159  public:
160 
162  static DtStandardVariableRecord* create(void* addr, unsigned int length);
163 
165  static unsigned int recordTypeToUse();
166 
168  static void setRecordTypeToUse(unsigned int typeToUse);
169 
170  protected:
171 
172  std::vector<char> myRecordBuffer;
174  char* myNamePtr;
175 
176  protected:
177 
178  static const unsigned int theMinimumSize;
179 
180  };
181 
182 
187  {
188  public:
190  DtDiGuyEquipmentStateRepExtensionEncoder(DtExerciseConn* exConn);
193 
195  void encode(DtStateRepository* stateRep, const DtStateRepository& asSeenByRemote);
196 
198  DtStateRepositoryExtensionEncoder* clone() const;
199 
200  private:
205 
206  };
207 
212  {
213  public:
219  void decode(DtPdu * pdu, const DtStateRepository& stateRep);
220 
222  DtStateRepositoryExtensionDecoder* clone() const;
223 
226 
227  protected:
229 
230  private:
235 
236  };
237  }
238 }
239 
240 #endif // DtDIS
DIGuy equipment Attribute Record.
Definition: DtDiGuyDecoders.h:71
temp class for encoding equipment
Definition: DtDiGuyDecoders.h:186
temp class for decoding equipment, don&#39;t think it gets used but seemed required
Definition: DtDiGuyDecoders.h:211
voidpf void uLong size
Definition: ioapi.h:39
DtString myEquipmentString
Definition: DtDiGuyDecoders.h:55
class for dealing with extension string, will probably go away with vrlink upgrade.
Definition: DtDiGuyDecoders.h:35
#define DT_PROTOCOL_NAMESPACE
Contains defines and includes header files for protocols.
Definition: vrfProtocol.h:13
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
bool operator==(const DtNetDiguyEquipmentRecord &rhs) const
Definition: DtDiGuyDecoders.h:73
DtVrlinkEntityStateListener * myEntity
Definition: DtDiGuyDecoders.h:228
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer. buffer must have at least the number of bytes returned...
DtNetU8 myName[1]
Definition: DtDiGuyDecoders.h:84
static const unsigned int theMinimumSize
Definition: DtDiGuyDecoders.h:178
voidpf stream
Definition: ioapi.h:39
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
bool operator==(const DtTextureAtlasIndexParser::StringOrFloatAttrib &lhs, const DtTextureAtlasIndexParser::StringOrFloatAttrib &rhs)
needed for search comparison code
Definition: DtTextureAtlasIndexParser.h:160
DtNetDiguyEquipmentRecord * myRecordPtr
Definition: DtDiGuyDecoders.h:173
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
static DtReflectedEntityList * theReflectedEntityList
needed to look up the entity
Definition: DtDiGuyDecoders.h:225
char * myNamePtr
Definition: DtDiGuyDecoders.h:174
bool operator!=(const DtNetDiguyEquipmentRecord &rhs) const
Definition: DtDiGuyDecoders.h:77
std::vector< char > myRecordBuffer
Definition: DtDiGuyDecoders.h:172
temp class for this record
Definition: DtDiGuyDecoders.h:97

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)