7 #ifndef DtHlaObjectManager_H_
8 #define DtHlaObjectManager_H_
19 typedef std::map<DtObjectId, DtHlaObject*> DtHlaObjectMap;
35 DtHlaObjectManager(DtHlaObjectFactory* factory,
39 virtual ~DtHlaObjectManager();
42 virtual const DtHlaObjectMap& allHlaObjects()
const;
45 virtual const DtHlaObjectMap& registeredObjects()
const;
48 virtual const DtHlaObjectMap& discoveredObjects()
const;
51 virtual DtHlaObject* hlaObject(
53 RTI::ObjectInstanceHandle
id
60 virtual DtHlaObject* hlaObject(
const char* name)
const;
64 virtual void addDiscoverObjectCallback(
65 RTI::ObjectClassHandle handle, DtDiscoverObjectCb cb,
void* usr);
66 virtual void removeDiscoverObjectCallback(
67 RTI::ObjectClassHandle handle, DtDiscoverObjectCb cb,
void* usr);
72 virtual void addRemoveObjectCallback(
74 RTI::ObjectInstanceHandle
id,
78 DtRemoveObjectCb cb,
void* usr);
79 virtual void removeRemoveObjectCallback(
81 RTI::ObjectInstanceHandle
id,
85 DtRemoveObjectCb cb,
void* usr);
90 virtual const DtHlaObject* processDiscoverObject(
92 RTI::ObjectInstanceHandle
id,
93 RTI::ObjectClassHandle handle,
94 const std::wstring &name);
97 RTI::ObjectClassHandle handle,
101 #if DtHLA_1516_EVOLVED
102 virtual const DtHlaObject* processDiscoverObject(
108 RTI::ObjectInstanceHandle
id,
109 RTI::ObjectClassHandle handle,
110 const std::wstring &name,
111 RTI::FederateHandle registeringFederate );
131 virtual const DtHlaObject* processDiscoverObject(DtHlaObject* hlaObj);
137 virtual const DtHlaObject* processDiscoverObjectAsClass(DtHlaObject* hlaObj,
138 RTI::ObjectClassHandle classHandle);
142 virtual void processRemoveObject(
144 RTI::ObjectInstanceHandle
id
153 virtual void processRemoveObject(DtHlaObject* obj);
156 virtual void processReflectAttributeValues(
const DtStateMsg &msg);
159 virtual void processProvideUpdate(
161 RTI::ObjectInstanceHandle
id,
163 RTI::ObjectHandle
id,
165 const RTI::AttributeHandleSet& theAttributes);
171 virtual void processLocalUpdateRequest(
172 RTI::ObjectClassHandle hand,
173 const RTI::AttributeHandleSet& set);
177 virtual void localSubscriptionChanged(RTI::ObjectClassHandle handle);
181 virtual void publicationChanged(RTI::ObjectClassHandle handle);
184 virtual void processAttributeAcquisition(
186 RTI::ObjectInstanceHandle
id,
188 RTI::ObjectHandle
id,
190 const RTI::AttributeHandleSet& attrs);
193 virtual void processAttributeDivestiture(
195 RTI::ObjectInstanceHandle
id,
197 RTI::ObjectHandle
id,
199 const RTI::AttributeHandleSet& attrs);
202 virtual void processRequestAssumption(
204 RTI::ObjectInstanceHandle
id,
205 const RTI::AttributeHandleSet& attrs,
206 const RTI::VariableLengthData &tag);
208 RTI::ObjectHandle id,
209 const RTI::AttributeHandleSet& attrs,
214 virtual void processRequestRelease(
216 RTI::ObjectInstanceHandle
id,
217 const RTI::AttributeHandleSet& attrs,
218 const RTI::VariableLengthData &tag);
220 RTI::ObjectHandle id,
221 const RTI::AttributeHandleSet& attrs,
226 virtual void processConfirmAcquisitionCancellation(
228 RTI::ObjectInstanceHandle
id,
230 RTI::ObjectHandle
id,
232 const RTI::AttributeHandleSet& attrs);
236 virtual DtHlaObject* registerHlaObject( RTI::ObjectClassHandle classHand,
237 const char* name,
const DtDDMRegionSet* regionSet = 0);
239 virtual void registerHlaObjectWithRegion(
240 RTI::ObjectClassHandle classHand,
241 const char* name,
const DtDDMRegionSet& regionSet,
243 RTI::ObjectInstanceHandle&
id);
245 RTI::ObjectHandle& id);
251 virtual void deleteHlaObject(
253 RTI::ObjectInstanceHandle objHand);
255 RTI::ObjectHandle objHand);
271 virtual void setRegionsForRegister(
int numAttrs,
273 RTI::AttributeHandle* attrs, RTI::Region** regions);
274 virtual void setNoRegionsForRegister();
278 virtual bool reserveName(
const std::wstring &theName,
bool pushRti);
288 virtual bool isNameReserved(
const std::wstring &theName)
const;
290 #if DtHLA_1516_EVOLVED
291 virtual void releaseObjectInstanceName(
const std::wstring& name);
299 virtual bool reserveNames(
300 std::set<std::wstring>
const& objectNames,
bool pushRti);
307 static double requestNameTickMinTime();
310 static void setRequestNameTickMinTime(
double time);
312 static double requestNameTickMaxTime();
313 static void setRequestNameTickMaxTime(
double time);
316 static int numberOfRequestNameTries();
317 static void setNumberOfRequestNameTries(
int tries);
321 virtual void removeAllObjects();
326 static void nameReservationSuceededCb(
const std::wstring &theName,
void *theUserData);
329 static void nameReservationFailedCb(
const std::wstring &theName,
void *theUserData);
331 #if DtHLA_1516_EVOLVED
332 static void nameSetReservationSucceededCb(
const std::set<std::wstring>& nameSet,
334 static void nameSetReservationFailedCb(
const std::set<std::wstring>& nameSet,
346 DtHlaObjectManager(
const DtHlaObjectManager& orig);
349 DtHlaObjectManager& operator=(
const DtHlaObjectManager& orig);
353 virtual void objectProcessRemoveObject(DtHlaObject* hlaObj);
357 virtual void objectProcessReflect(DtHlaObject* hlaObj,
363 virtual DtHlaObject* addKnownObject(
365 RTI::ObjectInstanceHandle
id,
366 RTI::ObjectClassHandle hand,
367 const std::wstring &name,
370 RTI::ObjectHandle id,
371 RTI::ObjectClassHandle hand,
378 virtual void removeKnownObject(
379 DtHlaObject* hlaObj);
383 virtual DtList* discoverCbList(RTI::ObjectClassHandle handle);
387 virtual void reservedNameSuceeded(
const std::wstring &theName);
392 virtual void reservedNameFailed(
const std::wstring &theName);
394 #if DtHLA_1516_EVOLVED
395 virtual void reservedNameSuceeded(
const std::set<std::wstring>& theNames);
400 virtual void reservedNameFailed(
const std::set<std::wstring>& theNames);
405 virtual const std::map<DtObjectId, RTI::FederateHandle>& registeredFederateHandleMap()
const;
412 static double theRequestNameTickMinTime;
413 static double theRequestNameTickMaxTime;
414 static int theNumberOfRequestNameTries;
423 DtHlaObjectFactory* myFactory;
426 DtHlaObjectMap myObjectList;
432 DtHlaObjectMap myRegObjectList;
436 DtHlaObjectMap myDiscObjectList;
441 std::set<std::wstring> myReservedObjectInstanceNameSet;
446 bool myPendingNameReservationPassedFlag;
447 bool myPendingNameReservationFailedFlag;
448 int myReportedNameReservationCount;
449 std::wstring myPendingNameReservationName;
450 std::set<std::wstring> myPendingNameReservationNameSet;
452 #if DtHLA_1516_EVOLVED
453 std::map<DtObjectId, RTI::FederateHandle> myRegisteringFederateMap;
458 RTI::AttributeHandle* myAttrsForDDMRegister;
460 RTI::Region** myRegionsForDDMRegister;
462 int myNumAttrsForDDMRegister;
465 inline const DtHlaObjectMap& DtHlaObjectManager::allHlaObjects()
const
470 inline const DtHlaObjectMap& DtHlaObjectManager::registeredObjects()
const
472 return myRegObjectList;
475 inline const std::map<DtObjectId, DtHlaObject*>& DtHlaObjectManager::discoveredObjects()
const
477 return myDiscObjectList;
Contains the DtObjectId class declaration.
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
This file provides a declaration of the class DtHlaObjectFactory.
Defines DtHashlist and several helper functions.
DtList is deprecated, please use std::list<T>.
Definition: vlList.h:71
DtHashlist is deprecated and provided for backwards compatibility only.
Definition: vlHashlist.h:69
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
This file is used as a convenience to group RTI related callbacks together.