VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
extAerodromeStateRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 
17 #if DtHLA
19 #else
21 #endif
22 #include <vector>
23 
24 
28  public makVrfVrlinkExtToolkit::DtStateRepositoryWithExtendedAttributes<DtExtAerodromeBaseStateRepository>
29 {
30 
31 public:
32 
33  typedef void (*PropertyDecoder) (const char* buffer, unsigned size, int version, void* usr);
34  typedef void (*PropertyEncoder) (std::vector<char>& buffer, void* usr);
35 
38 
41 
44 
51  virtual void initialize(DtRwProperties* stateProps, DtRwProperties* paramProps);
52 
56  virtual void initialize(const DtRwProperties& stateProps, const DtRwProperties& paramProps);
57 
61  virtual void initialize();
63 
65  virtual bool isInitialized() const;
66 
69  const DtExtAerodromeStateRepository& orig);
70 
72  virtual DtStateRepository* clone(bool copy = false) const;
73 
74  virtual const DtRwProperties& stateProperties() const
75  {
76  if (myStateProperties)
77  {
78  return *myStateProperties;
79  }
80 
82  }
83 
84  virtual const DtRwProperties& parameterProperties() const
85  {
86  if (myParameterProperties)
87  {
88  return *myParameterProperties;
89  }
90 
92  }
93 
96  virtual bool sensorsKilled() const;
97  virtual void setSensorsKilled(bool killed);
99 
100 #if DtDIS
101  void mapPropertiesToRecordTypes(const DtRwProperties* properties,
103  std::map<unsigned, DtString>& recTypesToAttrNames);
104 #endif
105 
107 
109  virtual void updateExtensions();
110 
116  virtual bool updatePropertiesFromAttributes(bool updatesOnly = true);
117 
120  virtual void updateAttributesFromProperties();
121 
127  virtual void addPropertyDecoder(const DtString& propName, PropertyDecoder decoder, void* usr,
128  unsigned disRecordType = 0);
129 
135  virtual void addPropertyEncoder(const DtString& propName, PropertyEncoder encoder, void* usr,
136  unsigned disRecordType = 0);
137 
144  virtual void addVrfObjectDataDecoder( const DtString& propName, PropertyDecoder decoder, void* usr,
145  unsigned disRecordType = 0);
146 
151  virtual void addVrfObjectDataEncoder( const DtString& propName, PropertyEncoder encoder, void* usr,
152  unsigned disRecordType = 0);
153 
155  virtual void removePropertyEncodersAndDecoders();
156 
161  virtual bool createVrfObjectDataMessage();
162 
165  virtual void giveOwernshipOfProperties();
166 
168  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
169 
171  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
172 
175 
176  virtual void addPropertyUpdatedCallback(
178  virtual void removePropertyUpdatedCallback(
181 
182 protected:
183 
185  virtual void initializeVrfObjectDataProperties();
186 
188  virtual void encodePropertyIfNeeded(const DtSymbolString& propName, DtReaderWriter* propRw);
189 
190 protected:
191 
194  DtEntityType myLastCheckedEnvType;
196 
198 
200  {
201  PropertyDecoderInfo() : decoder(0), usr(0) {};
202  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
203  : propertyName(pn), decoder(d), usr(u) {};
204 
205  DtString propertyName;
206  PropertyDecoder decoder;
207  void* usr;
208  };
209 
211  {
212  PropertyEncoderInfo() : encoder(0), usr(0) {};
213  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
214  : propertyName(pn), encoder(e), usr(u) {};
215 
216  DtString propertyName;
217  PropertyEncoder encoder;
218  void* usr;
219  };
220 
221  std::list<PropertyDecoderInfo> myVrfObjectDataDecoders;
222  std::list<PropertyDecoderInfo> myAdditionalDecoders;
223  std::list<PropertyEncoderInfo> myAdditionalEncoders;
224 
225  std::vector<char> myPropertyBuffer;
229 
231 
234 
235  mutable int myPropertyVersion;
236 
238 
240 };
241 
bool myIsInitialized
Definition: extAerodromeStateRepository.h:197
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
Definition: extAerodromeStateRepository.h:199
virtual const DtRwProperties & stateProperties() const
Definition: extAerodromeStateRepository.h:74
void * usr
Definition: extAerodromeStateRepository.h:207
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:155
std::list< PropertyDecoderInfo > myVrfObjectDataDecoders
Definition: extAerodromeStateRepository.h:221
PropertyDecoderInfo()
Definition: extAerodromeStateRepository.h:201
voidpf void uLong size
Definition: ioapi.h:39
static const DtRwProperties & emptyProperties()
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: extAerodromeStateRepository.h:213
Definition: readerWriter.h:85
void * usr
Definition: extAerodromeStateRepository.h:218
PropertyEncoderInfo()
Definition: extAerodromeStateRepository.h:212
Contains the DtSensorFieldOfViewPublisher class declaration.
bool myReceivedVrfPropertyVersion
Definition: extAerodromeStateRepository.h:233
bool myOwnsProperties
Definition: extAerodromeStateRepository.h:195
bool myReceivedVrfObjectDataVersion
Definition: extAerodromeStateRepository.h:232
DtTime myLastEncodeTime
Definition: extAerodromeStateRepository.h:227
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: extAerodromeStateRepository.h:222
DtRangeItems myRangeItemsCache
Definition: extAerodromeStateRepository.h:237
std::list< PropertyEncoderInfo > myAdditionalEncoders
Definition: extAerodromeStateRepository.h:223
This class works just as DtCalllbackTable, but manages callbacks that have no arguments, and therefore don&#39;t fit in the template defined by DtCallbackList.
Definition: noArgumentCallbackList.h:151
int myPropertyVersion
Definition: extAerodromeStateRepository.h:235
DtRwProperties * myStateProperties
Definition: extAerodromeStateRepository.h:192
bool mySensorsKilled
Definition: extAerodromeStateRepository.h:230
DtRwProperties * myParameterProperties
Definition: extAerodromeStateRepository.h:193
Definition: rangeItem.h:206
PropertyDecoder decoder
Definition: extAerodromeStateRepository.h:206
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: extAerodromeStateRepository.h:239
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: extAerodromeStateRepository.h:171
std::vector< char > myPropertyBuffer
Definition: extAerodromeStateRepository.h:225
DtTime myLastDecodeTime
Definition: extAerodromeStateRepository.h:228
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
DtExtAerodromeStateRepository class extends the DtExtAerodromeBaseStateRepository to be able to handl...
Definition: extAerodromeStateRepository.h:27
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: extAerodromeStateRepository.h:202
virtual const DtRwProperties & parameterProperties() const
Definition: extAerodromeStateRepository.h:84
DtClock myClock
Definition: extAerodromeStateRepository.h:226
DtEntityType myLastCheckedEnvType
Definition: extAerodromeStateRepository.h:194
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
PropertyEncoder encoder
Definition: extAerodromeStateRepository.h:217
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: extAerodromeStateRepository.h:168
Definition: extAerodromeStateRepository.h:210

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)