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) 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 
103 
104  virtual bool sensorsKilled() const;
105  virtual void setSensorsKilled( bool killed );
106 
108 
109 #if DtDIS
110  void mapPropertiesToRecordTypes( const DtRwProperties* properties,
112  std::map<unsigned,DtString>& recTypesToAttrNames );
113 #endif
114 
120  virtual bool updatePropertiesFromAttributes( bool updatesOnly = true );
121 
124  virtual void updateAttributesFromProperties();
125 
131  virtual void addPropertyDecoder(const DtString& propName, PropertyDecoder decoder, void* usr,
132  unsigned disRecordType = 0);
133 
139  virtual void addPropertyEncoder(const DtString& propName, PropertyEncoder encoder, void* usr,
140  unsigned disRecordType = 0);
141 
148  virtual void addVrfObjectDataDecoder( const DtString& propName, PropertyDecoder decoder, void* usr,
149  unsigned disRecordType = 0);
150 
155  virtual void addVrfObjectDataEncoder( const DtString& propName, PropertyEncoder encoder, void* usr,
156  unsigned disRecordType = 0);
157 
159  virtual void removePropertyEncodersAndDecoders();
160 
165  virtual bool createVrfObjectDataMessage();
166 
169  virtual void giveOwernshipOfProperties();
170 
172  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
173 
175  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
176 
180 
181  virtual void addPropertyUpdatedCallback(
183  virtual void removePropertyUpdatedCallback(
185 
187 
188 protected:
189 
191  virtual void initializeVrfObjectDataProperties();
192 
194  virtual void encodePropertyIfNeeded( const DtSymbolString& propName, DtReaderWriter* propRw );
195 
196 protected:
197 
199  {
200  PropertyDecoderInfo() : decoder(0), usr(0) {};
201  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
202  : propertyName(pn), decoder(d), usr(u) {};
203 
204  DtString propertyName;
205  PropertyDecoder decoder;
206  void* usr;
207  };
208 
210  {
211  PropertyEncoderInfo() : encoder(0), usr(0) {};
212  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
213  : propertyName(pn), encoder(e), usr(u) {};
214 
215  DtString propertyName;
216  PropertyEncoder encoder;
217  void* usr;
218  };
219 
223 
225 
226  std::list<PropertyDecoderInfo> myVrfObjectDataDecoders;
227  std::list<PropertyDecoderInfo> myAdditionalDecoders;
228  std::list<PropertyEncoderInfo> myAdditionalEncoders;
229 
230  std::vector<char> myPropertyBuffer;
234 
236 
239 
240  mutable int myPropertyVersion;
241 
243 
245 
246 };
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: extEntityStateRepository.h:175
DtRangeItems myRangeItemsCache
Definition: extEntityStateRepository.h:242
void * usr
Definition: extEntityStateRepository.h:217
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:232
bool myReceivedVrfPropertyVersion
Definition: extEntityStateRepository.h:238
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:156
bool mySensorsKilled
Definition: extEntityStateRepository.h:235
void * usr
Definition: extEntityStateRepository.h:206
voidpf void uLong size
Definition: ioapi.h:39
DtClock myClock
Definition: extEntityStateRepository.h:231
static const DtRwProperties & emptyProperties()
Definition: readerWriter.h:85
virtual const DtRwProperties & parameterProperties() const
Definition: extEntityStateRepository.h:91
Definition: extEntityStateRepository.h:198
Contains the DtSensorFieldOfViewPublisher class declaration.
DtRwProperties * myParameterProperties
Definition: extEntityStateRepository.h:221
PropertyEncoder encoder
Definition: extEntityStateRepository.h:216
std::list< PropertyEncoderInfo > myAdditionalEncoders
Definition: extEntityStateRepository.h:228
DtExtEntityStateRepository class extends the DtExtEntityBaseStateRepository to be able to handle exte...
Definition: extEntityStateRepository.h:25
Definition: extEntityStateRepository.h:209
PropertyEncoderInfo()
Definition: extEntityStateRepository.h:211
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:230
PropertyDecoder decoder
Definition: extEntityStateRepository.h:205
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: extEntityStateRepository.h:244
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: extEntityStateRepository.h:212
Definition: rangeItem.h:206
int myPropertyVersion
Definition: extEntityStateRepository.h:240
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: extEntityStateRepository.h:227
bool myIsInitialized
Definition: extEntityStateRepository.h:224
DtRwProperties * myStateProperties
Definition: extEntityStateRepository.h:220
PropertyDecoderInfo()
Definition: extEntityStateRepository.h:200
bool myReceivedVrfObjectDataVersion
Definition: extEntityStateRepository.h:237
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
std::list< PropertyDecoderInfo > myVrfObjectDataDecoders
Definition: extEntityStateRepository.h:226
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: extEntityStateRepository.h:172
DtTime myLastDecodeTime
Definition: extEntityStateRepository.h:233
virtual const DtRwProperties & stateProperties() const
Definition: extEntityStateRepository.h:81
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
bool myOwnsProperties
Definition: extEntityStateRepository.h:222
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: extEntityStateRepository.h:201

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)