VR-Link API Documentation for HLA 1516
hlaObjMgr.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 #ifndef DtHlaObjectManager_H_
8 #define DtHlaObjectManager_H_
9 
10 #if DtHLA
11 
12 #include "callbacks.h"
13 #include "objIdHashLst.h"
14 #include "hlaObjFact.h"
15 #include "region.h"
16 
20 
25 
27 {
28 public:
29 
32  DtExerciseConn* conn);
33 
35  virtual ~DtHlaObjectManager();
36 
38  virtual const DtList& allHlaObjects() const;
39 
41  virtual const DtList& registeredObjects() const;
42 
44  virtual const DtList& discoveredObjects() const;
45 
47  virtual DtHlaObject* hlaObject(
48 #if DtHLA_1516
49  RTI::ObjectInstanceHandle id
50 #else
52 #endif
53  ) const;
54 
56  virtual DtHlaObject* hlaObject(const char* name) const;
57 
60  virtual void addDiscoverObjectCallback(
61  RTI::ObjectClassHandle handle, DtDiscoverObjectCb cb, void* usr);
62  virtual void removeDiscoverObjectCallback(
63  RTI::ObjectClassHandle handle, DtDiscoverObjectCb cb, void* usr);
64 
68  virtual void addRemoveObjectCallback(
69 #if DtHLA_1516
70  RTI::ObjectInstanceHandle id,
71 #else
73 #endif
74  DtRemoveObjectCb cb, void* usr);
75  virtual void removeRemoveObjectCallback(
76 #if DtHLA_1516
77  RTI::ObjectInstanceHandle id,
78 #else
80 #endif
81  DtRemoveObjectCb cb, void* usr);
82 
86  virtual const DtHlaObject* processDiscoverObject(
87 #if DtHLA_1516
88  RTI::ObjectInstanceHandle id,
89  RTI::ObjectClassHandle handle,
90  const std::wstring &name);
91 #else
93  RTI::ObjectClassHandle handle,
94  const char* name);
95 #endif
96 
97 #if DtHLA_1516_EVOLVED
98 
99 
100 
101 
102 
103  virtual const DtHlaObject* processDiscoverObject(
104  RTI::ObjectInstanceHandle id,
105  RTI::ObjectClassHandle handle,
106  const std::wstring &name,
107  RTI::FederateHandle registeringFederate );
108 #endif
109 
114  virtual const DtHlaObject* processDiscoverObject(DtHlaObject* hlaObj);
115 
118  virtual void processRemoveObject(
119 #if DtHLA_1516
120  RTI::ObjectInstanceHandle id
121 #else
123 #endif
124  );
125 
129  virtual void processRemoveObject(DtHlaObject* obj);
130 
132  virtual void processReflectAttributeValues(const DtStateMsg &msg);
133 
135  virtual void processProvideUpdate(
136 #if DtHLA_1516
137  RTI::ObjectInstanceHandle id,
138 #else
140 #endif
141  const RTI::AttributeHandleSet& theAttributes);
142 
147  virtual void processLocalUpdateRequest(
148  RTI::ObjectClassHandle hand,
149  const RTI::AttributeHandleSet& set);
150 
153  virtual void localSubscriptionChanged(RTI::ObjectClassHandle handle);
154 
157  virtual void publicationChanged(RTI::ObjectClassHandle handle);
158 
160  virtual void processAttributeAcquisition(
161 #if DtHLA_1516
162  RTI::ObjectInstanceHandle id,
163 #else
165 #endif
166  const RTI::AttributeHandleSet& attrs);
167 
169  virtual void processAttributeDivestiture(
170 #if DtHLA_1516
171  RTI::ObjectInstanceHandle id,
172 #else
174 #endif
175  const RTI::AttributeHandleSet& attrs);
176 
178  virtual void processRequestAssumption(
179 #if DtHLA_1516
180  RTI::ObjectInstanceHandle id,
181  const RTI::AttributeHandleSet& attrs,
182  const RTI::VariableLengthData &tag);
183 #else
185  const RTI::AttributeHandleSet& attrs,
186  const char* tag);
187 #endif
188 
190  virtual void processRequestRelease(
191 #if DtHLA_1516
192  RTI::ObjectInstanceHandle id,
193  const RTI::AttributeHandleSet& attrs,
194  const RTI::VariableLengthData &tag);
195 #else
197  const RTI::AttributeHandleSet& attrs,
198  const char* tag);
199 #endif
200 
202  virtual void processConfirmAcquisitionCancellation(
203 #if DtHLA_1516
204  RTI::ObjectInstanceHandle id,
205 #else
207 #endif
208  const RTI::AttributeHandleSet& attrs);
209 
212  virtual DtHlaObject* registerHlaObject( RTI::ObjectClassHandle classHand,
213  const char* name, const DtDDMRegionSet* regionSet = 0);
214 
215  virtual void registerHlaObjectWithRegion(
216  RTI::ObjectClassHandle classHand,
217  const char* name, const DtDDMRegionSet& regionSet,
218 #if DtHLA_1516
219  RTI::ObjectInstanceHandle& id);
220 #else
221  RTI::ObjectHandle& id);
222 #endif
223 
227  virtual void deleteHlaObject(
228 #if DtHLA_1516
229  RTI::ObjectInstanceHandle objHand);
230 #else
231  RTI::ObjectHandle objHand);
232 #endif
233 
246 #if !DtHLA_1516
247 
248  virtual void setRegionsForRegister(int numAttrs,
249  RTI::AttributeHandle* attrs, RTI::Region** regions);
250  virtual void setNoRegionsForRegister();
251 #endif
252 
253 #if DtHLA_1516
254 
255 
256 
257  virtual void reserveName(const std::wstring &theName, bool pushRti);
258 
261  virtual bool isNameReserved(const std::wstring &theName)const;
262 
263  #if DtHLA_1516_EVOLVED
264 
265  virtual void releaseObjectInstanceName( const std::wstring& name);
266 
271  virtual void reserveNames (
272  std::set<std::wstring> const& objectNames, bool pushRti);
273 
274  #endif
275 #endif
276 
277 public:
278 #if DtHLA_1516
279 
280 
281  static double requestNameTickMinTime();
282  static void setRequestNameTickMinTime(double time);
283 
284  static double requestNameTickMaxTime();
285  static void setRequestNameTickMaxTime(double time);
286 
288  static int numberOfRequestNameTries();
289  static void setNumberOfRequestNameTries(int tries);
290 #endif
291 
292 protected:
293 
294 #if DtHLA_1516
295 
296 
297  static void nameReservationSuceededCb(const std::wstring &theName, void *theUserData);
298  static void nameReservationFailedCb(const std::wstring &theName, void *theUserData);
299 
300  #if DtHLA_1516_EVOLVED
301  static void nameSetReservationSucceededCb(const std::set<std::wstring>& nameSet,
302  void* userData );
303  static void nameSetReservationFailedCb(const std::set<std::wstring>& nameSet,
304  void* userData );
305  #endif
306 #endif
307 
308 protected:
309 
313 
316 
318  DtHlaObjectManager& operator=( const DtHlaObjectManager& orig);
319 
322  virtual void objectProcessRemoveObject(DtHlaObject* hlaObj);
323 
326  virtual void objectProcessReflect(DtHlaObject* hlaObj,
327  const DtStateMsg &msg);
328 
332  virtual DtHlaObject* addKnownObject(
333 #if DtHLA_1516
334  RTI::ObjectInstanceHandle id,
335  RTI::ObjectClassHandle hand,
336  const std::wstring &name,
337  bool reflecting);
338 #else
340  RTI::ObjectClassHandle hand,
341  const char* name,
342  bool reflecting);
343 #endif
344 
347  virtual void removeKnownObject(
348  DtHlaObject* hlaObj);
349 
351  virtual void removeAllObjects();
352 
355  virtual DtList* discoverCbList(RTI::ObjectClassHandle handle);
356 
357 
358 #if DtHLA_1516
359 
360 
361  virtual void reservedNameSuceeded(const std::wstring &theName);
362 
364  virtual void reservedNameFailed(const std::wstring &theName);
365 
366 #if DtHLA_1516_EVOLVED
367 
368 
369  virtual void reservedNameSuceeded(const std::set<std::wstring>& theNames);
370 
372  virtual void reservedNameFailed(const std::set<std::wstring>& theNames);
373 #endif
374 
375 #endif
376 
377 protected:
378 #if DtHLA_1516
382 #endif
383 
384 protected:
385 
389 
391 
394 
397 
400 
404 
406 
407 #if DtHLA_1516
408 
409  std::set<std::wstring> myReservedObjectInstanceNameSet;
410 
416  std::set<std::wstring> myPendingNameReservationNameSet;
417 
418 #if DtHLA_1516_EVOLVED
419  std::map<DtObjectId, RTI::FederateHandle> myRegisteringFederateMap;
420 #endif
421 #endif
422 
423 #if !DtHLA_1516
424 
425  RTI::AttributeHandle* myAttrsForDDMRegister;
426  RTI::Region** myRegionsForDDMRegister;
427 #endif
429 };
430 
432 {
433  return *(myObjectList.list());
434 }
435 
437 {
438  return *(myRegObjectList.list());
439 }
440 
442 {
443  return *(myDiscObjectList.list());
444 }
445 
446 #endif
447 #endif
448 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)