7 #ifndef reflectedObjectListHLA_H_
8 #define reflectedObjectListHLA_H_
31 typedef std::map<DtObjectId, DtReflectedObject*> DtRefHlaObjectMap;
45 const DtDDMRegionSet* regionSetToUse = 0,
64 RTI::ObjectInstanceHandle
id);
66 RTI::ObjectHandle id);
78 virtual int count()
const;
92 virtual void manageObjectClass(RTI::ObjectClassHandle handle);
102 virtual bool removeObject(
const DtObjectId&
id);
105 virtual void addObjectAdditionCallback(
107 virtual void removeObjectAdditionCallback(
111 virtual void addObjectRemovalCallback(
113 virtual void removeObjectRemovalCallback(
117 virtual void print();
121 virtual void setTimeoutProcessing(
bool onOff);
124 virtual bool isTimeoutProcessing()
const;
129 virtual void setWaitListRefreshEnabled(
bool on);
132 virtual void setTimeoutInterval(
DtTime time);
133 virtual DtTime timeoutInterval();
136 virtual void setWaitlistRefreshPeriod(
DtTime time);
137 virtual DtTime waitlistRefreshPeriod();
145 virtual void clearDiscoveryCondition();
148 virtual const DtDDMRegionSet& subscribedRegions();
156 static void setAutoSubscribeFlag(
bool flag);
157 static bool autoSubscribeFlag();
162 static void setRequestClassUpdateFlag(
bool onOff);
163 static bool requestClassUpdateFlag();
167 static void setRequestObjectUpdateFlag(
bool onOff);
168 static bool requestObjectUpdateFlag();
171 static void findDiscoveredObjectsCb(
void* usr);
178 virtual void processDiscoverObject(DtHlaObject* obj);
182 virtual void processRemoveObject(DtHlaObject* obj);
186 virtual void processTimedOutObjectReflect(
const DtStateMsg& msg,
192 virtual void doTimeouts();
196 virtual void doRequestWaitListUpdates();
225 virtual void unTimeOutObject(DtHlaObject* obj);
229 virtual void addObjectClass(RTI::ObjectClassHandle handle);
233 virtual void addObjectClassByName(
const char* className);
237 virtual void init(
const DtList* handleList);
245 void emptyCallbackLists();
248 virtual void processObjectAdditionCallbacks(
250 virtual void processObjectRemovalCallbacks(
257 virtual void findAlreadyDiscoveredObjects();
271 RTI::ObjectInstanceHandle
id);
273 RTI::ObjectHandle id);
280 void unsubscribeRegions();
282 #if DtHLA_1516_EVOLVED
285 const DtString& updateRateSubscriptionName()
const;
292 static void discoverObjectCb(DtHlaObject* hlaObj,
void* rel);
296 static void removeObjectCb(DtHlaObject* hlaObj,
void* rel);
300 static void timedOutObjectReflectCb(
const DtStateMsg& msg,
305 static void doTimeoutsPostDrainCb(
void* usr);
308 static void doRequestWaitListUpdatesPostDrainCb(
void* usr);
316 DtRefHlaObjectMap myObjectList;
318 DtRefHlaObjectMap myWaitList;
319 DtList myTimedOutObjectList;
320 std::vector<RTI::ObjectClassHandle> myHandleList;
324 bool myTimeoutProcessingFlag;
325 bool myWaitListRequestUpdateFlag;
327 void* myDiscoveryConditionParameter;
329 DtTime myWaitlistRefreshPeriod;
330 DtDDMRegionSet mySubscribedRegions;
335 static bool theAutoSubscribeFlag;
336 static bool theRequestClassUpdateFlag;
337 static bool theRequestObjectUpdateFlag;
362 inline void DtReflectedObjectList::setWaitlistRefreshPeriod(
DtTime time)
364 myWaitlistRefreshPeriod = time;
367 inline DtTime DtReflectedObjectList::waitlistRefreshPeriod()
369 return myWaitlistRefreshPeriod;