VR-Forces 4.8 Class Documentation
 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) 2019 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 
102  virtual void setDiGuyAction( const DtString& val, bool paused,
103  double speed = 0.0, bool usePositioning = false, const DtVector& offset = DtVector(0,0,0) );
104 
106  virtual void setBodyWeight( double );
107  virtual double bodyWeight() const;
108 
109  virtual void setUuidString( const DtString& uuidStr );
110  virtual DtString uuidString() const;
111 
114 
115  virtual bool sensorsKilled() const;
116  virtual void setSensorsKilled( bool killed );
117 
119 
120 #if DtDIS
121  void mapPropertiesToRecordTypes( const DtRwProperties* properties,
123  std::map<unsigned,DtString>& recTypesToAttrNames );
124 #endif
125 
131  virtual bool updatePropertiesFromAttributes( bool updatesOnly = true );
132 
135  virtual void updateAttributesFromProperties();
136 
142  virtual void addPropertyDecoder( const DtString& propName, PropertyDecoder decoder, void* usr,
143  unsigned disRecordType = 0);
144 
150  virtual void addPropertyEncoder( const DtString& propName, PropertyEncoder encoder, void* usr,
151  unsigned disRecordType = 0);
152 
154  virtual void removePropertyEncodersAndDecoders();
155 
160  virtual bool createVrfObjectDataMessage();
161 
164  virtual void giveOwernshipOfProperties();
165 
167  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
168 
170  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
171 
175 
176  virtual void addPropertyUpdatedCallback(
178  virtual void removePropertyUpdatedCallback(
180 
182 
183 protected:
184 
186  virtual void initializeVrfObjectDataProperties();
187 
189  virtual void encodePropertyIfNeeded( const DtSymbolString& propName, DtReaderWriter* propRw );
190 
191 protected:
192 
194  {
195  PropertyDecoderInfo() : decoder(0), usr(0) {};
196  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
197  : propertyName(pn), decoder(d), usr(u) {};
198 
199  DtString propertyName;
200  PropertyDecoder decoder;
201  void* usr;
202  };
203 
205  {
206  PropertyEncoderInfo() : encoder(0), usr(0) {};
207  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
208  : propertyName(pn), encoder(e), usr(u) {};
209 
210  DtString propertyName;
211  PropertyEncoder encoder;
212  void* usr;
213  };
214 
218 
220 
221  std::list<PropertyDecoderInfo> myAdditionalDecoders;
222  std::list<PropertyEncoderInfo> myAdditionalEncoders;
223 
224  std::vector<char> myPropertyBuffer;
228 
230 
233 
234  mutable int myPropertyVersion;
235 
236  mutable DtString myUUIDString; // May be updated on access from extended data
237 
238  mutable std::map<DtString,DtString> myExtendedDataCache;
240 
242 
243 };
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: extEntityStateRepository.h:170
DtRangeItems myRangeItemsCache
Definition: extEntityStateRepository.h:239
void * usr
Definition: extEntityStateRepository.h:212
Definition: symbolString.h:20
DtTime myLastEncodeTime
Definition: extEntityStateRepository.h:226
bool myReceivedVrfPropertyVersion
Definition: extEntityStateRepository.h:232
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:156
bool mySensorsKilled
Definition: extEntityStateRepository.h:229
void * usr
Definition: extEntityStateRepository.h:201
voidpf void uLong size
Definition: ioapi.h:39
DtClock myClock
Definition: extEntityStateRepository.h:225
static const DtRwProperties & emptyProperties()
Definition: readerWriter.h:85
virtual const DtRwProperties & parameterProperties() const
Definition: extEntityStateRepository.h:91
Definition: extEntityStateRepository.h:193
Contains the DtSensorFieldOfViewPublisher class declaration.
DtRwProperties * myParameterProperties
Definition: extEntityStateRepository.h:216
PropertyEncoder encoder
Definition: extEntityStateRepository.h:211
std::list< PropertyEncoderInfo > myAdditionalEncoders
Definition: extEntityStateRepository.h:222
std::map< DtString, DtString > myExtendedDataCache
Definition: extEntityStateRepository.h:238
DtExtEntityStateRepository class extends the DtExtEntityBaseStateRepository to be able to handle exte...
Definition: extEntityStateRepository.h:25
Definition: extEntityStateRepository.h:204
PropertyEncoderInfo()
Definition: extEntityStateRepository.h:206
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:224
PropertyDecoder decoder
Definition: extEntityStateRepository.h:200
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: extEntityStateRepository.h:241
DtString myUUIDString
Definition: extEntityStateRepository.h:236
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: extEntityStateRepository.h:207
Definition: rangeItem.h:136
int myPropertyVersion
Definition: extEntityStateRepository.h:234
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: extEntityStateRepository.h:221
bool myIsInitialized
Definition: extEntityStateRepository.h:219
DtRwProperties * myStateProperties
Definition: extEntityStateRepository.h:215
PropertyDecoderInfo()
Definition: extEntityStateRepository.h:195
bool myReceivedVrfObjectDataVersion
Definition: extEntityStateRepository.h:231
A list of properties.
Definition: rwProperties.h:126
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: extEntityStateRepository.h:167
DtTime myLastDecodeTime
Definition: extEntityStateRepository.h:227
voidpf uLong offset
Definition: ioapi.h:42
virtual const DtRwProperties & stateProperties() const
Definition: extEntityStateRepository.h:81
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
bool myOwnsProperties
Definition: extEntityStateRepository.h:217
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: extEntityStateRepository.h:196

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)