7 #ifndef DtHlaObjectManager_H_
8 #define DtHlaObjectManager_H_
53 RTI::ObjectInstanceHandle
id
60 virtual DtHlaObject* hlaObject(
const char* name)
const;
64 virtual void addDiscoverObjectCallback(
66 virtual void removeDiscoverObjectCallback(
72 virtual void addRemoveObjectCallback(
74 RTI::ObjectInstanceHandle
id,
79 virtual void removeRemoveObjectCallback(
81 RTI::ObjectInstanceHandle
id,
92 RTI::ObjectInstanceHandle
id,
93 RTI::ObjectClassHandle handle,
94 const std::wstring &name);
97 RTI::ObjectClassHandle handle,
101 #if DtHLA_1516_EVOLVED
108 RTI::ObjectInstanceHandle
id,
109 RTI::ObjectClassHandle handle,
110 const std::wstring &name,
111 RTI::FederateHandle registeringFederate );
125 RTI::ObjectClassHandle classHandle);
129 virtual void processRemoveObject(
131 RTI::ObjectInstanceHandle
id
140 virtual void processRemoveObject(
DtHlaObject* obj);
143 virtual void processReflectAttributeValues(
const DtStateMsg &msg);
146 virtual void processProvideUpdate(
148 RTI::ObjectInstanceHandle
id,
152 const RTI::AttributeHandleSet& theAttributes);
158 virtual void processLocalUpdateRequest(
159 RTI::ObjectClassHandle hand,
160 const RTI::AttributeHandleSet& set);
164 virtual void localSubscriptionChanged(RTI::ObjectClassHandle handle);
168 virtual void publicationChanged(RTI::ObjectClassHandle handle);
171 virtual void processAttributeAcquisition(
173 RTI::ObjectInstanceHandle
id,
177 const RTI::AttributeHandleSet& attrs);
180 virtual void processAttributeDivestiture(
182 RTI::ObjectInstanceHandle
id,
186 const RTI::AttributeHandleSet& attrs);
189 virtual void processRequestAssumption(
191 RTI::ObjectInstanceHandle
id,
192 const RTI::AttributeHandleSet& attrs,
193 const RTI::VariableLengthData &tag);
196 const RTI::AttributeHandleSet& attrs,
201 virtual void processRequestRelease(
203 RTI::ObjectInstanceHandle
id,
204 const RTI::AttributeHandleSet& attrs,
205 const RTI::VariableLengthData &tag);
208 const RTI::AttributeHandleSet& attrs,
213 virtual void processConfirmAcquisitionCancellation(
215 RTI::ObjectInstanceHandle
id,
219 const RTI::AttributeHandleSet& attrs);
223 virtual DtHlaObject* registerHlaObject( RTI::ObjectClassHandle classHand,
226 virtual void registerHlaObjectWithRegion(
227 RTI::ObjectClassHandle classHand,
230 RTI::ObjectInstanceHandle&
id);
238 virtual void deleteHlaObject(
240 RTI::ObjectInstanceHandle objHand);
258 virtual void setRegionsForRegister(
int numAttrs,
260 RTI::AttributeHandle* attrs, RTI::Region** regions);
261 virtual void setNoRegionsForRegister();
265 virtual bool reserveName(
const std::wstring &theName,
bool pushRti);
275 virtual bool isNameReserved(
const std::wstring &theName)
const;
277 #if DtHLA_1516_EVOLVED
278 virtual void releaseObjectInstanceName(
const std::wstring& name);
286 virtual bool reserveNames (
287 std::set<std::wstring>
const& objectNames,
bool pushRti);
294 static double requestNameTickMinTime();
297 static void setRequestNameTickMinTime(
double time);
299 static double requestNameTickMaxTime();
300 static void setRequestNameTickMaxTime(
double time);
303 static int numberOfRequestNameTries();
304 static void setNumberOfRequestNameTries(
int tries);
308 virtual void removeAllObjects();
313 static void nameReservationSuceededCb(
const std::wstring &theName,
void *theUserData);
316 static void nameReservationFailedCb(
const std::wstring &theName,
void *theUserData);
318 #if DtHLA_1516_EVOLVED
319 static void nameSetReservationSucceededCb(
const std::set<std::wstring>& nameSet,
321 static void nameSetReservationFailedCb(
const std::set<std::wstring>& nameSet,
340 virtual void objectProcessRemoveObject(
DtHlaObject* hlaObj);
344 virtual void objectProcessReflect(
DtHlaObject* hlaObj,
352 RTI::ObjectInstanceHandle
id,
353 RTI::ObjectClassHandle hand,
354 const std::wstring &name,
358 RTI::ObjectClassHandle hand,
365 virtual void removeKnownObject(
370 virtual DtList* discoverCbList(RTI::ObjectClassHandle handle);
374 virtual void reservedNameSuceeded(
const std::wstring &theName);
379 virtual void reservedNameFailed(
const std::wstring &theName);
381 #if DtHLA_1516_EVOLVED
382 virtual void reservedNameSuceeded(
const std::set<std::wstring>& theNames);
387 virtual void reservedNameFailed(
const std::set<std::wstring>& theNames);
392 virtual const std::map<DtObjectId, RTI::FederateHandle>& registeredFederateHandleMap()
const;
428 std::set<std::wstring> myReservedObjectInstanceNameSet;
439 #if DtHLA_1516_EVOLVED
440 std::map<DtObjectId, RTI::FederateHandle> myRegisteringFederateMap;
445 RTI::AttributeHandle* myAttrsForDDMRegister;
447 RTI::Region** myRegionsForDDMRegister;
Contains the DtObjectId class declaration.
DtHlaObjectMap myObjectList
List of all known DtHlaObjects (by id).
Definition: hlaObjectManager.h:413
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
std::wstring myPendingNameReservationName
Definition: hlaObjectManager.h:436
virtual const DtHlaObjectMap & registeredObjects() const
Get the list of all HLA objects registered by the federate.
Definition: hlaObjectManager.h:457
DtHlaObjectMap myRegObjectList
List of all DtHlaObjects that we've registered locally.
Definition: hlaObjectManager.h:419
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
std::set< std::wstring > myPendingNameReservationNameSet
Definition: hlaObjectManager.h:437
DtHashlist myDiscoverCbLists
DtHashlist that maps object class handles (DtIntHashKeys) to pointers to DtLists of callback function...
Definition: hlaObjectManager.h:408
void(* DtDiscoverObjectCb)(DtHlaObject *obj, void *usr)
Definition: discoverObjectCbInfo.h:20
int myReportedNameReservationCount
Definition: hlaObjectManager.h:435
static double theRequestNameTickMaxTime
Definition: hlaObjectManager.h:400
int myNumAttrsForDDMRegister
Definition: hlaObjectManager.h:449
DtHlaObjectMap myDiscObjectList
List of all DtHlaObjects that we've discovered, possibly including local objects that we are also ref...
Definition: hlaObjectManager.h:423
static int theNumberOfRequestNameTries
Definition: hlaObjectManager.h:401
DtHashlist myObjectListByName
List of all known DtHlaObjects (by String).
Definition: hlaObjectManager.h:416
This file provides a declaration of the class DtHlaObjectFactory.
Defines DtHashlist and several helper functions.
Instances of DtHlaObject are used to represent HLA objects which are communicated across the network...
Definition: hlaObject.h:56
DtList is deprecated, please use std::list<T>.
Definition: vlList.h:71
ObjectInstanceHandle ObjectHandle
Definition: rtiCompatibility.h:192
bool myPendingNameReservationFailedFlag
Definition: hlaObjectManager.h:434
std::map< DtObjectId, DtHlaObject * > DtHlaObjectMap
Definition: hlaObjectManager.h:19
std::set< DtDDMRegionSP > DtDDMRegionSet
Definition: region1516.h:32
virtual const DtHlaObjectMap & allHlaObjects() const
Get the list of all HLA objects known to the federate.
Definition: hlaObjectManager.h:452
DtHashlist is deprecated and provided for backwards compatibility only.
Definition: vlHashlist.h:69
static double theRequestNameTickMinTime
Definition: hlaObjectManager.h:399
class DtHlaObjectManager:
Definition: hlaObjectManager.h:30
virtual const DtHlaObjectMap & discoveredObjects() const
Get the list of all HLA objects discovered by the federate.
Definition: hlaObjectManager.h:462
DtExerciseConn * myExConn
Definition: hlaObjectManager.h:425
class DtStateMsg:
Definition: stateMsgHLA.h:32
This file is used as a convenience to group RTI related callbacks together.
Instances of DtHlaObjectFactory are used to create HLA objects.
Definition: hlaObjectFactory.h:20
bool myPendingNameReservationPassedFlag
booleans set to true if the pending reserved name passes, or fails respectively.
Definition: hlaObjectManager.h:433
DtHlaObjectFactory * myFactory
Definition: hlaObjectManager.h:410
void(* DtRemoveObjectCb)(DtHlaObject *obj, void *usr)
Definition: removeObjectCbInfo.h:22