VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions
DtReflectedObjectList Class Referenceabstract

Instances of DtReflectedObjectList are lists of instances of classes derived from DtReflectedObject. More...

+ Inheritance diagram for DtReflectedObjectList:
+ Collaboration diagram for DtReflectedObjectList:

Public Member Functions

 DtReflectedObjectList (DtExerciseConn *exConn, int numBucketsPrimeNumber=503)
 Constructor. More...
 
virtual ~DtReflectedObjectList ()
 destructor Warning: makes non-virtual call to removeAndDelete More...
 
virtual void initializeAttributePduKindsOfInterest (const std::set< DtPduKind > &pduKinds)
 This initializes which PDU kinds will be processed when receiving an Attribute PDU. More...
 
virtual DtReflectedObjectfirstObj () const
 Get the first/last object in the list. More...
 
virtual DtReflectedObjectlastObj () const
 
virtual int count () const
 Get number of objects. More...
 
virtual DtReflectedObjectlookupObj (const DtBaseHashKey &key) const
 Search for an object. More...
 
virtual DtExerciseConnexerciseConn () const
 Get my exerciseConn. More...
 
virtual void addObjectAdditionCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 Object added callback registration/deregistration. More...
 
virtual void removeObjectAdditionCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 
virtual void addObjectRemovalCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 Object removed callback registration/deregistration. More...
 
virtual void removeObjectRemovalCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 
virtual void print () const
 Print the SRs of all objects. More...
 
virtual void setTimeoutProcessing (bool onOff)
 Set whether or not timeout processing occurs. More...
 
virtual void setTimeoutInterval (DtTime time)
 Set/Get the remote object timeout period. More...
 
virtual DtTime timeoutInterval ()
 
virtual void setDiscoveryCondition (DtDiscoveryCondition fn, void *usr)
 Set the checker function which will determine when an object gets discovered and put into the ref. More...
 
virtual void clearDiscoveryCondition ()
 Unregisters the checker function set in setDiscoverCondition. More...
 
virtual void removeAndDelete (DtReflectedObject *obj, char *msg=NULL)
 Remove the remote object from the list if found and delete it. More...
 
virtual void removeObject (DtReflectedObject *obj)
 This is the same as removeAndDelete, it exists to maintain equality with HLA objects. More...
 
virtual DtTime timeoutCheckInterval () const
 
virtual void setTimeoutCheckInterval (DtTime interval)
 
virtual void addWaitlistAdditionCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 Callback registration for when objects are added or removed from the waitlist. More...
 
virtual void removeWaitlistAdditionCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 
virtual void addWaitlistRemovalCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 Waitlist removed callback registration/deregistration. More...
 
virtual void removeWaitlistRemovalCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 

Protected Member Functions

virtual DtReflectedObjectnewReflectedObj (const DtStateMsg &msg)=0
 Create a new object from a state message. More...
 
virtual DtReflectedObjectprocessStateMessage (const DtStateMsg &msg)
 Process an incoming state message. More...
 
virtual void doTimeouts ()
 Remove any remote objects which have not been updated during the timeout period. More...
 
virtual void objectAdded (DtReflectedObject *object)
 Called after a remote object has been added to the list. More...
 
virtual bool shouldBeTimedOut (DtReflectedObject *object)
 Returns whether or not the object should be timed out. More...
 
void emptyLists ()
 Empty the object list and the timeout list. More...
 
void emptyCallbackLists ()
 
virtual void processObjectAdditionCallbacks (DtReflectedObject *object)
 Process object addition/removal callbacks. More...
 
virtual void processObjectRemovalCallbacks (DtReflectedObject *object)
 
virtual void processWaitlistAdditionCallbacks (DtReflectedObject *object)
 Process waitlist addition/removal callbacks. More...
 
virtual void processWaitlistRemovalCallbacks (DtReflectedObject *object)
 
virtual const DtBaseHashKeyhashKeyFromStateMessage (const DtStateMsg *msg)=0
 Get a hash key from a state message. More...
 
virtual DtBaseHashKeyhashKeyFromAttributeRecordSet (const DtAttributeRecordSet &recordSet)
 Get a hash key from an attribute record set. More...
 
virtual int acceptPdu (const DtStateMsg &) const
 Determines if a PDU should be processed or not. More...
 
virtual bool readyToAdd (DtReflectedObject *obj)
 Returns true if the obj is ready to be added to myObjectList; calls myDiscoveryCondition from within. More...
 
virtual void processAttributePduCb (DtAttributeInteraction *inter)
 
virtual void processAttributePduRecordSet (const DtAttributeRecordSet &recordSet, const DtSimulationAddress &simAddr, DtReflectedObject *obj=0)
 
virtual void processAttributePduWaitListCb (DtReflectedObject *obj)
 
virtual void deleteRecordSetBySimulationAddressMap (DtRecordSetBySimulationAddressMap &recordSetMap, const DtSimulationAddress &simAddr=DtSimulationAddress()) const
 

Static Protected Member Functions

static void doTimeoutsPostDrainCb (void *usr)
 Calls doTimeouts. More...
 
static void processAttributePduCb (DtAttributeInteraction *inter, void *usr)
 
static void processAttributePduWaitListCb (DtReflectedObject *obj, void *userData)
 

Protected Attributes

DtExerciseConnmyExConn
 
DtIntrusiveList myObjectAddedCallbacks
 
DtIntrusiveList myObjectRemovedCallbacks
 
DtIntrusiveList myWaitlistAddedCallbacks
 
DtIntrusiveList myWaitlistRemovedCallbacks
 
DtIntrusiveList myObjectList
 
DtIntrusiveList myWaitList
 
DtHashlist myObjectHashlist
 
DtHashlist myWaitHashlist
 
DtAttributesByObjectIdMap myAttributeWaitHashlist
 
DtTime myTimeoutInterval
 
DtTime myNextTimeoutCheck
 
DtTime myTimeoutCheckInterval
 
bool myTimeoutProcessingFlag
 
DtDiscoveryCondition myDiscoveryCondition
 
void * myDiscoveryConditionParameter
 
std::set< DtPduKindmyPduKindSet
 

Private Member Functions

 DtReflectedObjectList (const DtReflectedObjectList &orig)
 copy constructor – not implemented More...
 
DtReflectedObjectListoperator= (const DtReflectedObjectList &orig)
 assignment operator – not implemented More...
 

Detailed Description

Instances of DtReflectedObjectList are lists of instances of classes derived from DtReflectedObject.

A DtReflectedObjectList manages the comings and goings of its reflected objects based on discoveries and removes received from the exercise connection.

Constructor & Destructor Documentation

DtReflectedObjectList::DtReflectedObjectList ( DtExerciseConn exConn,
int  numBucketsPrimeNumber = 503 
)

Constructor.

virtual DtReflectedObjectList::~DtReflectedObjectList ( )
virtual

destructor Warning: makes non-virtual call to removeAndDelete

DtReflectedObjectList::DtReflectedObjectList ( const DtReflectedObjectList orig)
private

copy constructor – not implemented

Member Function Documentation

virtual int DtReflectedObjectList::acceptPdu ( const DtStateMsg ) const
protectedvirtual
virtual void DtReflectedObjectList::addObjectAdditionCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual

Object added callback registration/deregistration.

virtual void DtReflectedObjectList::addObjectRemovalCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual

Object removed callback registration/deregistration.

virtual void DtReflectedObjectList::addWaitlistAdditionCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual

Callback registration for when objects are added or removed from the waitlist.

Not recommended. Use objectAddition and objectRemoval callbacks instead to be notified when an object is discovered.

Waitlist added callback registration/deregistration. Called when objects are added to the waitlist.

virtual void DtReflectedObjectList::addWaitlistRemovalCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual

Waitlist removed callback registration/deregistration.

Called when objects are removed from the waitlist. Callback is not called when object is removed from waitlist to be placed in object list.

virtual void DtReflectedObjectList::clearDiscoveryCondition ( )
virtual

Unregisters the checker function set in setDiscoverCondition.

If there is none set, this has no effect.

virtual int DtReflectedObjectList::count ( ) const
virtual

Get number of objects.

virtual void DtReflectedObjectList::deleteRecordSetBySimulationAddressMap ( DtRecordSetBySimulationAddressMap recordSetMap,
const DtSimulationAddress simAddr = DtSimulationAddress() 
) const
protectedvirtual
virtual void DtReflectedObjectList::doTimeouts ( )
protectedvirtual

Remove any remote objects which have not been updated during the timeout period.

Gets called automatically by a postDrainCallback registered by the constructor. Users should not need to call this.

static void DtReflectedObjectList::doTimeoutsPostDrainCb ( void *  usr)
staticprotected

Calls doTimeouts.

void DtReflectedObjectList::emptyCallbackLists ( )
protected
void DtReflectedObjectList::emptyLists ( )
protected

Empty the object list and the timeout list.

Non-virtual since meant to be called from destructor. Warning: makes non-virtual call to removeAndDelete

virtual DtExerciseConn* DtReflectedObjectList::exerciseConn ( ) const
virtual

Get my exerciseConn.

virtual DtReflectedObject* DtReflectedObjectList::firstObj ( ) const
virtual

Get the first/last object in the list.

virtual DtBaseHashKey* DtReflectedObjectList::hashKeyFromAttributeRecordSet ( const DtAttributeRecordSet recordSet)
protectedvirtual

Get a hash key from an attribute record set.

virtual const DtBaseHashKey& DtReflectedObjectList::hashKeyFromStateMessage ( const DtStateMsg msg)
protectedpure virtual
virtual void DtReflectedObjectList::initializeAttributePduKindsOfInterest ( const std::set< DtPduKind > &  pduKinds)
virtual

This initializes which PDU kinds will be processed when receiving an Attribute PDU.

virtual DtReflectedObject* DtReflectedObjectList::lastObj ( ) const
virtual
virtual DtReflectedObject* DtReflectedObjectList::lookupObj ( const DtBaseHashKey key) const
virtual

Search for an object.

virtual DtReflectedObject* DtReflectedObjectList::newReflectedObj ( const DtStateMsg msg)
protectedpure virtual
virtual void DtReflectedObjectList::objectAdded ( DtReflectedObject object)
protectedvirtual
DtReflectedObjectList& DtReflectedObjectList::operator= ( const DtReflectedObjectList orig)
private

assignment operator – not implemented

virtual void DtReflectedObjectList::print ( ) const
virtual
static void DtReflectedObjectList::processAttributePduCb ( DtAttributeInteraction inter,
void *  usr 
)
staticprotected
virtual void DtReflectedObjectList::processAttributePduCb ( DtAttributeInteraction inter)
protectedvirtual

Reimplemented in DtReflectedEmitterSystemList.

virtual void DtReflectedObjectList::processAttributePduRecordSet ( const DtAttributeRecordSet recordSet,
const DtSimulationAddress simAddr,
DtReflectedObject obj = 0 
)
protectedvirtual
static void DtReflectedObjectList::processAttributePduWaitListCb ( DtReflectedObject obj,
void *  userData 
)
staticprotected
virtual void DtReflectedObjectList::processAttributePduWaitListCb ( DtReflectedObject obj)
protectedvirtual
virtual void DtReflectedObjectList::processObjectAdditionCallbacks ( DtReflectedObject object)
protectedvirtual

Process object addition/removal callbacks.

virtual void DtReflectedObjectList::processObjectRemovalCallbacks ( DtReflectedObject object)
protectedvirtual
virtual DtReflectedObject* DtReflectedObjectList::processStateMessage ( const DtStateMsg msg)
protectedvirtual
virtual void DtReflectedObjectList::processWaitlistAdditionCallbacks ( DtReflectedObject object)
protectedvirtual

Process waitlist addition/removal callbacks.

virtual void DtReflectedObjectList::processWaitlistRemovalCallbacks ( DtReflectedObject object)
protectedvirtual
virtual bool DtReflectedObjectList::readyToAdd ( DtReflectedObject obj)
protectedvirtual

Returns true if the obj is ready to be added to myObjectList; calls myDiscoveryCondition from within.

virtual void DtReflectedObjectList::removeAndDelete ( DtReflectedObject obj,
char *  msg = NULL 
)
virtual
virtual void DtReflectedObjectList::removeObject ( DtReflectedObject obj)
virtual

This is the same as removeAndDelete, it exists to maintain equality with HLA objects.

virtual void DtReflectedObjectList::removeObjectAdditionCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual
virtual void DtReflectedObjectList::removeObjectRemovalCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual
virtual void DtReflectedObjectList::removeWaitlistAdditionCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual
virtual void DtReflectedObjectList::removeWaitlistRemovalCallback ( DtReflectedObjectCallbackFunction  cb,
void *  userData 
)
virtual
virtual void DtReflectedObjectList::setDiscoveryCondition ( DtDiscoveryCondition  fn,
void *  usr 
)
virtual

Set the checker function which will determine when an object gets discovered and put into the ref.

obj. list.

virtual void DtReflectedObjectList::setTimeoutCheckInterval ( DtTime  interval)
inlinevirtual
virtual void DtReflectedObjectList::setTimeoutInterval ( DtTime  time)
virtual

Set/Get the remote object timeout period.

virtual void DtReflectedObjectList::setTimeoutProcessing ( bool  onOff)
virtual

Set whether or not timeout processing occurs.

Defaults to On.

virtual bool DtReflectedObjectList::shouldBeTimedOut ( DtReflectedObject object)
protectedvirtual

Returns whether or not the object should be timed out.

Assumes that timeout processing is enabled.

virtual DtTime DtReflectedObjectList::timeoutCheckInterval ( ) const
inlinevirtual
virtual DtTime DtReflectedObjectList::timeoutInterval ( )
virtual

Member Data Documentation

DtAttributesByObjectIdMap DtReflectedObjectList::myAttributeWaitHashlist
protected
DtDiscoveryCondition DtReflectedObjectList::myDiscoveryCondition
protected
void* DtReflectedObjectList::myDiscoveryConditionParameter
protected
DtExerciseConn* DtReflectedObjectList::myExConn
protected
DtTime DtReflectedObjectList::myNextTimeoutCheck
protected
DtIntrusiveList DtReflectedObjectList::myObjectAddedCallbacks
protected
DtHashlist DtReflectedObjectList::myObjectHashlist
protected
DtIntrusiveList DtReflectedObjectList::myObjectList
protected
DtIntrusiveList DtReflectedObjectList::myObjectRemovedCallbacks
protected
std::set<DtPduKind> DtReflectedObjectList::myPduKindSet
protected
DtTime DtReflectedObjectList::myTimeoutCheckInterval
protected
DtTime DtReflectedObjectList::myTimeoutInterval
protected
bool DtReflectedObjectList::myTimeoutProcessingFlag
protected
DtHashlist DtReflectedObjectList::myWaitHashlist
protected
DtIntrusiveList DtReflectedObjectList::myWaitList
protected
DtIntrusiveList DtReflectedObjectList::myWaitlistAddedCallbacks
protected
DtIntrusiveList DtReflectedObjectList::myWaitlistRemovedCallbacks
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)