7 #ifndef DtHlaObjectManager_H_
8 #define DtHlaObjectManager_H_
38 virtual const DtList& allHlaObjects()
const;
41 virtual const DtList& registeredObjects()
const;
44 virtual const DtList& discoveredObjects()
const;
49 RTI::ObjectInstanceHandle
id
56 virtual DtHlaObject* hlaObject(
const char* name)
const;
60 virtual void addDiscoverObjectCallback(
62 virtual void removeDiscoverObjectCallback(
68 virtual void addRemoveObjectCallback(
70 RTI::ObjectInstanceHandle
id,
75 virtual void removeRemoveObjectCallback(
77 RTI::ObjectInstanceHandle
id,
88 RTI::ObjectInstanceHandle
id,
89 RTI::ObjectClassHandle handle,
90 const std::wstring &name);
93 RTI::ObjectClassHandle handle,
97 #if DtHLA_1516_EVOLVED
104 RTI::ObjectInstanceHandle
id,
105 RTI::ObjectClassHandle handle,
106 const std::wstring &name,
107 RTI::FederateHandle registeringFederate );
118 virtual void processRemoveObject(
120 RTI::ObjectInstanceHandle
id
129 virtual void processRemoveObject(
DtHlaObject* obj);
132 virtual void processReflectAttributeValues(
const DtStateMsg &msg);
135 virtual void processProvideUpdate(
137 RTI::ObjectInstanceHandle
id,
139 RTI::ObjectHandle
id,
141 const RTI::AttributeHandleSet& theAttributes);
147 virtual void processLocalUpdateRequest(
148 RTI::ObjectClassHandle hand,
149 const RTI::AttributeHandleSet&
set);
153 virtual void localSubscriptionChanged(RTI::ObjectClassHandle handle);
157 virtual void publicationChanged(RTI::ObjectClassHandle handle);
160 virtual void processAttributeAcquisition(
162 RTI::ObjectInstanceHandle
id,
164 RTI::ObjectHandle
id,
166 const RTI::AttributeHandleSet& attrs);
169 virtual void processAttributeDivestiture(
171 RTI::ObjectInstanceHandle
id,
173 RTI::ObjectHandle
id,
175 const RTI::AttributeHandleSet& attrs);
178 virtual void processRequestAssumption(
180 RTI::ObjectInstanceHandle
id,
181 const RTI::AttributeHandleSet& attrs,
182 const RTI::VariableLengthData &tag);
184 RTI::ObjectHandle id,
185 const RTI::AttributeHandleSet& attrs,
190 virtual void processRequestRelease(
192 RTI::ObjectInstanceHandle
id,
193 const RTI::AttributeHandleSet& attrs,
194 const RTI::VariableLengthData &tag);
196 RTI::ObjectHandle id,
197 const RTI::AttributeHandleSet& attrs,
202 virtual void processConfirmAcquisitionCancellation(
204 RTI::ObjectInstanceHandle
id,
206 RTI::ObjectHandle
id,
208 const RTI::AttributeHandleSet& attrs);
212 virtual DtHlaObject* registerHlaObject( RTI::ObjectClassHandle classHand,
215 virtual void registerHlaObjectWithRegion(
216 RTI::ObjectClassHandle classHand,
219 RTI::ObjectInstanceHandle&
id);
221 RTI::ObjectHandle& id);
227 virtual void deleteHlaObject(
229 RTI::ObjectInstanceHandle objHand);
231 RTI::ObjectHandle objHand);
248 virtual void setRegionsForRegister(
int numAttrs,
249 RTI::AttributeHandle* attrs, RTI::Region** regions);
250 virtual void setNoRegionsForRegister();
257 virtual void reserveName(
const std::wstring &theName,
bool pushRti);
261 virtual bool isNameReserved(
const std::wstring &theName)
const;
263 #if DtHLA_1516_EVOLVED
265 virtual void releaseObjectInstanceName(
const std::wstring& name);
271 virtual void reserveNames (
272 std::set<std::wstring>
const& objectNames,
bool pushRti);
281 static double requestNameTickMinTime();
282 static void setRequestNameTickMinTime(
double time);
284 static double requestNameTickMaxTime();
285 static void setRequestNameTickMaxTime(
double time);
288 static int numberOfRequestNameTries();
289 static void setNumberOfRequestNameTries(
int tries);
297 static void nameReservationSuceededCb(
const std::wstring &theName,
void *theUserData);
298 static void nameReservationFailedCb(
const std::wstring &theName,
void *theUserData);
300 #if DtHLA_1516_EVOLVED
301 static void nameSetReservationSucceededCb(
const std::set<std::wstring>& nameSet,
303 static void nameSetReservationFailedCb(
const std::set<std::wstring>& nameSet,
322 virtual void objectProcessRemoveObject(
DtHlaObject* hlaObj);
326 virtual void objectProcessReflect(
DtHlaObject* hlaObj,
334 RTI::ObjectInstanceHandle
id,
335 RTI::ObjectClassHandle hand,
336 const std::wstring &name,
339 RTI::ObjectHandle id,
340 RTI::ObjectClassHandle hand,
347 virtual void removeKnownObject(
351 virtual void removeAllObjects();
355 virtual DtList* discoverCbList(RTI::ObjectClassHandle handle);
361 virtual void reservedNameSuceeded(
const std::wstring &theName);
364 virtual void reservedNameFailed(
const std::wstring &theName);
366 #if DtHLA_1516_EVOLVED
369 virtual void reservedNameSuceeded(
const std::set<std::wstring>& theNames);
372 virtual void reservedNameFailed(
const std::set<std::wstring>& theNames);
379 static double theRequestNameTickMinTime;
380 static double theRequestNameTickMaxTime;
381 static int theNumberOfRequestNameTries;
409 std::set<std::wstring> myReservedObjectInstanceNameSet;
413 bool myPendingNameReservationPassedFlag;
414 bool myPendingNameReservationFailedFlag;
415 std::wstring myPendingNameReservationName;
416 std::set<std::wstring> myPendingNameReservationNameSet;
418 #if DtHLA_1516_EVOLVED
419 std::map<DtObjectId, RTI::FederateHandle> myRegisteringFederateMap;