VR-Forces 5.0.1 Developer's Guide
 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  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 
142  virtual void removePropertyEncodersAndDecoders();
143 
148  virtual bool createVrfObjectDataMessage();
149 
152  virtual void giveOwernshipOfProperties();
153 
155  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
156 
158  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
159 
162 
163  virtual void addPropertyUpdatedCallback(
165  virtual void removePropertyUpdatedCallback(
168 
169 protected:
170 
172  virtual void initializeVrfObjectDataProperties();
173 
175  virtual void encodePropertyIfNeeded(const DtSymbolString& propName, DtReaderWriter* propRw);
176 
177 protected:
178 
181  DtEntityType myLastCheckedEnvType;
183 
185 
187  {
188  PropertyDecoderInfo() : decoder(0), usr(0) {};
189  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
190  : propertyName(pn), decoder(d), usr(u) {};
191 
192  DtString propertyName;
193  PropertyDecoder decoder;
194  void* usr;
195  };
196 
198  {
199  PropertyEncoderInfo() : encoder(0), usr(0) {};
200  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
201  : propertyName(pn), encoder(e), usr(u) {};
202 
203  DtString propertyName;
204  PropertyEncoder encoder;
205  void* usr;
206  };
207 
208  std::list<PropertyDecoderInfo> myAdditionalDecoders;
209  std::list<PropertyEncoderInfo> myAdditionalEncoders;
210 
211  std::vector<char> myPropertyBuffer;
215 
217 
220 
221  mutable int myPropertyVersion;
222 
223  mutable DtString myUUIDString; // May be updated on access from extended data
224 
226 
228 };
229 
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: controlObjectRepository.h:158
bool mySensorsKilled
Definition: controlObjectRepository.h:216
Definition: symbolString.h:20
DtRwProperties * myParameterProperties
Definition: controlObjectRepository.h:180
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:156
PropertyEncoder encoder
Definition: controlObjectRepository.h:204
voidpf void uLong size
Definition: ioapi.h:39
static const DtRwProperties & emptyProperties()
Definition: readerWriter.h:85
bool myReceivedVrfPropertyVersion
Definition: controlObjectRepository.h:219
Contains the DtSensorFieldOfViewPublisher class declaration.
Definition: controlObjectRepository.h:197
Definition: controlObjectRepository.h:186
DtClock myClock
Definition: controlObjectRepository.h:212
DtTime myLastEncodeTime
Definition: controlObjectRepository.h:213
DtTime myLastDecodeTime
Definition: controlObjectRepository.h:214
virtual const DtRwProperties & parameterProperties() const
Definition: controlObjectRepository.h:88
DtControlObjectRepository class extends the DtControlObjectBaseRepository to be able to handle extend...
Definition: controlObjectRepository.h:27
std::list< PropertyEncoderInfo > myAdditionalEncoders
Definition: controlObjectRepository.h:209
Contains the DtControlObjectBaseRepository class. This is the base extension class for the Environmen...
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
void * usr
Definition: controlObjectRepository.h:194
int myPropertyVersion
Definition: controlObjectRepository.h:221
bool myIsInitialized
Definition: controlObjectRepository.h:184
void * usr
Definition: controlObjectRepository.h:205
DtRangeItems myRangeItemsCache
Definition: controlObjectRepository.h:225
PropertyEncoderInfo()
Definition: controlObjectRepository.h:199
Definition: rangeItem.h:206
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: controlObjectRepository.h:208
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: controlObjectRepository.h:155
bool myOwnsProperties
Definition: controlObjectRepository.h:182
std::vector< char > myPropertyBuffer
Definition: controlObjectRepository.h:211
PropertyDecoderInfo()
Definition: controlObjectRepository.h:188
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:126
bool myReceivedVrfObjectDataVersion
Definition: controlObjectRepository.h:218
DtString myUUIDString
Definition: controlObjectRepository.h:223
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: controlObjectRepository.h:189
PropertyDecoder decoder
Definition: controlObjectRepository.h:193
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: controlObjectRepository.h:200
virtual const DtRwProperties & stateProperties() const
Definition: controlObjectRepository.h:78
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: controlObjectRepository.h:227
DtRwProperties * myStateProperties
Definition: controlObjectRepository.h:179
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
DtEntityType myLastCheckedEnvType
Definition: controlObjectRepository.h:181

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)