VR-Link API Documentation for HLA 1.3
 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
DtReflectedActiveSonarList Class Reference

Instances of DtReflectedActiveSonarList manage a list of DtReflectedActiveSonar objects. More...

+ Inheritance diagram for DtReflectedActiveSonarList:
+ Collaboration diagram for DtReflectedActiveSonarList:

Public Member Functions

 DtReflectedActiveSonarList (DtExerciseConn *exConn, const DtDDMRegionSet *regionSetToUse=0, const DtString &updateRateTag="")
 Constructor.
 DtReflectedActiveSonarList (DtExerciseConn *exConn, const DtList *handleList, const DtDDMRegionSet *regionSetToUse=0, const DtString &updateRateTag="")
 Constructor - only subscribe to the RTI::ObjectClassHandles in handleList.
virtual ~DtReflectedActiveSonarList ()
 Destructor.
virtual DtReflectedActiveSonarlookup (RTI::ObjectHandle id)
 Look up by identifier.
virtual DtReflectedActiveSonarlookup (const DtGlobalObjectDesignator &objName)
 Look up by name.
virtual DtReflectedActiveSonarlookup (const DtGlobalObjectDesignator &emittingEntity, int systemId) const
 Lookup an ActiveSonar from its object ID and system ID.
virtual DtReflectedActiveSonarfirst () const
 Get the first reflected object in the list.
virtual DtReflectedActiveSonarlast () const
 Get the last reflected object in the list.
virtual void addActiveSonarAdditionCallback (DtActiveSonarCallbackFunction cb, void *usr)
 ActiveSonar added callback registration.
virtual void removeActiveSonarAdditionCallback (DtActiveSonarCallbackFunction cb, void *usr)
 ActiveSonar added callback de-registration.
virtual void addActiveSonarRemovalCallback (DtActiveSonarCallbackFunction cb, void *usr)
 ActiveSonar removed callback registration.
virtual void removeActiveSonarRemovalCallback (DtActiveSonarCallbackFunction cb, void *usr)
 ActiveSonar removed callback de-registration.
virtual
DtReflectedActiveSonarBeamList
refBeamList ()
 Returns a pointer to a reflected ActiveSonar beam list that we are using internally to track our constituent beams.
virtual void setDiscoveryCondition (DtDiscoveryCondition fn, void *usr)
 Over-rides DtReflectedObjectList::setDiscoveryCondition().
virtual void clearDiscoveryCondition ()
 Overrides the DtReflectedObjectList::clearDiscoveryCondition.
virtual void setBeamDiscoveryCondition (DtDiscoveryCondition fn, void *usr)
 Call this function to register a discovery condition on the beams of ActiveSonar Systems.
virtual void clearBeamDiscoveryCondition ()
 Call this function to remove the previously registered discovery condition.
virtual bool delayBeamDiscovery (DtReflectedObject *beam, void *usr)
 The following function checks whether a beam should be discovered; It only gets called if discovery conditions get registered either by calling DtReflectedActiveSonarSystemList::setDiscoveryCondition() or DtReflectedActiveSonarSystemList::setBeamDiscoveryCondition().
- Public Member Functions inherited from DtReflectedObjectList
 DtReflectedObjectList (DtExerciseConn *exConn, const DtDDMRegionSet *regionSetToUse=0, const DtString &updateRateTag=DtString(""))
 Constructor.
virtual ~DtReflectedObjectList ()
 destructor
virtual DtReflectedObjectlookupObj (RTI::ObjectHandle id)
 Look up object by identifier.
virtual DtReflectedObjectlookupObj (const DtGlobalObjectDesignator &objName)
 Look up object by global ID (which is the object name in RTI1.3.3).
virtual DtReflectedObjectfirstObj () const
 Get the first/last object in the list.
virtual DtReflectedObjectlastObj () const
virtual int count () const
 Get number of objects.
virtual DtExerciseConnexerciseConn () const
 Get my exerciseConn.
virtual void manageObjectClass (RTI::ObjectClassHandle handle)
 Register callbacks with exercise connection so that we get notified when an object of this class is discovered.
virtual bool removeObject (const DtObjectId &id)
 Have the application act as though we had never discovered the object.
virtual void addObjectAdditionCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 Object added callback registration/deregistration.
virtual void removeObjectAdditionCallback (DtReflectedObjectCallbackFunction cb, void *userData)
virtual void addObjectRemovalCallback (DtReflectedObjectCallbackFunction cb, void *userData)
 Object removed callback registration/deregistration.
virtual void removeObjectRemovalCallback (DtReflectedObjectCallbackFunction cb, void *userData)
virtual void print ()
 Print the SRs of all objects.
virtual void setTimeoutProcessing (bool onOff)
 Set whether or not timeout processing occurs.
virtual bool isTimeoutProcessing () const
 Get whether or not timeout processing occurs.
virtual void setWaitListRefreshEnabled (bool on)
 Set whether or not we will request updates for objects which have not met discovery and are therefor wait listed.
virtual void setTimeoutInterval (DtTime time)
 Set/Get the remote object timeout period.
virtual DtTime timeoutInterval ()
virtual void setWaitlistRefreshPeriod (DtTime time)
 Set/Get the wait list refresh period.
virtual DtTime waitlistRefreshPeriod ()
virtual const DtDDMRegionSetsubscribedRegions ()
 Returns list of regions subscribed to.

Protected Member Functions

virtual void processDiscoverObject (DtHlaObject *obj)
 Process the discovery of a remote ActiveSonar system on the network.
virtual void processRemoveObject (DtHlaObject *obj)
 Process the removal of a remote ActiveSonar system from the network.
virtual void processActiveSonarBeamAddition (DtReflectedActiveSonarBeam *beam)
 Called by similar callback functions registered with myBeamList on beam additions/removals.
virtual void processActiveSonarBeamUpdate (DtReflectedActiveSonarBeam *beam)
virtual void processActiveSonarBeamRemoval (DtReflectedActiveSonarBeam *beam)
virtual void resolveOrphans ()
 Check if any orphanBeams have non-NULL emittingSystemId.
virtual DtReflectedObjectnewReflectedObject (DtHlaObject *obj) const
 Override of virtual function. Here, we create a DtReflectedActiveSonarSystem.
virtual DtReflectedActiveSonarnewReflectedActiveSonar (const DtGlobalObjectDesignator &hostId) const
 Create a remote ActiveSonar system object for the HLA object.
virtual void objectAdded (DtReflectedObject *obj)
 Called from processDiscoverObject() after a remote transmitter has been added to the list.
virtual bool shouldBeTimedOut (DtReflectedObject *object)
 Returns whether or not the object should be timed out.
virtual const DtListdfltHandleList ()
 Returns a DtList of RTI::ObjectClassHandles that represent the list of object classes to which this list should subscribe.
- Protected Member Functions inherited from DtReflectedObjectList
virtual void processTimedOutObjectReflect (const DtStateMsg &msg, DtHlaObject *obj)
 Handle the receipt of attributes for a remote object which was timed out.
virtual void doTimeouts ()
 Remove any remote objects which have not been updated during the timeout period.
virtual void doRequestWaitListUpdates ()
 Request an update for any objects which have not met their discovery criteria yet.
virtual void removeAndDelete (DtReflectedObject *obj, char *msg=NULL)
 Remove the remote object from the list if found and delete it.
virtual void timeOutObject (DtReflectedObject *object)
 Times out object by removing it from the remote object list and deleting it.
virtual void unTimeOutObject (DtHlaObject *obj)
 Manages callbacks and data used for reinstating a remote object which was timed out.
virtual void addObjectClass (RTI::ObjectClassHandle handle)
 Register interest in this FOM object class.
virtual void addObjectClassByName (const char *className)
 Register interest in this FOM object class by className.
virtual void init (const DtList *handleList)
 Register interest in a whole list of RTI::ObjectClassHandles all at once.
void emptyLists ()
 Empty the object list and the timeout list.
void emptyCallbackLists ()
 Empty the callback lists.
virtual void processObjectAdditionCallbacks (DtReflectedObject *object)
 Process object addition/removal callbacks.
virtual void processObjectRemovalCallbacks (DtReflectedObject *object)
virtual void findAlreadyDiscoveredObjects ()
 When list is created, we call this function to go through the list of all discovered HLA objects to see if any should be managed by this list.
virtual void checkDiscoveryCondition (DtReflectedObject *refObj)
virtual bool readyToAdd (DtReflectedObject *obj)
 Returns true if the obj is ready to be added to myObjectList; calls myWaitListChecker from within.
virtual void addToObjectList (DtReflectedObject *refObj)
 Add refObj to myObjectList and initiates discovery callbacks.
virtual DtReflectedObjectlookupObjInWaitList (RTI::ObjectHandle id)
 Find object in waitList by identifier.
virtual DtReflectedObjectlookupObjInWaitList (const DtGlobalObjectDesignator &name)
 Find object in waitList by name.
void unsubscribeRegions ()

Static Protected Member Functions

static void activeSonarBeamAdditionCb (DtReflectedActiveSonarBeam *beam, void *usr)
 Callback functions registered with myBeamList on beam additions, updates, and removals.
static void activeSonarBeamUpdateCb (DtReflectedActiveSonarBeam *beam, void *usr)
static void activeSonarBeamRemovalCb (DtReflectedActiveSonarBeam *beam, void *usr)
static void resolveOrphansPostDrainCb (void *usr)
 Callback that calls resolveOrphans.
static bool delayBeamDiscoveryCondition (DtReflectedObject *beam, void *usr)
 The following discovery condition function gets set for ActiveSonarBeams when users register a discovery condition for either DtReflectedActiveSonarSystemList or its beam list.
- Static Protected Member Functions inherited from DtReflectedObjectList
static void discoverObjectCb (DtHlaObject *hlaObj, void *rel)
 Cast the void* to a DtReflectedObjectList* and calls processDiscoverObject().
static void removeObjectCb (DtHlaObject *hlaObj, void *rel)
 Cast the void* to a DtReflectedObjectList* and calls processRemoveObject().
static void timedOutObjectReflectCb (const DtStateMsg &msg, DtHlaObject *obj, void *usr)
 Cast the void* to a DtReflectedObjectList* and calls processTimedOutObjectReflect().
static void doTimeoutsPostDrainCb (void *usr)
 Calls doTimeouts.
static void doRequestWaitListUpdatesPostDrainCb (void *usr)
 Calls doRequestWaitListUpdates.
static void postUpdateCb (DtReflectedObject *obj, void *usr)
 Calls checkDiscoveryCondition.

Protected Attributes

DtObjectId myCounterId
DtList myOrphanBeams
 used for generating dummy obj ids
DtReflectedActiveSonarBeamList myBeamList
bool myBeamsUpdateSystems
DtDiscoveryCondition myBeamDiscoveryCondition
void * myBeamDiscoveryConditionParameter
- Protected Attributes inherited from DtReflectedObjectList
DtExerciseConnmyExConn
DtRefHlaObjectMap myObjectList
DtHashList myObjectListByName
DtRefHlaObjectMap myWaitList
DtList myTimedOutObjectList
std::vector
< RTI::ObjectClassHandle > 
myHandleList
DtIntrusiveList myObjectAddedCallbacks
DtIntrusiveList myObjectRemovedCallbacks
DtTime myTimeoutInterval
bool myTimeoutProcessingFlag
bool myWaitListRequestUpdateFlag
DtDiscoveryCondition myDiscoveryCondition
void * myDiscoveryConditionParameter
DtTime myWaitlistTime
DtTime myWaitlistRefreshPeriod
DtDDMRegionSet mySubscribedRegions
DtString myUpdateRateTag

Private Member Functions

 DtReflectedActiveSonarList (const DtReflectedActiveSonarList &orig)
 Copy constructor not implemented - cannot be copied.
DtReflectedActiveSonarListoperator= (const DtReflectedActiveSonarList &orig)
 Assignment operator not implemented - cannot be copied.

Additional Inherited Members

- Static Public Member Functions inherited from DtReflectedObjectList
static void setAutoSubscribeFlag (bool flag)
 Set/Get flag which determines whether to subscribe to object classes that this list manages.
static bool autoSubscribeFlag ()
static void setRequestClassUpdateFlag (bool onOff)
 Set/Get flag that determines whether we request updates from all objects of the object classes we subscribe to.
static bool requestClassUpdateFlag ()
static void setRequestObjectUpdateFlag (bool onOff)
 Set/Get flag that determines whether we request updates from an object as we discover it.
static bool requestObjectUpdateFlag ()
static void findDiscoveredObjectsCb (void *usr)
 Post-drain callback that calls findAlreadyDiscovedObjects().
- Static Protected Attributes inherited from DtReflectedObjectList
static bool theAutoSubscribeFlag
static bool theRequestClassUpdateFlag
static bool theRequestObjectUpdateFlag

Detailed Description

Instances of DtReflectedActiveSonarList manage a list of DtReflectedActiveSonar objects.

Constructor & Destructor Documentation

DtReflectedActiveSonarList::DtReflectedActiveSonarList ( DtExerciseConn exConn,
const DtDDMRegionSet regionSetToUse = 0,
const DtString updateRateTag = "" 
)

Constructor.

DtReflectedActiveSonarList::DtReflectedActiveSonarList ( DtExerciseConn exConn,
const DtList handleList,
const DtDDMRegionSet regionSetToUse = 0,
const DtString updateRateTag = "" 
)

Constructor - only subscribe to the RTI::ObjectClassHandles in handleList.

virtual DtReflectedActiveSonarList::~DtReflectedActiveSonarList ( )
virtual

Destructor.

DtReflectedActiveSonarList::DtReflectedActiveSonarList ( const DtReflectedActiveSonarList orig)
private

Copy constructor not implemented - cannot be copied.

Member Function Documentation

static void DtReflectedActiveSonarList::activeSonarBeamAdditionCb ( DtReflectedActiveSonarBeam beam,
void *  usr 
)
staticprotected

Callback functions registered with myBeamList on beam additions, updates, and removals.

Calls processActiveSonarBeamAddition/Update/Removal.

static void DtReflectedActiveSonarList::activeSonarBeamRemovalCb ( DtReflectedActiveSonarBeam beam,
void *  usr 
)
staticprotected
static void DtReflectedActiveSonarList::activeSonarBeamUpdateCb ( DtReflectedActiveSonarBeam beam,
void *  usr 
)
staticprotected
virtual void DtReflectedActiveSonarList::addActiveSonarAdditionCallback ( DtActiveSonarCallbackFunction  cb,
void *  usr 
)
virtual

ActiveSonar added callback registration.

virtual void DtReflectedActiveSonarList::addActiveSonarRemovalCallback ( DtActiveSonarCallbackFunction  cb,
void *  usr 
)
virtual

ActiveSonar removed callback registration.

virtual void DtReflectedActiveSonarList::clearBeamDiscoveryCondition ( )
virtual

Call this function to remove the previously registered discovery condition.

virtual void DtReflectedActiveSonarList::clearDiscoveryCondition ( )
virtual

Overrides the DtReflectedObjectList::clearDiscoveryCondition.

This function clears the discovery condition on the ActiveSonar systems and beams.

Reimplemented from DtReflectedObjectList.

virtual bool DtReflectedActiveSonarList::delayBeamDiscovery ( DtReflectedObject beam,
void *  usr 
)
virtual

The following function checks whether a beam should be discovered; It only gets called if discovery conditions get registered either by calling DtReflectedActiveSonarSystemList::setDiscoveryCondition() or DtReflectedActiveSonarSystemList::setBeamDiscoveryCondition().

static bool DtReflectedActiveSonarList::delayBeamDiscoveryCondition ( DtReflectedObject beam,
void *  usr 
)
staticprotected

The following discovery condition function gets set for ActiveSonarBeams when users register a discovery condition for either DtReflectedActiveSonarSystemList or its beam list.

Calls DtReflectedActiveSonarSystem::delayBeamDiscovery()

virtual const DtList* DtReflectedActiveSonarList::dfltHandleList ( )
protectedvirtual

Returns a DtList of RTI::ObjectClassHandles that represent the list of object classes to which this list should subscribe.

virtual DtReflectedActiveSonar* DtReflectedActiveSonarList::first ( ) const
virtual

Get the first reflected object in the list.

virtual DtReflectedActiveSonar* DtReflectedActiveSonarList::last ( ) const
virtual

Get the last reflected object in the list.

virtual DtReflectedActiveSonar* DtReflectedActiveSonarList::lookup ( RTI::ObjectHandle  id)
virtual

Look up by identifier.

virtual DtReflectedActiveSonar* DtReflectedActiveSonarList::lookup ( const DtGlobalObjectDesignator objName)
virtual

Look up by name.

virtual DtReflectedActiveSonar* DtReflectedActiveSonarList::lookup ( const DtGlobalObjectDesignator emittingEntity,
int  systemId 
) const
virtual

Lookup an ActiveSonar from its object ID and system ID.

virtual DtReflectedActiveSonar* DtReflectedActiveSonarList::newReflectedActiveSonar ( const DtGlobalObjectDesignator hostId) const
protectedvirtual

Create a remote ActiveSonar system object for the HLA object.

Caller is responsible for deletion.

virtual DtReflectedObject* DtReflectedActiveSonarList::newReflectedObject ( DtHlaObject obj) const
protectedvirtual

Override of virtual function. Here, we create a DtReflectedActiveSonarSystem.

Implements DtReflectedObjectList.

virtual void DtReflectedActiveSonarList::objectAdded ( DtReflectedObject obj)
protectedvirtual

Called from processDiscoverObject() after a remote transmitter has been added to the list.

Default implementation prints a message. Subclasses can override this function to add functionality on addition. obj will be an instance of a class derived from DtReflectedObj.

Reimplemented from DtReflectedObjectList.

DtReflectedActiveSonarList& DtReflectedActiveSonarList::operator= ( const DtReflectedActiveSonarList orig)
private

Assignment operator not implemented - cannot be copied.

virtual void DtReflectedActiveSonarList::processActiveSonarBeamAddition ( DtReflectedActiveSonarBeam beam)
protectedvirtual

Called by similar callback functions registered with myBeamList on beam additions/removals.

Addition function adds the beam to the set of orphan beams (since we don't know what system he's part of), the removal function removes the beam's beamSR from his system's systemSR. Update function calls the beam's system update callbacks if beamsUpdateSystems == true in the reflected system list constructor.

virtual void DtReflectedActiveSonarList::processActiveSonarBeamRemoval ( DtReflectedActiveSonarBeam beam)
protectedvirtual
virtual void DtReflectedActiveSonarList::processActiveSonarBeamUpdate ( DtReflectedActiveSonarBeam beam)
protectedvirtual
virtual void DtReflectedActiveSonarList::processDiscoverObject ( DtHlaObject obj)
protectedvirtual

Process the discovery of a remote ActiveSonar system on the network.

Can't use base version, since we need to account for systems that are already in the list by virtue of discovered beams.

Reimplemented from DtReflectedObjectList.

virtual void DtReflectedActiveSonarList::processRemoveObject ( DtHlaObject obj)
protectedvirtual

Process the removal of a remote ActiveSonar system from the network.

Removes the remote ActiveSonar system from this list. Can't use base version, since we need to keep systems that still have live beams.

Reimplemented from DtReflectedObjectList.

virtual DtReflectedActiveSonarBeamList* DtReflectedActiveSonarList::refBeamList ( )
virtual

Returns a pointer to a reflected ActiveSonar beam list that we are using internally to track our constituent beams.

Normally, you do not need to access this beam list. Instead, you should find out the state of a beam by going through the parent DtReflectedActiveSonarSystem, and its DtActiveSonarSystemRepository (through which you can get a list of DtActiveSonarBeamRepositories). This function, however, may be used in conjunction with ownership management. If you want to take ownership of some attributes of a beam object, use this function to grab the beam list, find the appropriate beam's DtHlaObject, and pass it to the DtActiveSonarBeamPublisher's constructor.

virtual void DtReflectedActiveSonarList::removeActiveSonarAdditionCallback ( DtActiveSonarCallbackFunction  cb,
void *  usr 
)
virtual

ActiveSonar added callback de-registration.

virtual void DtReflectedActiveSonarList::removeActiveSonarRemovalCallback ( DtActiveSonarCallbackFunction  cb,
void *  usr 
)
virtual

ActiveSonar removed callback de-registration.

virtual void DtReflectedActiveSonarList::resolveOrphans ( )
protectedvirtual

Check if any orphanBeams have non-NULL emittingSystemId.

If so, add them to their appropriate system (creating one if it doesn't exist), and delete them from orphan list.

static void DtReflectedActiveSonarList::resolveOrphansPostDrainCb ( void *  usr)
staticprotected

Callback that calls resolveOrphans.

virtual void DtReflectedActiveSonarList::setBeamDiscoveryCondition ( DtDiscoveryCondition  fn,
void *  usr 
)
virtual

Call this function to register a discovery condition on the beams of ActiveSonar Systems.

Generally, it will be preferable to call this function rather than calling setDiscoveryCondition() directly on the beamList. (Calling setDiscoveryCondition() directly will over-ride the mechanism by which beam discoveries are delayed when a user registers a discovery condition on DtReflectedActiveSonarSystem – See comment above).

virtual void DtReflectedActiveSonarList::setDiscoveryCondition ( DtDiscoveryCondition  fn,
void *  usr 
)
virtual

Over-rides DtReflectedObjectList::setDiscoveryCondition().

This function checks that ActiveSonar system objects satisfy the given criteria before getting discovered and added to the list (the discovery of beams belonging to the system will also be delayed until the after the system is discovered)

Reimplemented from DtReflectedObjectList.

virtual bool DtReflectedActiveSonarList::shouldBeTimedOut ( DtReflectedObject object)
protectedvirtual

Returns whether or not the object should be timed out.

Assumes that timeout processing is enabled. Can't use base version since we don't want to time out systems with live beams.

Reimplemented from DtReflectedObjectList.

Member Data Documentation

DtDiscoveryCondition DtReflectedActiveSonarList::myBeamDiscoveryCondition
protected
void* DtReflectedActiveSonarList::myBeamDiscoveryConditionParameter
protected
DtReflectedActiveSonarBeamList DtReflectedActiveSonarList::myBeamList
protected
bool DtReflectedActiveSonarList::myBeamsUpdateSystems
protected
DtObjectId DtReflectedActiveSonarList::myCounterId
mutableprotected
DtList DtReflectedActiveSonarList::myOrphanBeams
protected

used for generating dummy obj ids


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

Document ID: Generated on Thu Feb 22 04:26:36 EST 2018 from SVN revision 186468
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)