VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
extAggregateStateRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 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 
27  public makVrfVrlinkExtToolkit::DtStateRepositoryWithExtendedAttributes<DtExtAggregateBaseStateRepository>
28 {
29 
30 public:
31 
32  typedef void (*PropertyDecoder) (const char* buffer, unsigned size, int version, void* usr);
33  typedef void (*PropertyEncoder) (std::vector<char>& buffer, void* usr);
34 
37 
40 
43 
50  virtual void initialize(DtRwProperties* stateProps, DtRwProperties* paramProps);
51 
55  virtual void initialize(const DtRwProperties& stateProps, const DtRwProperties& paramProps);
56 
60  virtual void initialize();
62 
64  virtual bool isInitialized() const;
65 
68  const DtExtAggregateStateRepository& orig);
69 
71  virtual DtStateRepository* clone(bool copy = false) const;
72 
75  virtual int compare(const DtExtAggregateStateRepository* rhs);
76 
77  virtual const DtRwProperties& stateProperties() const
78  {
79  if (myStateProperties)
80  {
81  return *myStateProperties;
82  }
83 
85  }
86 
87  virtual const DtRwProperties& parameterProperties() const
88  {
89  if (myParameterProperties)
90  {
91  return *myParameterProperties;
92  }
93 
95  }
96 
97  virtual void setUuidString(const DtString& uuidStr);
98  virtual DtString uuidString() const;
99 
102  virtual bool sensorsKilled() const;
103  virtual void setSensorsKilled(bool killed);
105 
106 #if DtDIS
107  void mapPropertiesToRecordTypes(const DtRwProperties* properties,
109  std::map<unsigned, DtString>& recTypesToAttrNames);
110 #endif
111 
113 
115  virtual void updateExtensions();
116 
122  virtual bool updatePropertiesFromAttributes(bool updatesOnly = true);
123 
126  virtual void updateAttributesFromProperties();
127 
132  virtual void addPropertyDecoder(const DtString& propName, PropertyDecoder decoder, void* usr);
133 
138  virtual void addPropertyEncoder(const DtString& propName, PropertyEncoder encoder, void* usr);
139 
141  virtual void removePropertyEncodersAndDecoders();
142 
147  virtual bool createVrfObjectDataMessage();
148 
151  virtual void giveOwernshipOfProperties();
152 
154  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
155 
157  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
158 
161 
162  virtual void addPropertyUpdatedCallback(
164  virtual void removePropertyUpdatedCallback(
167 
168 protected:
169 
171  virtual void initializeVrfObjectDataProperties();
172 
174  virtual void encodePropertyIfNeeded(const DtSymbolString& propName, DtReaderWriter* propRw);
175 
177  virtual char* encodingBuffer(int size);
178 
179 protected:
180 
184 
186 
188  {
189  PropertyDecoderInfo() : decoder(0), usr(0) {};
190  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
191  : propertyName(pn), decoder(d), usr(u) {};
192 
193  DtString propertyName;
194  PropertyDecoder decoder;
195  void* usr;
196  };
197 
199  {
200  PropertyEncoderInfo() : encoder(0), usr(0) {};
201  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
202  : propertyName(pn), encoder(e), usr(u) {};
203 
204  DtString propertyName;
205  PropertyEncoder encoder;
206  void* usr;
207  };
208 
209  std::list<PropertyDecoderInfo> myAdditionalDecoders;
210  std::list<PropertyEncoderInfo> myAdditionalEncoders;
211 
212  std::vector<char> myPropertyBuffer;
216 
218 
221 
222  mutable int myPropertyVersion;
223 
224  mutable DtString myUUIDString; // May be updated on access from extended data
225 
227 
229 };
230 
PropertyDecoderInfo()
Definition: extAggregateStateRepository.h:189
Contains the DtExtAggregateBaseStateRepository class.
PropertyDecoder decoder
Definition: extAggregateStateRepository.h:194
DtString myUUIDString
Definition: extAggregateStateRepository.h:224
Definition: symbolString.h:20
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: extAggregateStateRepository.h:228
DtTime myLastEncodeTime
Definition: extAggregateStateRepository.h:214
std::list< PropertyEncoderInfo > myAdditionalEncoders
Definition: extAggregateStateRepository.h:210
DtRwProperties * myStateProperties
Definition: extAggregateStateRepository.h:181
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:156
int myPropertyVersion
Definition: extAggregateStateRepository.h:222
void * usr
Definition: extAggregateStateRepository.h:195
Definition: extAggregateStateRepository.h:187
voidpf void uLong size
Definition: ioapi.h:39
static const DtRwProperties & emptyProperties()
PropertyEncoderInfo()
Definition: extAggregateStateRepository.h:200
Definition: readerWriter.h:85
DtTime myLastDecodeTime
Definition: extAggregateStateRepository.h:215
Contains the DtSensorFieldOfViewPublisher class declaration.
std::vector< char > myPropertyBuffer
Definition: extAggregateStateRepository.h:212
virtual const DtRwProperties & stateProperties() const
Definition: extAggregateStateRepository.h:77
bool myReceivedVrfObjectDataVersion
Definition: extAggregateStateRepository.h:219
DtRwProperties * myParameterProperties
Definition: extAggregateStateRepository.h:182
bool myIsInitialized
Definition: extAggregateStateRepository.h:185
bool myReceivedVrfPropertyVersion
Definition: extAggregateStateRepository.h:220
DtRangeItems myRangeItemsCache
Definition: extAggregateStateRepository.h:226
bool mySensorsKilled
Definition: extAggregateStateRepository.h:217
DtClock myClock
Definition: extAggregateStateRepository.h:213
virtual const DtRwProperties & parameterProperties() const
Definition: extAggregateStateRepository.h:87
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: extAggregateStateRepository.h:201
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
PropertyEncoder encoder
Definition: extAggregateStateRepository.h:205
Definition: rangeItem.h:206
void * usr
Definition: extAggregateStateRepository.h:206
bool myOwnsProperties
Definition: extAggregateStateRepository.h:183
Definition: extAggregateStateRepository.h:198
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: extAggregateStateRepository.h:190
A list of properties.
Definition: rwProperties.h:126
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: extAggregateStateRepository.h:209
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: extAggregateStateRepository.h:154
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: extAggregateStateRepository.h:157
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
DtExtAggregateStateRepository class extends the DtExtAggregateBaseStateRepository to be able to handl...
Definition: extAggregateStateRepository.h:26

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)