VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
controlObjectRepository.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 
24 
28  public makVrfVrlinkExtToolkit::DtStateRepositoryWithExtendedAttributes<DtControlObjectBaseRepository>
29 {
30 
31 public:
32 
33  typedef void (*PropertyDecoder) (const char* buffer, unsigned size, int version, void* usr);
34  typedef void (*PropertyEncoder) (std::vector<char>& buffer, void* usr);
35 
38 
40  virtual ~DtControlObjectRepository();
41 
44 
51  virtual void initialize(DtRwProperties* stateProps, DtRwProperties* paramProps);
52 
56  virtual void initialize(const DtRwProperties& stateProps, const DtRwProperties& paramProps);
57 
61  virtual void initialize();
63 
65  virtual bool isInitialized() const;
66 
69  const DtControlObjectRepository& orig);
70 
72  virtual DtStateRepository* clone(bool copy = false) const;
73 
76  virtual int compare(const DtControlObjectRepository* rhs);
77 
78  virtual const DtRwProperties& stateProperties() const
79  {
80  if (myStateProperties)
81  {
82  return *myStateProperties;
83  }
84 
86  }
87 
88  virtual const DtRwProperties& parameterProperties() const
89  {
90  if (myParameterProperties)
91  {
92  return *myParameterProperties;
93  }
94 
96  }
97 
98  virtual void setUuidString(const DtString& uuidStr);
99  virtual DtString uuidString() const;
100 
103  virtual bool sensorsKilled() const;
104  virtual void setSensorsKilled(bool killed);
106 
107 #if DtDIS
108 
109  void mapPropertiesToRecordTypes(const DtRwProperties* properties,
110  std::map<unsigned, DtString>& recTypesToAttrNames);
111 #endif
112 
114 
116  virtual void updateExtensions();
117 
123  virtual bool updatePropertiesFromAttributes(bool updatesOnly = true);
124 
127  virtual void updateAttributesFromProperties();
128 
133  virtual void addPropertyDecoder(const DtString& propName, PropertyDecoder decoder, void* usr);
134 
139  virtual void addPropertyEncoder(const DtString& propName, PropertyEncoder encoder, void* usr);
140 
145  virtual bool createVrfObjectDataMessage();
146 
149  virtual void giveOwernshipOfProperties();
150 
152  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
153 
155  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
156 
159 
160  virtual void addPropertyUpdatedCallback(
162  virtual void removePropertyUpdatedCallback(
165 
166 protected:
167 
169  virtual void initializeVrfObjectDataProperties();
170 
172  virtual void encodePropertyIfNeeded(const DtSymbolString& propName, DtReaderWriter* propRw);
173 
174 protected:
175 
178  DtEntityType myLastCheckedEnvType;
180 
182 
184  {
185  PropertyDecoderInfo() : decoder(0), usr(0) {};
186  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
187  : propertyName(pn), decoder(d), usr(u) {};
188 
189  DtString propertyName;
190  PropertyDecoder decoder;
191  void* usr;
192  };
193 
195  {
196  PropertyEncoderInfo() : encoder(0), usr(0) {};
197  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
198  : propertyName(pn), encoder(e), usr(u) {};
199 
200  DtString propertyName;
201  PropertyEncoder encoder;
202  void* usr;
203  };
204 
205  std::list<PropertyDecoderInfo> myAdditionalDecoders;
206  std::list<PropertyEncoderInfo> myAdditionalEncoders;
207 
208  std::vector<char> myPropertyBuffer;
212 
214 
217 
218  mutable int myPropertyVersion;
219 
220  mutable DtString myUUIDString; // May be updated on access from extended data
221 
222  mutable std::map<DtString, DtString> myExtendedDataCache;
224 
226 };
227 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)