33 DtParameterCbInfo( DtHlaObject* obj,
const RTI::AttributeHandleSet&
set );
35 virtual ~DtParameterCbInfo();
40 RTI::AttributeHandleSet mySet;
42 RTI::AttributeHandleSet* mySet;
65 RTI::ObjectInstanceHandle
id,
70 DtObjClassDesc& classDesc,
71 bool reflecting =
false);
79 DtObjClassDesc& classDesc,
80 bool reflecting =
false);
84 virtual ~DtHlaObject();
92 DtHlaObject(
const DtHlaObject& src );
95 DtHlaObject& operator=(
const DtHlaObject& src );
100 virtual inline const RTI::ObjectInstanceHandle& objectId()
const;
102 virtual inline const RTI::ObjectHandle& objectId()
const;
106 virtual inline const RTI::AttributeHandleSet& attrHandleSet();
110 virtual inline const RTI::AttributeHandleSet& requestedAttributes();
113 virtual inline RTI::ObjectClassHandle objectClassHandle()
const;
116 virtual inline const char* name()
const;
120 inline int numAttributes()
const;
126 virtual inline DtObjClassDesc& classDesc()
const;
135 virtual void setupUpdating();
141 virtual void update();
153 virtual void generateUpdate(
154 const RTI::AttributeHandleSet& eligibileAttrs,
155 const RTI::AttributeHandleSet& requiredAttrs,
160 virtual void cleanupFromUpdating();
165 virtual void processProvideUpdate(
166 const RTI::AttributeHandleSet&
set );
171 virtual void clearRequestedAttributes();
175 virtual inline const RTI::AttributeHandleSet& ownedAttributes();
183 virtual void forceUpdate();
184 virtual void forceUpdate(
const RTI::AttributeHandleSet&
set );
187 virtual void clearForcedAttributes();
193 virtual const RTI::AttributeHandleSet& attributesNeededByFederation();
197 virtual const RTI::AttributeHandleSet& eligibleAttributes();
201 virtual const RTI::AttributeHandleSet& requiredAttributes();
206 bool classNeededByFederation();
211 void setupClassForUpdating();
218 virtual void setupReflecting();
223 virtual void callReflect(
const DtStateMsg& msg );
230 virtual void callReflectLocal(
const DtStateMsg& msg );
235 virtual void reflectLocal(
const DtStateMsg& msg ) = 0;
239 virtual void cleanupFromReflecting();
243 virtual void requestUpdate( RTI::AttributeHandleSet* attrs = 0 );
246 virtual void addRemoveObjectCb( DtRemoveObjectCb cb,
void* usr );
250 virtual void removeRemoveObjectCb( DtRemoveObjectCb cb,
void* usr );
253 virtual void addPostReflectCb( DtObjectReflectAttributeValuesCb cb,
257 virtual void removePostReflectCb( DtObjectReflectAttributeValuesCb cb,
262 virtual void processRemoveObject();
269 virtual DtOwnershipHandler* setOwnershipHandler( DtOwnershipHandler* handler );
274 virtual void unconditionalDivest(
const RTI::AttributeHandleSet& attrs );
281 virtual void negotiatedDivest(
const RTI::AttributeHandleSet& attrs );
285 virtual void cancelNegotiatedDivest(
const RTI::AttributeHandleSet& attrs );
292 virtual void acquireAttributes(
const RTI::AttributeHandleSet& attrs,
293 bool ifAvailable =
false );
299 virtual void cancelAcquireAttributes(
const RTI::AttributeHandleSet& attrs );
303 virtual inline DtTime lastSimTimeUpdateReceived()
const;
305 virtual inline DtTime lastReceivedTimeStamp()
const;
309 virtual inline void setLastSimTimeUpdateReceived(
DtTime tm );
311 virtual inline void setLastReceivedTimeStamp(
DtTime tm );
315 virtual void copyToLocalAndRemote(
const RTI::AttributeHandleValueMap& sourceList,
316 const RTI::AttributeHandleSet& neededByRemote,
const RTI::AttributeHandleSet& neededByLocal,
317 RTI::AttributeHandleValueMap& toRemoteList, RTI::AttributeHandleValueMap& toLocalList);
320 virtual void clearUpdatedAttributes(
const RTI::AttributeHandleValueMap& sourceList);
323 virtual void copyToLocalAndRemote(
const RTI::AttributeHandleValuePairSet& sourceList,
324 const RTI::AttributeHandleSet& neededByRemote,
const RTI::AttributeHandleSet& neededByLocal,
325 RTI::AttributeHandleValuePairSet& toRemoteList, RTI::AttributeHandleValuePairSet& toLocalList);
328 virtual void clearUpdatedAttributes(
const RTI::AttributeHandleValuePairSet& sourceList);
336 bool fullReport =
false )
const;
341 virtual void localSubscriptionChanged();
345 virtual void publicationChanged();
348 #if DtHLA_1516_EVOLVED
351 virtual const DtString& lastProducingFederate()
const;
356 virtual void processRequestAssumption(
357 const RTI::AttributeHandleSet& attrs,
359 const RTI::VariableLengthData &tag
366 virtual void processRequestRelease(
367 const RTI::AttributeHandleSet& attrs,
369 const RTI::VariableLengthData &tag
377 virtual void processAttributeAcquisition(
378 const RTI::AttributeHandleSet& attrs );
382 virtual void processAttributeDivestiture(
383 const RTI::AttributeHandleSet& attrs );
386 virtual void processConfirmAcquisitionCancellation(
387 const RTI::AttributeHandleSet& attrs );
393 friend class DtHlaObjectManager;
398 virtual void reflect(
const DtStateMsg& msg ) = 0;
402 void wipeRemoveList();
405 virtual void clearRemoveList();
409 void wipeReflectList();
412 virtual void applyPostReflectCallbacks(
const DtStateMsg& msg );
415 virtual void loseOwnership(
const RTI::AttributeHandleSet& attrs) ;
418 virtual void gainOwnership(
const RTI::AttributeHandleSet& attrs );
421 virtual void processUpdatesOff(
const RTI::AttributeHandleSet&
set );
425 void processUpdatesOn(
const RTI::AttributeHandleSet&
set );
431 virtual bool known()
const;
436 void dumpRtiException(
const char *functionName,
437 const RTI::Exception *exc)
const;
442 virtual void computeEligible();
447 virtual void justRegistered();
450 #if DtHLA_1516_EVOLVED
453 virtual void setLastProducingFederate(
const DtString& fedName);
458 virtual void addHandlesToSet(RTI::AttributeHandleSet& destinationSet,
459 const RTI::AttributeHandleSet& sourceSet);
464 static void ownerAcquisitionIfAvailableCb(
void* usr );
465 static void ownerAcquisitionCb(
void* usr );
466 static void negotiatedDivestitureCb(
void* usr );
467 static void unconditionalDivestitureCb(
void* usr );
472 static void reflectAttributeValuesCb(
const DtStateMsg& stateMsg,
476 static void updatesOnCb(
478 RTI::ObjectInstanceHandle handle,
480 RTI::ObjectHandle handle,
482 const RTI::AttributeHandleSet& attributeSet,
486 static void updatesOffCb(
488 RTI::ObjectInstanceHandle handle,
490 RTI::ObjectHandle handle,
492 const RTI::AttributeHandleSet& attributeSet,
507 DtTime myLastSimTimeUpdateReceived;
508 DtTime myLastReceivedTimeStamp;
509 DtObjClassDesc &myClassDesc;
511 #if DtHLA_1516_EVOLVED
517 RTI::ObjectInstanceHandle myObjectId;
519 RTI::ObjectHandle myObjectId;
526 RTI::AttributeHandleSet* myEligibleAttrs;
530 RTI::AttributeHandleSet* myNeededAttrs;
534 RTI::AttributeHandleSet* myOwnedAttributes;
537 RTI::AttributeHandleSet* myRequestedAttributes;
540 RTI::AttributeHandleSet* myForcedAttributes;
543 RTI::AttributeHandleSet* myRequiredAttributes;
545 DtOwnershipHandler* myOwnershipHandler;
549 inline const RTI::ObjectInstanceHandle& DtHlaObject::objectId() const
551 inline const RTI::ObjectHandle& DtHlaObject::objectId() const
557 inline const RTI::AttributeHandleSet& DtHlaObject::attrHandleSet()
559 return myClassDesc.attrHandleSet();
562 inline const RTI::AttributeHandleSet& DtHlaObject::requestedAttributes()
564 return *myRequestedAttributes;
566 inline RTI::ObjectClassHandle DtHlaObject::objectClassHandle()
const
568 return myClassDesc.handle();
571 inline const char* DtHlaObject::name()
const
576 inline int DtHlaObject::numAttributes()
const
578 return myClassDesc.numAttributes() ;
586 inline DtObjClassDesc& DtHlaObject::classDesc()
const
591 inline const RTI::AttributeHandleSet& DtHlaObject::ownedAttributes()
593 return *myOwnedAttributes;
596 inline DtTime DtHlaObject::lastSimTimeUpdateReceived()
const
598 return myLastSimTimeUpdateReceived;
601 inline void DtHlaObject::setLastSimTimeUpdateReceived(
DtTime a_tm )
603 myLastSimTimeUpdateReceived = a_tm;
606 inline DtTime DtHlaObject::lastReceivedTimeStamp()
const
608 return myLastReceivedTimeStamp;
611 inline void DtHlaObject::setLastReceivedTimeStamp(
DtTime a_tm )
613 myLastReceivedTimeStamp = a_tm;