VR-Vantage 3.0 API Documentation
 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 
41 
42  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 
68  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 
103 
104 
105 
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 
167  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 
200  static DtTime thePrevExConnInitTime;
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 
223  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 
256  static DtTime thePrevExConnInitTime;
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 
279  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 
312  static DtTime thePrevExConnInitTime;
313  static bool theExConnNeedsInit;
314 
315 };
316 


Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)