VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtRemoteComponentAttachmentManager Class Reference

This singleton class keeps track of components that should be added to remote, non VR-Forces entities.

Public Types

enum  EvaluationReadinessState { Remove = -1, NotReady = 0, Ready }
 
typedef
DtRemoteComponentConfigurationBuilder *(* 
CreatorFcn )(DtRemoteComponentAttachmentManager *, DtLocalObjectManager *)
 
typedef std::map< DtUUID,
boost::signals2::connection > 
RecentArrivalsMap
 
typedef RecentArrivalsMap::iterator ArrivalIterator
 
typedef
RecentArrivalsMap::const_iterator 
const_ArrivalIterator
 

Public Member Functions

 DtRemoteComponentAttachmentManager (DtLocalObjectManager *pObjMgr)
 
virtual ~DtRemoteComponentAttachmentManager ()
 
virtual void addRecentArrival (DtSimObjectReference)
 
virtual void attach (const DtRemoteConfigurationMapEntry &entry, DtSimObjectReference obj)
 
virtual bool isRemoteComponentAttachment (const DtUUID &) const
 
virtual void clear ()
 
virtual
DtRemoteConfigurationMapper
createAttachmentRules (const char *pReaderWriterName)
 
virtual void clearRecentArrivals ()
 
virtual EvaluationReadinessState checkReadinessCriteria (DtSimObjectReference obj) const
 
virtual bool checkRejectionCriteria (DtSimObjectReference obj) const
 
virtual void destroyAttachmentRules ()
 
virtual void evaluateAndAttach (DtSimObjectReference obj)
 
virtual bool initialize (const DtFilename &fromFile)
 
virtual void resetAllReflectedObjectsToNonVrfSimulated ()
 
virtual void resetReflectedObjectToNonVrfSimulated (const DtUUID &pVrfObj)
 
virtual void tick ()
 
virtual void processVrfObjectToBeRemoved (const DtSimObject *pVrfObject)
 
virtual
DtRemoteConfigurationMapper
attachmentRules ()
 
virtual const
DtRemoteConfigurationMapper
attachmentRules () const
 
DtRemoteComponentConfigurationBuilder::CreatorFcn builderCreatorFcn ()
 
void setBuilderCreatorFcn (DtRemoteComponentConfigurationBuilder::CreatorFcn fcn)
 
virtual void processRemoveFromArrivals (const DtUUID &uuid)
 
DtTime tickRate () const
 
void setTickRate (DtTime interval)
 

Protected Member Functions

 DtRemoteComponentAttachmentManager ()
 
virtual void doWork ()
 

Protected Attributes

RecentArrivalsMap myConfirmedAttachments
 
DtTime myNextTick
 
DtSimObjectReferenceList myRecentArrivals
 
DtRemoteComponentConfigurationBuildermyRemoteConfigBuilder
 
DtRemoteComponentConfigurationBuilder::CreatorFcn myRemoteConfigBuilderCreatorFcn
 
DtRwUUID myWorkerKey
 
DtTime myTickRate
 
DtLocalObjectManagermyObjectManager
 
DtRemoteConfigurationMappermyAttachmentRules
 
tbb::spin_mutex myRecentArrivalsMutex
 
boost::signals2::scoped_connection mySimObjectAddedConnection
 

Private Member Functions

 DtRemoteComponentAttachmentManager (DtRemoteComponentAttachmentManager &)
 
const
DtRemoteComponentAttachmentManager
operator= (const DtRemoteComponentAttachmentManager &)
 

Member Typedef Documentation

typedef DtRemoteComponentConfigurationBuilder*(* DtRemoteComponentAttachmentManager::CreatorFcn)(DtRemoteComponentAttachmentManager *, DtLocalObjectManager *)
typedef std::map<DtUUID, boost::signals2::connection> DtRemoteComponentAttachmentManager::RecentArrivalsMap
typedef RecentArrivalsMap::iterator DtRemoteComponentAttachmentManager::ArrivalIterator
typedef RecentArrivalsMap::const_iterator DtRemoteComponentAttachmentManager::const_ArrivalIterator

Member Enumeration Documentation

Enumerator
Remove 
NotReady 
Ready 

Constructor & Destructor Documentation

DtRemoteComponentAttachmentManager::DtRemoteComponentAttachmentManager ( )
protected

Default Constructor. Do not use.

DtRemoteComponentAttachmentManager::DtRemoteComponentAttachmentManager ( DtLocalObjectManager pObjMgr)

Constructor.

virtual DtRemoteComponentAttachmentManager::~DtRemoteComponentAttachmentManager ( )
virtual

Destructor.

DtRemoteComponentAttachmentManager::DtRemoteComponentAttachmentManager ( DtRemoteComponentAttachmentManager )
private

unused, this is a singleton class

Member Function Documentation

virtual void DtRemoteComponentAttachmentManager::addRecentArrival ( DtSimObjectReference  )
virtual

adds the global object designator to the list of recent arrivals

virtual void DtRemoteComponentAttachmentManager::attach ( const DtRemoteConfigurationMapEntry entry,
DtSimObjectReference  obj 
)
virtual

Arrange for component attachment through myRemoteConfigBuilder.

virtual bool DtRemoteComponentAttachmentManager::isRemoteComponentAttachment ( const DtUUID ) const
virtual

Returns true if the object is a remote component that is attached.

virtual DtRemoteConfigurationMapper* DtRemoteComponentAttachmentManager::attachmentRules ( )
virtual

Return myAttachmentList, a list of attachment rules.

virtual const DtRemoteConfigurationMapper* DtRemoteComponentAttachmentManager::attachmentRules ( ) const
virtual

Return myAttachmentList, a list of attachment rules.

DtRemoteComponentConfigurationBuilder::CreatorFcn DtRemoteComponentAttachmentManager::builderCreatorFcn ( )
inline
void DtRemoteComponentAttachmentManager::setBuilderCreatorFcn ( DtRemoteComponentConfigurationBuilder::CreatorFcn  fcn)
inline
virtual void DtRemoteComponentAttachmentManager::clear ( )
virtual

Purge all lists, return memory to the heap. This also calls clearRecentArrivals();.

virtual DtRemoteConfigurationMapper* DtRemoteComponentAttachmentManager::createAttachmentRules ( const char pReaderWriterName)
virtual

Create myAttachmentRules, override to instantiate derived type. Example name: "remote-configurations" This does not set myAttachmentRules. Rather this is called from initialize(), and initialize() assigns the results to myAttachmentRules. createAttachmentRules() will only be called if myAttachmentRules is NULL.

virtual void DtRemoteComponentAttachmentManager::clearRecentArrivals ( )
virtual

Empty the recent arrivals list.

virtual EvaluationReadinessState DtRemoteComponentAttachmentManager::checkReadinessCriteria ( DtSimObjectReference  obj) const
virtual

Inspect the the given object, determine if it's ready to be evaluated for attachment. Returns: Remove - this object shouldn't be evaluated, and should be removed. NotReady - there isn't enough information for evaluation. true - the object is ready to be evaluated for remote component attachment.

virtual bool DtRemoteComponentAttachmentManager::checkRejectionCriteria ( DtSimObjectReference  obj) const
virtual

Inspect the given object, and perform exclusion checks to eliminate the object from consideration. This is called at the beginning of checkReadinessCriteria(). The base class rejects objects that are local to the simulation, and objects that are simulated by VR-Forces. Returns true to signal reject. Returns false to accept object for further evaluation.

virtual void DtRemoteComponentAttachmentManager::destroyAttachmentRules ( )
virtual

Calls clear(), deletes myAttachmentRules, sets to NULL.

virtual void DtRemoteComponentAttachmentManager::evaluateAndAttach ( DtSimObjectReference  obj)
virtual

Examine if remote component attachment should take place, and call attach(). The evaluation order is: entity identifier, marking text, object type.

virtual bool DtRemoteComponentAttachmentManager::initialize ( const DtFilename &  fromFile)
virtual

Purge the remote component attachment system, then reinitialize from the file.

virtual void DtRemoteComponentAttachmentManager::processRemoveFromArrivals ( const DtUUID uuid)
virtual

Removes this object from the recent arrivals queue.

virtual void DtRemoteComponentAttachmentManager::resetAllReflectedObjectsToNonVrfSimulated ( )
virtual

For all confirmed attachments, reset VRF-simulated flag.

virtual void DtRemoteComponentAttachmentManager::resetReflectedObjectToNonVrfSimulated ( const DtUUID pVrfObj)
virtual

reset VRF-simulated flag.

virtual void DtRemoteComponentAttachmentManager::tick ( )
virtual

Checks next scheduled tick, call doWork()

DtTime DtRemoteComponentAttachmentManager::tickRate ( ) const
inline

Get/Set the tick interval for the attachment manager.

References myTickRate.

void DtRemoteComponentAttachmentManager::setTickRate ( DtTime  interval)
inline

Get/Set the tick interval for the attachment manager.

References myTickRate.

virtual void DtRemoteComponentAttachmentManager::processVrfObjectToBeRemoved ( const DtSimObject pVrfObject)
virtual

Reset the reflected object back to non-vrf simulated, if it is listed in myConfirmedAttachments.

virtual void DtRemoteComponentAttachmentManager::doWork ( )
protectedvirtual

Walk the recent arrivals list, evaluating members against eligibility for attachment. Called by tick() in order to do work. Override doWork() to extend or override the base class behavior.

const DtRemoteComponentAttachmentManager& DtRemoteComponentAttachmentManager::operator= ( const DtRemoteComponentAttachmentManager )
private

Member Data Documentation

RecentArrivalsMap DtRemoteComponentAttachmentManager::myConfirmedAttachments
protected

keep track of what entities contain attachments

DtTime DtRemoteComponentAttachmentManager::myNextTick
protected

Next scheduled tick time.

DtSimObjectReferenceList DtRemoteComponentAttachmentManager::myRecentArrivals
protected

This list captures the IDs of newly discovered simulated things.

DtRemoteComponentConfigurationBuilder* DtRemoteComponentAttachmentManager::myRemoteConfigBuilder
protected

This helps parse configuration files and add components to remote entities. The remote builder is used when objects are discovered, and an attachment entry exists for the object in myAttachmentRules. Call "setBuilderCreatorFcn()" to cause the Remote Attachment Manager to use a different kind of builder. DtMtlRemoteComponentConfigurationBuilder is use by default.

DtRemoteComponentConfigurationBuilder::CreatorFcn DtRemoteComponentAttachmentManager::myRemoteConfigBuilderCreatorFcn
protected

This creator function is used by initialize() to create myRemoteConfigBuilder. By default, it is set to use DtMtlRemoteComponentConfigurationBuilder.

Referenced by builderCreatorFcn(), and setBuilderCreatorFcn().

DtRwUUID DtRemoteComponentAttachmentManager::myWorkerKey
protected

This is a worker key, to facilitate searching without requiring allocations.

DtTime DtRemoteComponentAttachmentManager::myTickRate
protected

Tick Rate, default 5.0 secs.

Referenced by setTickRate(), and tickRate().

DtLocalObjectManager* DtRemoteComponentAttachmentManager::myObjectManager
protected

This is a pointer to the singleton's parent object.

DtRemoteConfigurationMapper* DtRemoteComponentAttachmentManager::myAttachmentRules
protected

The attachment list is a container of attachment rules.

tbb::spin_mutex DtRemoteComponentAttachmentManager::myRecentArrivalsMutex
protected
boost::signals2::scoped_connection DtRemoteComponentAttachmentManager::mySimObjectAddedConnection
protected

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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)