VR-Forces 5.0.3 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) 2018 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 
26 {
27  public:
28 
31 
34 
37  virtual void initialize(DtExerciseConn* exConn);
38 
39 #if DtHLA
40  virtual void setObjectClassChooser(DtObjectClassChooserPtr chooser);
43 
47  virtual void addSupportedClass(const DtString& fullClassName, bool addSubclasses = false);
48 
49  static tbb::spin_mutex& GlobalHLAMutex()
50  {
51  return theGlobalHLAMutex;
52  }
53 #endif
54 
55 protected:
56 
61 
64  virtual bool needsInitialization(DtExerciseConn* exConn);
65 
66 #if DtHLA
67  virtual const DtString& publisherName() const = 0;
69 
71  virtual const DtString& reflectedListName() const = 0;
72 
74  virtual const DtString& defaultBaseObjectClass() const = 0;
75 
79  virtual void setUnknownAttributeFunctions(DtObjClassDesc* desc) = 0;
80 
83  virtual std::map<DtString, RTI::AttributeHandle> attributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl) const = 0;
84 
87  virtual void setAttributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl,
88  const std::map<DtString, RTI::AttributeHandle>& mapping) = 0;
89 #endif
90 
93  virtual void setPublisherStateRepCreator() = 0;
94 
97  virtual void setReflectedObjectStateRepCreator() = 0;
98 
100 
101 #if DtHLA
102 
108  virtual bool areClassNamesEquivalent(const DtString&, const DtString&) const;
109 
112  virtual void addSupportedSubclasses(DtExerciseConn* exConn);
113 
115  virtual void initializeObjectClassChooser(DtExerciseConn* exConn);
116 
119  virtual void initializeObjectClasses(DtExerciseConn* exConn);
120 
123  virtual void initializeAttributes(DtObjClassDesc* desc);
124 
127  virtual void initializeExtendedAttributes(DtExerciseConn* exConn);
129 
130 #else
131 
133  virtual void initializeVariableRecordFactory(DtExerciseConn* exConn);
134 
135 #endif
136 
138 #if DtHLA
140  std::list<DtString> myFullBaseClassNames;
141  std::list<DtString> myFullClassNames;
142  static tbb::spin_mutex theGlobalHLAMutex;
144 #endif
145 };
146 
147 typedef DtBoost::shared_ptr<DtExtendedAttributesInitializer> DtExtendedAttributesInitializerPtr;
148 
151 {
152 public:
153 
156 
159 
160 protected:
161 
163  virtual bool needsInitialization(DtExerciseConn* exConn);
164 
165 #if DtHLA
166  virtual const DtString& publisherName() const;
168 
170  virtual const DtString& reflectedListName() const;
171 
173  virtual const DtString& defaultBaseObjectClass() const;
174 
178  virtual void setUnknownAttributeFunctions(DtObjClassDesc* desc);
179 
182  virtual std::map<DtString, RTI::AttributeHandle> attributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl) const;
183 
186  virtual void setAttributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl,
187  const std::map<DtString, RTI::AttributeHandle>& mapping);
188 #endif
189 
192  virtual void setPublisherStateRepCreator();
193 
196  virtual void setReflectedObjectStateRepCreator();
197 
198 protected:
199 
201  static bool theExConnNeedsInit;
202 
203 };
204 
207 {
208 public:
209 
212 
215 
216 protected:
217 
219  virtual bool needsInitialization(DtExerciseConn* exConn);
220 
221 #if DtHLA
222  virtual const DtString& publisherName() const;
224 
226  virtual const DtString& reflectedListName() const;
227 
229  virtual const DtString& defaultBaseObjectClass() const;
230 
234  virtual void setUnknownAttributeFunctions(DtObjClassDesc* desc);
235 
238  virtual std::map<DtString, RTI::AttributeHandle> attributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl) const;
239 
242  virtual void setAttributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl,
243  const std::map<DtString, RTI::AttributeHandle>& mapping);
244 #endif
245 
248  virtual void setPublisherStateRepCreator();
249 
252  virtual void setReflectedObjectStateRepCreator();
253 
254 protected:
255 
257  static bool theExConnNeedsInit;
258 
259 };
260 
263 {
264 public:
265 
268 
271 
272 protected:
273 
275  virtual bool needsInitialization(DtExerciseConn* exConn);
276 
277 #if DtHLA
278  virtual const DtString& publisherName() const;
280 
282  virtual const DtString& reflectedListName() const;
283 
285  virtual const DtString& defaultBaseObjectClass() const;
286 
290  virtual void setUnknownAttributeFunctions(DtObjClassDesc* desc);
291 
294  virtual std::map<DtString, RTI::AttributeHandle> attributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl) const;
295 
298  virtual void setAttributeNameToHandleMap(const RTI::ObjectClassHandle& classHdl,
299  const std::map<DtString, RTI::AttributeHandle>& mapping);
300 #endif
301 
304  virtual void setPublisherStateRepCreator();
305 
308  virtual void setReflectedObjectStateRepCreator();
309 
310 protected:
311 
313  static bool theExConnNeedsInit;
314 
315 };
316 
static tbb::spin_mutex theGlobalHLAMutex
Definition: extendedAttributesInitializer.h:142
The extended attributes initializer for entity objects.
Definition: extendedAttributesInitializer.h:150
virtual void setAttributeNameToHandleMap(const RTI::ObjectClassHandle &classHdl, const std::map< DtString, RTI::AttributeHandle > &mapping)=0
SEts the attribute name to handle mapping for the object class. Specific to a particular state reposi...
virtual void setReflectedObjectStateRepCreator()=0
Sets the state rep creator for the associated reflected object. Specific to a particular reflected ob...
std::list< DtString > myFullClassNames
Definition: extendedAttributesInitializer.h:141
bool myNeedsInitialization
Definition: extendedAttributesInitializer.h:137
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:139
static DtString theExtendedAttributesClassName
Definition: extendedAttributesInitializer.h:143
The extended attributes initializer for control objects.
Definition: extendedAttributesInitializer.h:262
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:201
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:312
static DtTime thePrevExConnInitTime
Definition: extendedAttributesInitializer.h:200
static DtTime thePrevExConnInitTime
Definition: extendedAttributesInitializer.h:256
virtual void setPublisherStateRepCreator()=0
Sets the state rep creator for the associated publisher. Specific to a particular publisher class and...
DtBoost::shared_ptr< DtExtendedAttributesInitializer > DtExtendedAttributesInitializerPtr
Definition: extendedAttributesInitializer.h:147
static bool theExConnNeedsInit
Definition: extendedAttributesInitializer.h:313
The extended attributes initializer for aggregate objects.
Definition: extendedAttributesInitializer.h:206
static tbb::spin_mutex & GlobalHLAMutex()
Definition: extendedAttributesInitializer.h:49
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:25
static bool theExConnNeedsInit
Definition: extendedAttributesInitializer.h:257
DtBoost::shared_ptr< DtObjectClassChooser > DtObjectClassChooserPtr
Definition: vrfObjectClassChooser.h:46
virtual std::map< DtString, RTI::AttributeHandle > attributeNameToHandleMap(const RTI::ObjectClassHandle &classHdl) const =0
Gets the current attribute name to handle mapping for the object class. Specific to a particular stat...
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
std::list< DtString > myFullBaseClassNames
Definition: extendedAttributesInitializer.h:140

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)