![]() |
VR-Link API Documentation for HLA 1.3
|
Instances of DtReflectedEmitterSystemList manage the list of of remote EmitterSystems in the exercise. More...
Inheritance diagram for DtReflectedEmitterSystemList:
Collaboration diagram for DtReflectedEmitterSystemList:Public Member Functions | |
| DtReflectedEmitterSystemList (DtExerciseConn *exConn, bool beamsUpdateSystems=true, const DtDDMRegionSet *regionSetToUse=0, const DtString &updateRateTag=DtString("")) | |
| Constructor If beamsUpdateSystems == true, then a system's post-update callbacks are called whenever one of the beams in the system is updated. | |
| DtReflectedEmitterSystemList (DtExerciseConn *exConn, const DtList *handleList, bool beamsUpdateSystems=true, const DtDDMRegionSet *regionSetToUse=0, const DtString &updateRateTag=DtString("")) | |
| Constructor - only subscribe to the RTI::ObjectClassHandles in handleList. | |
| virtual | ~DtReflectedEmitterSystemList () |
| destructor | |
| virtual DtReflectedEmitterSystem * | lookup (RTI::ObjectHandle id) |
| Look up emitter system by identifier. | |
| virtual DtReflectedEmitterSystem * | lookup (const DtGlobalObjectDesignator &emittingEntity, int systemId) const |
| Lookup an emitter from its object ID and system ID. | |
| virtual DtReflectedEmitterSystem * | lookup (const DtGlobalObjectDesignator &objName) |
| Look up emitter system by name. | |
| virtual DtReflectedEmitterSystem * | first () const |
| Get the first/last emitter system in the list. | |
| virtual DtReflectedEmitterSystem * | last () const |
| virtual void | addEmitterSystemAdditionCallback (DtEmitterSystemCallbackFunction cb, void *userData) |
| EmitterSystem added callback registration/deregistration. | |
| virtual void | removeEmitterSystemAdditionCallback (DtEmitterSystemCallbackFunction cb, void *userData) |
| virtual void | addEmitterSystemRemovalCallback (DtEmitterSystemCallbackFunction cb, void *userData) |
| EmitterSystem removed callback registration/deregistration. | |
| virtual void | removeEmitterSystemRemovalCallback (DtEmitterSystemCallbackFunction cb, void *userData) |
| virtual DtReflectedEmitterBeamList * | refBeamList () |
| Returns a pointer to a reflected emitter 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 Emitter Systems. | |
| virtual void | clearBeamDiscoveryCondition () |
| Call this function to remove the previously registered discovery condition. | |
| virtual bool | delayBeamDiscovery (DtReflectedObject *beam, void *emitSysList) |
| The following function checks whether a beam should be discovered; It only gets called if discovery conditions get registered either by calling DtReflectedEmitterSystemList::setDiscoveryCondition() or DtReflectedEmitterSystemList::setBeamDiscoveryCondition(). | |
Protected Member Functions | |
| virtual void | processDiscoverObject (DtHlaObject *obj) |
| Process the discovery of a remote emitter system on the network. | |
| virtual void | processRemoveObject (DtHlaObject *obj) |
| Process the removal of a remote emitter system from the network. | |
| virtual void | processEmitterBeamAddition (DtReflectedEmitterBeam *beam) |
| Called by similar callback functions registered with myBeamList on beam additions/removals. | |
| virtual void | processEmitterBeamUpdate (DtReflectedEmitterBeam *beam) |
| virtual void | processEmitterBeamRemoval (DtReflectedEmitterBeam *beam) |
| virtual void | resolveOrphans () |
| Check if any orphanBeams have non-NULL emittingSystemId. | |
| virtual DtReflectedObject * | newReflectedObject (DtHlaObject *obj) const |
| Override of virtual function. Here, we create a DtReflectedEmitterSystem. | |
| virtual DtReflectedEmitterSystem * | newReflectedEmitterSystem (const DtGlobalObjectDesignator &des) const |
| Create a remote emitter 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 DtList * | dfltHandleList () |
| Returns a DtList of RTI::ObjectClassHandles that represent the list of object classes to which this list should subscribe. | |
Static Protected Member Functions | |
| static void | emitterBeamAdditionCb (DtReflectedEmitterBeam *beam, void *usr) |
| Callback functions registered with myBeamList on beam additions, updates, and removals. | |
| static void | emitterBeamUpdateCb (DtReflectedEmitterBeam *beam, void *usr) |
| static void | emitterBeamRemovalCb (DtReflectedEmitterBeam *beam, void *usr) |
| static void | resolveOrphansPostDrainCb (void *usr) |
| Callback that calls resolveOrphans. | |
| static bool | delayBeamDiscoveryCondition (DtReflectedObject *beam, void *emitSysList) |
| The following discovery condition function gets set for EmitterBeams when users register a discovery condition for either DtReflectedEmitterSystemList or its beam list. | |
Protected Attributes | |
| DtObjectId | myCounterId |
| DtList | myOrphanBeams |
| used for generating dummy obj ids | |
| DtReflectedEmitterBeamList | myBeamList |
| bool | myBeamsUpdateSystems |
| DtDiscoveryCondition | myBeamDiscoveryCondition |
| void * | myBeamDiscoveryConditionParameter |
Private Member Functions | |
| DtReflectedEmitterSystemList (const DtReflectedEmitterSystemList &orig) | |
| copy constructor -- not implemented | |
| DtReflectedEmitterSystemList & | operator= (const DtReflectedEmitterSystemList &orig) |
| assignment operator -- not implemented | |
Instances of DtReflectedEmitterSystemList manage the list of of remote EmitterSystems in the exercise.
| DtReflectedEmitterSystemList::DtReflectedEmitterSystemList | ( | DtExerciseConn * | exConn, |
| bool | beamsUpdateSystems = true, |
||
| const DtDDMRegionSet * | regionSetToUse = 0, |
||
| const DtString & | updateRateTag = DtString("") |
||
| ) |
Constructor If beamsUpdateSystems == true, then a system's post-update callbacks are called whenever one of the beams in the system is updated.
| DtReflectedEmitterSystemList::DtReflectedEmitterSystemList | ( | DtExerciseConn * | exConn, |
| const DtList * | handleList, | ||
| bool | beamsUpdateSystems = true, |
||
| const DtDDMRegionSet * | regionSetToUse = 0, |
||
| const DtString & | updateRateTag = DtString("") |
||
| ) |
Constructor - only subscribe to the RTI::ObjectClassHandles in handleList.
| virtual DtReflectedEmitterSystemList::~DtReflectedEmitterSystemList | ( | ) | [virtual] |
destructor
| DtReflectedEmitterSystemList::DtReflectedEmitterSystemList | ( | const DtReflectedEmitterSystemList & | orig | ) | [private] |
copy constructor -- not implemented
| virtual void DtReflectedEmitterSystemList::addEmitterSystemAdditionCallback | ( | DtEmitterSystemCallbackFunction | cb, |
| void * | userData | ||
| ) | [virtual] |
EmitterSystem added callback registration/deregistration.
Called when an emitter system is added due to discovery of a system OR beam.
| virtual void DtReflectedEmitterSystemList::addEmitterSystemRemovalCallback | ( | DtEmitterSystemCallbackFunction | cb, |
| void * | userData | ||
| ) | [virtual] |
EmitterSystem removed callback registration/deregistration.
Called when an emitter system is removed due to discovery of a system OR beam.
| virtual void DtReflectedEmitterSystemList::clearBeamDiscoveryCondition | ( | ) | [virtual] |
Call this function to remove the previously registered discovery condition.
| virtual void DtReflectedEmitterSystemList::clearDiscoveryCondition | ( | ) | [virtual] |
Overrides the DtReflectedObjectList::clearDiscoveryCondition.
This function clears the discovery condition on the emitter systems and beams.
Reimplemented from DtReflectedObjectList.
| virtual bool DtReflectedEmitterSystemList::delayBeamDiscovery | ( | DtReflectedObject * | beam, |
| void * | emitSysList | ||
| ) | [virtual] |
The following function checks whether a beam should be discovered; It only gets called if discovery conditions get registered either by calling DtReflectedEmitterSystemList::setDiscoveryCondition() or DtReflectedEmitterSystemList::setBeamDiscoveryCondition().
| static bool DtReflectedEmitterSystemList::delayBeamDiscoveryCondition | ( | DtReflectedObject * | beam, |
| void * | emitSysList | ||
| ) | [static, protected] |
The following discovery condition function gets set for EmitterBeams when users register a discovery condition for either DtReflectedEmitterSystemList or its beam list.
Calls DtReflectedEmitterSystem::delayBeamDiscovery()
| virtual const DtList* DtReflectedEmitterSystemList::dfltHandleList | ( | ) | [protected, virtual] |
Returns a DtList of RTI::ObjectClassHandles that represent the list of object classes to which this list should subscribe.
| static void DtReflectedEmitterSystemList::emitterBeamAdditionCb | ( | DtReflectedEmitterBeam * | beam, |
| void * | usr | ||
| ) | [static, protected] |
Callback functions registered with myBeamList on beam additions, updates, and removals.
Calls processEmitterBeamAddition/Update/Removal.
| static void DtReflectedEmitterSystemList::emitterBeamRemovalCb | ( | DtReflectedEmitterBeam * | beam, |
| void * | usr | ||
| ) | [static, protected] |
| static void DtReflectedEmitterSystemList::emitterBeamUpdateCb | ( | DtReflectedEmitterBeam * | beam, |
| void * | usr | ||
| ) | [static, protected] |
| virtual DtReflectedEmitterSystem* DtReflectedEmitterSystemList::first | ( | ) | const [virtual] |
Get the first/last emitter system in the list.
| virtual DtReflectedEmitterSystem* DtReflectedEmitterSystemList::last | ( | ) | const [virtual] |
| virtual DtReflectedEmitterSystem* DtReflectedEmitterSystemList::lookup | ( | RTI::ObjectHandle | id | ) | [virtual] |
Look up emitter system by identifier.
| virtual DtReflectedEmitterSystem* DtReflectedEmitterSystemList::lookup | ( | const DtGlobalObjectDesignator & | emittingEntity, |
| int | systemId | ||
| ) | const [virtual] |
Lookup an emitter from its object ID and system ID.
| virtual DtReflectedEmitterSystem* DtReflectedEmitterSystemList::lookup | ( | const DtGlobalObjectDesignator & | objName | ) | [virtual] |
Look up emitter system by name.
| virtual DtReflectedEmitterSystem* DtReflectedEmitterSystemList::newReflectedEmitterSystem | ( | const DtGlobalObjectDesignator & | des | ) | const [protected, virtual] |
Create a remote emitter system object for the HLA object.
Caller is responsible for deletion.
| virtual DtReflectedObject* DtReflectedEmitterSystemList::newReflectedObject | ( | DtHlaObject * | obj | ) | const [protected, virtual] |
Override of virtual function. Here, we create a DtReflectedEmitterSystem.
Implements DtReflectedObjectList.
| virtual void DtReflectedEmitterSystemList::objectAdded | ( | DtReflectedObject * | obj | ) | [protected, virtual] |
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.
| DtReflectedEmitterSystemList& DtReflectedEmitterSystemList::operator= | ( | const DtReflectedEmitterSystemList & | orig | ) | [private] |
assignment operator -- not implemented
| virtual void DtReflectedEmitterSystemList::processDiscoverObject | ( | DtHlaObject * | obj | ) | [protected, virtual] |
Process the discovery of a remote emitter 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 DtReflectedEmitterSystemList::processEmitterBeamAddition | ( | DtReflectedEmitterBeam * | beam | ) | [protected, virtual] |
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 DtReflectedEmitterSystemList::processEmitterBeamRemoval | ( | DtReflectedEmitterBeam * | beam | ) | [protected, virtual] |
| virtual void DtReflectedEmitterSystemList::processEmitterBeamUpdate | ( | DtReflectedEmitterBeam * | beam | ) | [protected, virtual] |
| virtual void DtReflectedEmitterSystemList::processRemoveObject | ( | DtHlaObject * | obj | ) | [protected, virtual] |
Process the removal of a remote emitter system from the network.
Removes the remote emitter system from this list. Can't use base version, since we need to keep systems that still have live beams.
Reimplemented from DtReflectedObjectList.
| virtual DtReflectedEmitterBeamList* DtReflectedEmitterSystemList::refBeamList | ( | ) | [virtual] |
Returns a pointer to a reflected emitter 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 DtReflectedEmitterSystem, and its DtEmitterSystemRepository (through which you can get a list of DtEmitterBeamRepositories). 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 DtEmitterBeamPublisher's constructor.
| virtual void DtReflectedEmitterSystemList::removeEmitterSystemAdditionCallback | ( | DtEmitterSystemCallbackFunction | cb, |
| void * | userData | ||
| ) | [virtual] |
| virtual void DtReflectedEmitterSystemList::removeEmitterSystemRemovalCallback | ( | DtEmitterSystemCallbackFunction | cb, |
| void * | userData | ||
| ) | [virtual] |
| virtual void DtReflectedEmitterSystemList::resolveOrphans | ( | ) | [protected, virtual] |
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 DtReflectedEmitterSystemList::resolveOrphansPostDrainCb | ( | void * | usr | ) | [static, protected] |
Callback that calls resolveOrphans.
| virtual void DtReflectedEmitterSystemList::setBeamDiscoveryCondition | ( | DtDiscoveryCondition | fn, |
| void * | usr | ||
| ) | [virtual] |
Call this function to register a discovery condition on the beams of Emitter 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 DtReflectedEmitterSystem -- See comment above).
| virtual void DtReflectedEmitterSystemList::setDiscoveryCondition | ( | DtDiscoveryCondition | fn, |
| void * | usr | ||
| ) | [virtual] |
Over-rides DtReflectedObjectList::setDiscoveryCondition().
This function checks that emitter 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 DtReflectedEmitterSystemList::shouldBeTimedOut | ( | DtReflectedObject * | object | ) | [protected, virtual] |
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.
void* DtReflectedEmitterSystemList::myBeamDiscoveryConditionParameter [protected] |
bool DtReflectedEmitterSystemList::myBeamsUpdateSystems [protected] |
DtObjectId DtReflectedEmitterSystemList::myCounterId [protected] |
DtList DtReflectedEmitterSystemList::myOrphanBeams [protected] |
used for generating dummy obj ids