VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
extendedAttributesInitializer.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 #include <vlutil/vlString.h>
11 #include <vlutil/vlSmartPointers.h>
12 #include <vlutil/vlTime.h>
13 #include <vl/fom.h>
14 
15 #if DtHLA
16 #include <tbb/spin_mutex.h>
17 #endif
18 
19 class DtExerciseConn;
20 class DtObjClassDesc;
21 
22 #if DtHLA
23 typedef std::map<DtString, RTI::AttributeHandle> DtAttributeNameToHandleMap;
24 typedef std::shared_ptr<DtAttributeNameToHandleMap> DtAttributeNameToHandleMapPtr;
25 typedef std::map<RTI::ObjectClassHandle, DtAttributeNameToHandleMapPtr> DtClassAttributeNameToHandleMap;
26 #endif
27 
32 {
33  public:
34 
37 
40 
43  virtual void initialize(DtExerciseConn* exConn);
44 
45 #if DtHLA
46  virtual void setObjectClassChooser(DtObjectClassChooserPtr chooser);
49 
53  virtual void addSupportedClass(const DtString& fullClassName, bool addSubclasses = false);
54 
57  virtual DtAttributeNameToHandleMapPtr attributeNameToHandleMap(
58  const RTI::ObjectClassHandle& classHdl) const;
59 
61  virtual void setAttributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl,
62  const DtAttributeNameToHandleMap& mapping);
63 
64  static tbb::spin_mutex& GlobalHLAMutex()
65  {
66  return theGlobalHLAMutex;
67  }
68 
70  {
71  return theExtendedAttributesClassName;
72  }
73 #endif
74 
75 protected:
76 
81 
84  virtual bool needsInitialization(DtExerciseConn* exConn);
85 
86 #if DtHLA
87  virtual const DtString& publisherName() const = 0;
89 
91  virtual const DtString& reflectedListName() const = 0;
92 
94  virtual const DtString& defaultBaseObjectClass() const = 0;
95 
99  virtual void setUnknownAttributeFunctions(DtObjClassDesc* desc) = 0;
100 #endif
101 
104  virtual void setPublisherStateRepCreator() = 0;
105 
108  virtual void setReflectedObjectStateRepCreator() = 0;
109 
111 
112 #if DtHLA
113 
119  virtual bool areClassNamesEquivalent(const DtString&, const DtString&) const;
120 
123  virtual void addSupportedSubclasses(DtExerciseConn* exConn);
124 
126  virtual void initializeObjectClassChooser(DtExerciseConn* exConn);
127 
130  virtual void initializeObjectClasses(DtExerciseConn* exConn);
131 
134  virtual void initializeAttributes(DtObjClassDesc* desc);
135 
138  virtual void initializeExtendedAttributes(DtExerciseConn* exConn);
140 
141 #else
142 
144  virtual void initializeVariableRecordFactory(DtExerciseConn* exConn);
145 
146 #endif
147 
149 #if DtHLA
151  std::list<DtString> myFullBaseClassNames;
152  std::list<DtString> myFullClassNames;
153  static tbb::spin_mutex theGlobalHLAMutex;
155 
159 #endif
160 };
161 
162 typedef std::shared_ptr<DtExtendedAttributesInitializer> DtExtendedAttributesInitializerPtr;
163 
166 {
167 public:
168 
171 
173  virtual ~DtEntityExtendedAttributesInitializer() override;
174 
175 protected:
176 
178  virtual bool needsInitialization(DtExerciseConn *exConn) override;
179 
180 #if DtHLA
181  virtual const DtString &publisherName() const override;
183 
185  virtual const DtString &reflectedListName() const override;
186 
188  virtual const DtString &defaultBaseObjectClass() const override;
189 
193  virtual void setUnknownAttributeFunctions(DtObjClassDesc *desc) override;
194 #endif
195 
198  virtual void setPublisherStateRepCreator() override;
199 
202  virtual void setReflectedObjectStateRepCreator() override;
203 
204 protected:
205 
207  static bool theExConnNeedsInit;
208 
209 };
210 
213 {
214 public:
215 
218 
220  virtual ~DtAggregateExtendedAttributesInitializer() override;
221 
222 protected:
223 
225  virtual bool needsInitialization(DtExerciseConn *exConn) override;
226 
227 #if DtHLA
228  virtual const DtString &publisherName() const override;
230 
232  virtual const DtString &reflectedListName() const override;
233 
235  virtual const DtString &defaultBaseObjectClass() const override;
236 
240  virtual void setUnknownAttributeFunctions(DtObjClassDesc *desc) override;
241 #endif
242 
245  virtual void setPublisherStateRepCreator() override;
246 
249  virtual void setReflectedObjectStateRepCreator() override;
250 
251 protected:
252 
254  static bool theExConnNeedsInit;
255 
256 };
257 
260 {
261 public:
262 
265 
268 
269 protected:
270 
272  virtual bool needsInitialization(DtExerciseConn *exConn) override;
273 
274 #if DtHLA
275  virtual const DtString &publisherName() const override;
277 
279  virtual const DtString &reflectedListName() const override;
280 
282  virtual const DtString &defaultBaseObjectClass() const override;
283 
287  virtual void setUnknownAttributeFunctions(DtObjClassDesc *desc) override;
288 #endif
289 
292  virtual void setPublisherStateRepCreator() override;
293 
296  virtual void setReflectedObjectStateRepCreator() override;
297 
298 protected:
299 
301  static bool theExConnNeedsInit;
302 
303 };
304 
static tbb::spin_mutex theGlobalHLAMutex
Definition: extendedAttributesInitializer.h:153
std::map< DtString, RTI::AttributeHandle > DtAttributeNameToHandleMap
Definition: extendedAttributesInitializer.h:20
The extended attributes initializer for entity objects.
Definition: extendedAttributesInitializer.h:165
virtual void setReflectedObjectStateRepCreator()=0
Sets the state rep creator for the associated reflected object. Specific to a particular reflected ob...
std::shared_ptr< DtAttributeNameToHandleMap > DtAttributeNameToHandleMapPtr
Definition: extendedAttributesInitializer.h:24
std::list< DtString > myFullClassNames
Definition: extendedAttributesInitializer.h:152
std::map< RTI::ObjectClassHandle, DtAttributeNameToHandleMapPtr > DtClassAttributeNameToHandleMap
Definition: extendedAttributesInitializer.h:25
bool myNeedsInitialization
Definition: extendedAttributesInitializer.h:148
virtual void setUnknownAttributeFunctions(DtObjClassDesc *desc)=0
Sets the unknown attribute checker, encoder, and decoder functions in order to process them as extend...
DtObjectClassChooserPtr myObjectClassChooser
Definition: extendedAttributesInitializer.h:150
std::shared_ptr< DtObjectClassChooser > DtObjectClassChooserPtr
Definition: objectClassChooser.h:49
static DtString theExtendedAttributesClassName
Definition: extendedAttributesInitializer.h:154
The extended attributes initializer for control objects.
Definition: extendedAttributesInitializer.h:259
virtual bool needsInitialization(DtExerciseConn *exConn)
These functions are called within initialize(). Must be implemented in subclasses as they are specifi...
static bool theExConnNeedsInit
Definition: extendedAttributesInitializer.h:207
virtual const DtString & defaultBaseObjectClass() const =0
The base object class that is supported by default. All subclasses will also be supported.
virtual const DtString & publisherName() const =0
The name of the publisher class in VR-Link.
static DtTime thePrevExConnInitTime
Definition: extendedAttributesInitializer.h:300
DtClassAttributeNameToHandleMap myAttributeHandlesByName
A map of attribute handles by name for each object class supported by this repository. This is static since it can be shared by all state repositories of this type.
Definition: extendedAttributesInitializer.h:158
static DtTime thePrevExConnInitTime
Definition: extendedAttributesInitializer.h:206
static DtTime thePrevExConnInitTime
Definition: extendedAttributesInitializer.h:253
static const DtString & ExtendedAttributesClassName()
Definition: extendedAttributesInitializer.h:69
virtual void setPublisherStateRepCreator()=0
Sets the state rep creator for the associated publisher. Specific to a particular publisher class and...
static bool theExConnNeedsInit
Definition: extendedAttributesInitializer.h:301
std::shared_ptr< DtExtendedAttributesInitializer > DtExtendedAttributesInitializerPtr
Definition: extendedAttributesInitializer.h:162
The extended attributes initializer for aggregate objects.
Definition: extendedAttributesInitializer.h:212
static tbb::spin_mutex & GlobalHLAMutex()
Definition: extendedAttributesInitializer.h:64
virtual const DtString & reflectedListName() const =0
The name of the reflected list class in VR-Link.
DtExtendedAttributesInitializer performs all initialization required to register publishers, reflected lists, state repositories, encoders, and decoders for a set of object classes that should support extended attributes.
Definition: extendedAttributesInitializer.h:31
static bool theExConnNeedsInit
Definition: extendedAttributesInitializer.h:254
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
std::list< DtString > myFullBaseClassNames
Definition: extendedAttributesInitializer.h:151

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)