VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
extEntityStateRepository.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2025 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
16 #if DtHLA
18 #else
20 #endif
21 #include <vector>
22 
26  public makVrfVrlinkExtToolkit::DtStateRepositoryWithExtendedAttributes<DtExtEntityBaseStateRepository>
27 {
28 public:
29 
30  typedef void (*PropertyDecoder) (const char* buffer, unsigned size, int version, void* usr);
31  typedef void (*PropertyEncoder) (std::vector<char>& buffer, void* usr);
32 
33 public:
34 
38 
41 
44 
46  virtual ~DtExtEntityStateRepository() override;
47 
50 
55  virtual void initialize( DtRwProperties* stateProps, DtRwProperties* paramProps );
56 
60  virtual void initialize( const DtRwProperties& stateProps, const DtRwProperties& paramProps );
61 
65  virtual void initialize();
66 
68 
70  virtual bool isInitialized() const;
71 
74 
76  virtual DtStateRepository *clone(bool copy = false) const override;
77 
79  virtual int compare( const DtExtEntityStateRepository* rhs );
80 
81  virtual const DtRwProperties& stateProperties() const
82  {
83  if ( myStateProperties )
84  {
85  return *myStateProperties;
86  }
87 
89  }
90 
91  virtual const DtRwProperties& parameterProperties() const
92  {
93  if ( myParameterProperties )
94  {
95  return *myParameterProperties;
96  }
97 
99  }
100 
103  virtual bool sensorsKilled() const;
104  virtual void setSensorsKilled( bool killed );
106 
109  virtual DtSimulationAddress simEngineAddress() const;
110  virtual void setSimEngineAddress(DtSimulationAddress addr);
112 
113 #if DtDIS
114  void mapPropertiesToRecordTypes( const DtRwProperties* properties,
116  std::map<unsigned,DtString>& recTypesToAttrNames );
117 #endif
118 
124  virtual bool updatePropertiesFromAttributes( bool updatesOnly = true );
125 
128  virtual void updateAttributesFromProperties();
129 
135  virtual void addPropertyDecoder(const DtString& propName, PropertyDecoder decoder, void* usr,
136  unsigned disRecordType = 0);
137 
143  virtual void addPropertyEncoder(const DtString& propName, PropertyEncoder encoder, void* usr,
144  unsigned disRecordType = 0);
145 
152  virtual void addVrfObjectDataDecoder( const DtString& propName, PropertyDecoder decoder, void* usr,
153  unsigned disRecordType = 0);
154 
159  virtual void addVrfObjectDataEncoder( const DtString& propName, PropertyEncoder encoder, void* usr,
160  unsigned disRecordType = 0);
161 
163  virtual void removePropertyEncodersAndDecoders();
164 
169  virtual bool createVrfObjectDataMessage() override;
170 
173  virtual void giveOwernshipOfProperties();
174 
176  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
177 
179  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
180 
184 
185  virtual void addPropertyUpdatedCallback(
187  virtual void removePropertyUpdatedCallback(
189 
191 
192 protected:
193 
195  virtual void initializeVrfObjectDataProperties();
196 
198  virtual void encodePropertyIfNeeded( const DtSymbolString& propName, DtReaderWriter* propRw );
199 
200 protected:
201 
203  {
204  PropertyDecoderInfo() : decoder(0), usr(0) {};
205  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
206  : propertyName(pn), decoder(d), usr(u) {};
207 
208  DtString propertyName;
209  PropertyDecoder decoder;
210  void* usr;
211  };
212 
214  {
215  PropertyEncoderInfo() : encoder(0), usr(0) {};
216  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
217  : propertyName(pn), encoder(e), usr(u) {};
218 
219  DtString propertyName;
220  PropertyEncoder encoder;
221  void* usr;
222  };
223 
227 
229 
230  std::list<PropertyDecoderInfo> myVrfObjectDataDecoders;
231  std::list<PropertyDecoderInfo> myAdditionalDecoders;
232  std::list<PropertyEncoderInfo> myAdditionalEncoders;
233 
234  std::vector<char> myPropertyBuffer;
238 
240 
243 
244  DtSimulationAddress mySimEngineAddress;
245 
246  mutable int myPropertyVersion;
247 
249 
251 
252 };
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: extEntityStateRepository.h:179
DtRangeItems myRangeItemsCache
Definition: extEntityStateRepository.h:248
void * usr
Definition: extEntityStateRepository.h:221
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
DtTime myLastEncodeTime
Definition: extEntityStateRepository.h:236
bool myReceivedVrfPropertyVersion
Definition: extEntityStateRepository.h:242
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:155
bool mySensorsKilled
Definition: extEntityStateRepository.h:239
void * usr
Definition: extEntityStateRepository.h:210
voidpf void uLong size
Definition: ioapi.h:39
DtClock myClock
Definition: extEntityStateRepository.h:235
static const DtRwProperties & emptyProperties()
Definition: readerWriter.h:85
virtual const DtRwProperties & parameterProperties() const
Definition: extEntityStateRepository.h:91
Definition: extEntityStateRepository.h:202
Contains the DtSensorFieldOfViewPublisher class declaration.
DtSimulationAddress mySimEngineAddress
Definition: extEntityStateRepository.h:244
DtRwProperties * myParameterProperties
Definition: extEntityStateRepository.h:225
PropertyEncoder encoder
Definition: extEntityStateRepository.h:220
std::list< PropertyEncoderInfo > myAdditionalEncoders
Definition: extEntityStateRepository.h:232
DtExtEntityStateRepository class extends the DtExtEntityBaseStateRepository to be able to handle exte...
Definition: extEntityStateRepository.h:25
Definition: extEntityStateRepository.h:213
PropertyEncoderInfo()
Definition: extEntityStateRepository.h:215
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
std::vector< char > myPropertyBuffer
Definition: extEntityStateRepository.h:234
PropertyDecoder decoder
Definition: extEntityStateRepository.h:209
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: extEntityStateRepository.h:250
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: extEntityStateRepository.h:216
Definition: rangeItem.h:206
int myPropertyVersion
Definition: extEntityStateRepository.h:246
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: extEntityStateRepository.h:231
bool myIsInitialized
Definition: extEntityStateRepository.h:228
DtRwProperties * myStateProperties
Definition: extEntityStateRepository.h:224
PropertyDecoderInfo()
Definition: extEntityStateRepository.h:204
bool myReceivedVrfObjectDataVersion
Definition: extEntityStateRepository.h:241
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
std::list< PropertyDecoderInfo > myVrfObjectDataDecoders
Definition: extEntityStateRepository.h:230
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: extEntityStateRepository.h:176
DtTime myLastDecodeTime
Definition: extEntityStateRepository.h:237
virtual const DtRwProperties & stateProperties() const
Definition: extEntityStateRepository.h:81
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
bool myOwnsProperties
Definition: extEntityStateRepository.h:226
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: extEntityStateRepository.h:205

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)