9 #ifndef DtHlaReflectedObject_H_
10 #define DtHlaReflectedObject_H_
74 virtual DtHlaStateDecoder* decoder();
78 virtual DtHlaObjectWithStateRep* hlaObject()
const;
90 virtual const DtString& name()
const;
96 #if DtHLA_1516_EVOLVED
100 virtual const DtString& lastProducingFederate()
const;
105 virtual DtTime lastSimTimeUpdated()
const;
110 virtual DtTime lastReceivedTimeStamp()
const;
113 virtual void baseAddPostUpdateCallback(
115 virtual void baseRemovePostUpdateCallback(
136 void setHlaObject(DtHlaObject* obj,
137 DtHlaStateDecoder* decoder = NULL);
141 virtual void setNoHlaObject(
const DtObjectId&
id,
146 void detachHlaObject();
149 virtual void requestUpdate();
160 virtual void processPostUpdateCallbacks();
165 static void requestUpdatePostDrainCb(
void* usr);
168 static void processPostUpdateCallbacksCb(
176 DtHlaObjectWithStateRep* myHlaObj;
178 DtHlaStateDecoder* myDecoder;
179 bool myRequestCbRegistered;
185 DtRefHlaObjectMap::iterator myReflIterator;
186 DtRefHlaObjectMap* myReflMap;
190 inline const DtObjectId& DtReflectedObject::localId()
const
205 inline DtHlaObjectWithStateRep* DtReflectedObject::hlaObject()
const
214 DtRefHlaObjectMap::iterator nextIter = myReflIterator;
216 if(nextIter != myReflMap->end())
218 return nextIter->second;
228 DtRefHlaObjectMap::iterator nextIter = myReflIterator;
229 if(nextIter != myReflMap->begin())
232 return nextIter->second;
249 if(!myReflMap->empty())
251 return myReflMap->begin()->second;
270 if(!myReflMap->empty())
272 return myReflMap->rend()->second;