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 );
318 bool fullReport =
false )
const;
323 virtual void localSubscriptionChanged();
327 virtual void publicationChanged();
330 #if DtHLA_1516_EVOLVED
333 virtual const DtString& lastProducingFederate()
const;
338 virtual const std::set<DtDDMRegion>& lastRegionInformation()
const;
342 virtual void processRequestAssumption(
343 const RTI::AttributeHandleSet& attrs,
345 const RTI::VariableLengthData &tag
352 virtual void processRequestRelease(
353 const RTI::AttributeHandleSet& attrs,
355 const RTI::VariableLengthData &tag
363 virtual void processAttributeAcquisition(
364 const RTI::AttributeHandleSet& attrs );
368 virtual void processAttributeDivestiture(
369 const RTI::AttributeHandleSet& attrs );
372 virtual void processConfirmAcquisitionCancellation(
373 const RTI::AttributeHandleSet& attrs );
379 friend class DtHlaObjectManager;
384 virtual void reflect(
const DtStateMsg& msg ) = 0;
388 void wipeRemoveList();
391 virtual void clearRemoveList();
395 void wipeReflectList();
398 virtual void applyPostReflectCallbacks(
const DtStateMsg& msg );
401 virtual void loseOwnership(
const RTI::AttributeHandleSet& attrs) ;
404 virtual void gainOwnership(
const RTI::AttributeHandleSet& attrs );
407 virtual void processUpdatesOff(
const RTI::AttributeHandleSet&
set );
411 void processUpdatesOn(
const RTI::AttributeHandleSet&
set );
417 virtual bool known()
const;
422 void dumpRtiException(
const char *functionName,
423 const RTI::Exception *exc)
const;
428 virtual void computeEligible();
433 virtual void justRegistered();
436 #if DtHLA_1516_EVOLVED
439 virtual void setLastProducingFederate(
const DtString& fedName);
444 virtual void setRegionInformation(
const std::set<DtDDMRegion>& regions);
451 static void ownerAcquisitionIfAvailableCb(
void* usr );
452 static void ownerAcquisitionCb(
void* usr );
453 static void negotiatedDivestitureCb(
void* usr );
454 static void unconditionalDivestitureCb(
void* usr );
459 static void reflectAttributeValuesCb(
const DtStateMsg& stateMsg,
463 static void updatesOnCb(
465 RTI::ObjectInstanceHandle handle,
467 RTI::ObjectHandle handle,
469 const RTI::AttributeHandleSet& attributeSet,
473 static void updatesOffCb(
475 RTI::ObjectInstanceHandle handle,
477 RTI::ObjectHandle handle,
479 const RTI::AttributeHandleSet& attributeSet,
494 DtTime myLastSimTimeUpdateReceived;
495 DtTime myLastReceivedTimeStamp;
496 DtObjClassDesc &myClassDesc;
498 #if DtHLA_1516_EVOLVED
504 std::set<DtDDMRegion> myLastRegionInformation;
509 RTI::ObjectInstanceHandle myObjectId;
511 RTI::ObjectHandle myObjectId;
518 RTI::AttributeHandleSet* myEligibleAttrs;
522 RTI::AttributeHandleSet* myNeededAttrs;
526 RTI::AttributeHandleSet* myOwnedAttributes;
529 RTI::AttributeHandleSet* myRequestedAttributes;
532 RTI::AttributeHandleSet* myForcedAttributes;
535 RTI::AttributeHandleSet* myRequiredAttributes;
537 DtOwnershipHandler* myOwnershipHandler;
541 inline const RTI::ObjectInstanceHandle& DtHlaObject::objectId() const
543 inline const RTI::ObjectHandle& DtHlaObject::objectId() const
549 inline const RTI::AttributeHandleSet& DtHlaObject::attrHandleSet()
551 return myClassDesc.attrHandleSet();
554 inline const RTI::AttributeHandleSet& DtHlaObject::requestedAttributes()
556 return *myRequestedAttributes;
558 inline RTI::ObjectClassHandle DtHlaObject::objectClassHandle()
const
560 return myClassDesc.handle();
563 inline const char* DtHlaObject::name()
const
568 inline int DtHlaObject::numAttributes()
const
570 return myClassDesc.numAttributes() ;
578 inline DtObjClassDesc& DtHlaObject::classDesc()
const
583 inline const RTI::AttributeHandleSet& DtHlaObject::ownedAttributes()
585 return *myOwnedAttributes;
588 inline DtTime DtHlaObject::lastSimTimeUpdateReceived()
const
590 return myLastSimTimeUpdateReceived;
593 inline void DtHlaObject::setLastSimTimeUpdateReceived(
DtTime a_tm )
595 myLastSimTimeUpdateReceived = a_tm;
598 inline DtTime DtHlaObject::lastReceivedTimeStamp()
const
600 return myLastReceivedTimeStamp;
603 inline void DtHlaObject::setLastReceivedTimeStamp(
DtTime a_tm )
605 myLastReceivedTimeStamp = a_tm;