VR-Forces 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) 2025 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() override;
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 override;
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 
100  virtual bool sensorsKilled() const;
101  virtual void setSensorsKilled(bool killed);
103 
104 #if DtDIS
105  void mapPropertiesToRecordTypes(const DtRwProperties* properties,
107  std::map<unsigned, DtString>& recTypesToAttrNames);
108 #endif
109 
111 
113  virtual void updateExtensions() override;
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() override;
166 
169  virtual void giveOwernshipOfProperties();
170 
172  virtual DtTime lastPropertyEncodeTime() const { return myLastEncodeTime; }
173 
175  virtual DtTime lastPropertyDecodeTime() const { return myLastDecodeTime; }
176 
179 
180  virtual void addPropertyUpdatedCallback(
182  virtual void removePropertyUpdatedCallback(
185 
186 protected:
187 
189  virtual void initializeVrfObjectDataProperties();
190 
192  virtual void encodePropertyIfNeeded(const DtSymbolString& propName, DtReaderWriter* propRw);
193 
194 protected:
195 
198  DtEntityType myLastCheckedEnvType;
200 
202 
204  {
205  PropertyDecoderInfo() : decoder(0), usr(0) {};
206  PropertyDecoderInfo(const DtString& pn, PropertyDecoder d, void* u)
207  : propertyName(pn), decoder(d), usr(u) {};
208 
209  DtString propertyName;
210  PropertyDecoder decoder;
211  void* usr;
212  };
213 
215  {
216  PropertyEncoderInfo() : encoder(0), usr(0) {};
217  PropertyEncoderInfo(const DtString& pn, PropertyEncoder e, void* u)
218  : propertyName(pn), encoder(e), usr(u) {};
219 
220  DtString propertyName;
221  PropertyEncoder encoder;
222  void* usr;
223  };
224 
225  std::list<PropertyDecoderInfo> myVrfObjectDataDecoders;
226  std::list<PropertyDecoderInfo> myAdditionalDecoders;
227  std::list<PropertyEncoderInfo> myAdditionalEncoders;
228 
229  std::vector<char> myPropertyBuffer;
233 
235 
238 
239  mutable int myPropertyVersion;
240 
242 
244 };
245 
virtual DtTime lastPropertyDecodeTime() const
Last time properties were decoded.
Definition: controlObjectRepository.h:175
bool mySensorsKilled
Definition: controlObjectRepository.h:234
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
DtRwProperties * myParameterProperties
Definition: controlObjectRepository.h:197
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:155
PropertyEncoder encoder
Definition: controlObjectRepository.h:221
voidpf void uLong size
Definition: ioapi.h:39
static const DtRwProperties & emptyProperties()
Definition: readerWriter.h:85
bool myReceivedVrfPropertyVersion
Definition: controlObjectRepository.h:237
Contains the DtSensorFieldOfViewPublisher class declaration.
Definition: controlObjectRepository.h:214
Definition: controlObjectRepository.h:203
DtClock myClock
Definition: controlObjectRepository.h:230
DtTime myLastEncodeTime
Definition: controlObjectRepository.h:231
DtTime myLastDecodeTime
Definition: controlObjectRepository.h:232
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:227
std::list< PropertyDecoderInfo > myVrfObjectDataDecoders
Definition: controlObjectRepository.h:225
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:151
void * usr
Definition: controlObjectRepository.h:211
int myPropertyVersion
Definition: controlObjectRepository.h:239
bool myIsInitialized
Definition: controlObjectRepository.h:201
void * usr
Definition: controlObjectRepository.h:222
DtRangeItems myRangeItemsCache
Definition: controlObjectRepository.h:241
PropertyEncoderInfo()
Definition: controlObjectRepository.h:216
Definition: rangeItem.h:206
std::list< PropertyDecoderInfo > myAdditionalDecoders
Definition: controlObjectRepository.h:226
virtual DtTime lastPropertyEncodeTime() const
Last time properties were encoded.
Definition: controlObjectRepository.h:172
bool myOwnsProperties
Definition: controlObjectRepository.h:199
std::vector< char > myPropertyBuffer
Definition: controlObjectRepository.h:229
PropertyDecoderInfo()
Definition: controlObjectRepository.h:205
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
bool myReceivedVrfObjectDataVersion
Definition: controlObjectRepository.h:236
PropertyDecoderInfo(const DtString &pn, PropertyDecoder d, void *u)
Definition: controlObjectRepository.h:206
PropertyDecoder decoder
Definition: controlObjectRepository.h:210
PropertyEncoderInfo(const DtString &pn, PropertyEncoder e, void *u)
Definition: controlObjectRepository.h:217
virtual const DtRwProperties & stateProperties() const
Definition: controlObjectRepository.h:78
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
Definition: controlObjectRepository.h:243
DtRwProperties * myStateProperties
Definition: controlObjectRepository.h:196
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
DtEntityType myLastCheckedEnvType
Definition: controlObjectRepository.h:198

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)