VR-Forces 5.0.3 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) 2021 VT MAK
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();
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;
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 
101  virtual void setUuidString( const DtString& uuidStr );
102  virtual DtString uuidString() const;
103 
106 
107  virtual bool sensorsKilled() const;
108  virtual void setSensorsKilled( bool killed );
109 
111 
112 #if DtDIS
113  void mapPropertiesToRecordTypes( const DtRwProperties* properties,
115  std::map<unsigned,DtString>& recTypesToAttrNames );
116 #endif
117 
123  virtual bool updatePropertiesFromAttributes( bool updatesOnly = true );
124 
127  virtual void updateAttributesFromProperties();
128 
134  virtual void addPropertyDecoder( const DtString& propName, PropertyDecoder decoder, void* usr,
135  unsigned disRecordType = 0);
136 
142  virtual void addPropertyEncoder( const DtString& propName, PropertyEncoder encoder, void* usr,
143  unsigned disRecordType = 0);
144 
146  virtual void removePropertyEncodersAndDecoders();
147 
152  virtual bool createVrfObjectDataMessage();
153 
156  virtual void giveOwernshipOfProperties();
157 
159  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
160 
162  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
163 
167 
168  virtual void addPropertyUpdatedCallback(
170  virtual void removePropertyUpdatedCallback(
172 
174 
175 protected:
176 
178  virtual void initializeVrfObjectDataProperties();
179 
181  virtual void encodePropertyIfNeeded( const DtSymbolString& propName, DtReaderWriter* propRw );
182 
183 protected:
184 
186  {
187  PropertyDecoderInfo() : decoder(0), usr(0) {};
188  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
189  : propertyName(pn), decoder(d), usr(u) {};
190 
191  DtString propertyName;
192  PropertyDecoder decoder;
193  void* usr;
194  };
195 
197  {
198  PropertyEncoderInfo() : encoder(0), usr(0) {};
199  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
200  : propertyName(pn), encoder(e), usr(u) {};
201 
202  DtString propertyName;
203  PropertyEncoder encoder;
204  void* usr;
205  };
206 
210 
212 
213  std::list<PropertyDecoderInfo> myAdditionalDecoders;
214  std::list<PropertyEncoderInfo> myAdditionalEncoders;
215 
216  std::vector<char> myPropertyBuffer;
220 
222 
225 
226  mutable int myPropertyVersion;
227 
228  mutable DtString myUUIDString; // May be updated on access from extended data
229 
231 
233 
234 };
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: extEntityStateRepository.h:162
DtRangeItems myRangeItemsCache
Definition: extEntityStateRepository.h:230
void * usr
Definition: extEntityStateRepository.h:204
Definition: symbolString.h:20
DtTime myLastEncodeTime
Definition: extEntityStateRepository.h:218
bool myReceivedVrfPropertyVersion
Definition: extEntityStateRepository.h:224
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:156
bool mySensorsKilled
Definition: extEntityStateRepository.h:221
void * usr
Definition: extEntityStateRepository.h:193
voidpf void uLong size
Definition: ioapi.h:39
DtClock myClock
Definition: extEntityStateRepository.h:217
static const DtRwProperties & emptyProperties()
Definition: readerWriter.h:85
virtual const DtRwProperties & parameterProperties() const
Definition: extEntityStateRepository.h:91
Definition: extEntityStateRepository.h:185
Contains the DtSensorFieldOfViewPublisher class declaration.
DtRwProperties * myParameterProperties
Definition: extEntityStateRepository.h:208
PropertyEncoder encoder
Definition: extEntityStateRepository.h:203
std::list< PropertyEncoderInfo > myAdditionalEncoders
Definition: extEntityStateRepository.h:214
DtExtEntityStateRepository class extends the DtExtEntityBaseStateRepository to be able to handle exte...
Definition: extEntityStateRepository.h:25
Definition: extEntityStateRepository.h:196
PropertyEncoderInfo()
Definition: extEntityStateRepository.h:198
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:152
std::vector< char > myPropertyBuffer
Definition: extEntityStateRepository.h:216
PropertyDecoder decoder
Definition: extEntityStateRepository.h:192
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: extEntityStateRepository.h:232
DtString myUUIDString
Definition: extEntityStateRepository.h:228
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: extEntityStateRepository.h:199
Definition: rangeItem.h:206
int myPropertyVersion
Definition: extEntityStateRepository.h:226
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: extEntityStateRepository.h:213
bool myIsInitialized
Definition: extEntityStateRepository.h:211
DtRwProperties * myStateProperties
Definition: extEntityStateRepository.h:207
PropertyDecoderInfo()
Definition: extEntityStateRepository.h:187
bool myReceivedVrfObjectDataVersion
Definition: extEntityStateRepository.h:223
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: extEntityStateRepository.h:159
DtTime myLastDecodeTime
Definition: extEntityStateRepository.h:219
virtual const DtRwProperties & stateProperties() const
Definition: extEntityStateRepository.h:81
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
bool myOwnsProperties
Definition: extEntityStateRepository.h:209
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: extEntityStateRepository.h:188

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)