VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions
makVrf::DtSimObjectManagerTemplate< T_BaseClass > Class Template Referenceabstract

template<typename T_BaseClass>
class makVrf::DtSimObjectManagerTemplate< T_BaseClass >

This class is the central access point for all current-frame state of all objects in the simulation in a read-only form. This includes all simulation objects for the sim engine, including locally simulated objects, and remote objects received from the network, both VRF simulated and non-VRF simulated. This gives access to the external state of all of these objects and their current-frame state in a manner that is thread-safe during the simulation frame.

Related Examples
Inheritance diagram for makVrf::DtSimObjectManagerTemplate< T_BaseClass >:
Inheritance graph
[legend]

Classes

struct  Connections
 
struct  DeletedObjects
 
struct  StateDataManagerInformation
 

Public Types

using SimObjects = std::map< unsigned long long, DtSimObjectReferenceTemplate< T_BaseClass >>
 
typedef std::set< const
DtFrameStateInterface * > 
CurrentFrameStates
 
typedef
boost::signals2::signal< void(DtStateComponent *)> 
StateComponentAddedSignal
 
typedef
boost::signals2::signal< void(DtStateComponent *)> 
StateComponentRemovedSignal
 

Public Member Functions

 DtSimObjectManagerTemplate (DtStateDataManager *m)
 
virtual ~DtSimObjectManagerTemplate ()
 
virtual void tick ()
 
virtual void init ()
 
virtual void advanceFrame ()
 
virtual
DtSimObjectReferenceTemplate
< T_BaseClass > 
lookup (const DtUUID &) const
 
virtual
DtSimObjectReferenceTemplate
< T_BaseClass > 
lookup (const DtEntityIdentifier &) const
 
virtual
DtSimObjectReferenceTemplate
< T_BaseClass > 
lookup (unsigned long long) const
 
virtual DtStateDatastateDataFor (const DtUUID &) const
 
virtual DtStateDatastateDataFor (unsigned long long) const
 
virtual DtStateDatastateDataFor (const DtEntityIdentifier &) const
 
virtual DtStateDatastateDataForUniqueId (unsigned long long) const
 
SimObjects simObjects ()
 
const SimObjectssimObjects () const
 
void attachStateDataManager (DtStateDataManager *)
 
void detachStateDataManager (DtStateDataManager *)
 
virtual DtStateDataWrappercreateSimObject (DtStateData *sd) const =0
 
virtual DtStateDataWrappercreateSimObject (const DtUUID &uuid) const =0
 
virtual DtStateDataWrappercreateSimObject (const DtEntityIdentifier &entid) const =0
 
virtual void clear ()
 
virtual bool has (const DtUUID &) const
 
virtual bool has (unsigned long long) const
 
template<typename T_Component >
CurrentFrameStates stateComponents () const
 
virtual void referenceAdded (DtSimObjectReferenceTemplate< T_BaseClass > ref)
 
template<typename T_Component >
StateComponentAddedSignalsignalWhenStateComponentAdded ()
 
template<typename T_Component >
StateComponentAddedSignalsignalWhenStateComponentRemoved ()
 
virtual std::vector
< DtSimObjectReferenceTemplate
< T_BaseClass > > 
objectsOfType (const DtEntityType &) const
 

Public Attributes

boost::signals2::signal< void()> signal_advancedFrame
 
boost::signals2::signal< void(DtSimObjectReferenceTemplate
< T_BaseClass >)> 
signal_simObjectAdded
 
boost::signals2::signal< void(DtSimObjectReferenceTemplate
< T_BaseClass >)> 
signal_simObjectDeleted
 
boost::signals2::signal< void(const
DtUUID &oldUUID, const DtUUID
&newUUID)> 
signal_uuidChanged
 
boost::signals2::signal< void(const
DtUUID &oldUUID, const DtUUID
&newUUID)> 
signal_uuidUpgradedTo
 
boost::signals2::signal< void(DtSimObjectReferenceTemplate
< T_BaseClass >, const
DtString &oldText, const
DtString &newText)> 
signal_simObjectRenamed
 

Protected Types

typedef std::map< DtString,
DtSimObjectReferenceTemplate
< T_BaseClass > > 
AwaitingMap
 
typedef std::map< unsigned
long long, Connections
SimObjectConnections
 

Protected Member Functions

virtual void simObjectDeleted (const DtStateDataWrapper *)
 
virtual void stateDataDeleted (const DtStateData *)
 
virtual
DtSimObjectReferenceTemplate
< T_BaseClass > 
getOrCreateSimObjectReference (DtStateData *, bool createOnlyIfNotPresent=false) const
 
virtual void uuidChanged (unsigned long long, const DtUUID &oldUUID, const DtUUID &newUUID)
 
virtual void objectRenamed (const DtStateDataWrapper *, const DtString &oldName, const DtString &newName)
 
virtual void simObjectAdded (DtStateData *)
 
virtual void discoveredObjectReference (const DtString &awaiting)
 
bool isDeleted (const DtUUID &) const
 
virtual void slot_uuidUpgradedTo (const DtUUID &oldUUID, const DtUUID &newUUID)
 

Protected Attributes

DtStateDataManagermyStateDataManager
 
tbb::spin_rw_mutex myMutex
 
boost::signals2::scoped_connection myUUIDUpgradedConnection
 
std::vector< DtStateDataManager * > myStateDataManagerOrder
 
std::map< DtStateDataManager
*, StateDataManagerInformation
myStateDataManagers
 
SimObjects mySimObjects
 
AwaitingMap myAwaitingMap
 
SimObjects myAdded
 
DeletedObjects myDeleted
 
SimObjectConnections mySimObjectConnections
 

Private Member Functions

 DtSimObjectManagerTemplate ()
 
 DtSimObjectManagerTemplate (const DtSimObjectManagerTemplate &)
 
DtSimObjectManagerTemplateoperator= (const DtSimObjectManagerTemplate &)
 

Member Typedef Documentation

template<typename T_BaseClass>
using makVrf::DtSimObjectManagerTemplate< T_BaseClass >::SimObjects = std::map<unsigned long long, DtSimObjectReferenceTemplate<T_BaseClass>>
template<typename T_BaseClass>
typedef std::set<const DtFrameStateInterface*> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::CurrentFrameStates
template<typename T_BaseClass>
typedef boost::signals2::signal<void (DtStateComponent*)> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::StateComponentAddedSignal
template<typename T_BaseClass>
typedef boost::signals2::signal<void (DtStateComponent*)> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::StateComponentRemovedSignal
template<typename T_BaseClass>
typedef std::map<DtString, DtSimObjectReferenceTemplate<T_BaseClass> > makVrf::DtSimObjectManagerTemplate< T_BaseClass >::AwaitingMap
protected
template<typename T_BaseClass>
typedef std::map<unsigned long long, Connections> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::SimObjectConnections
protected

Constructor & Destructor Documentation

template<typename T_BaseClass>
makVrf::DtSimObjectManagerTemplate< T_BaseClass >::DtSimObjectManagerTemplate ( )
private
template<typename T_BaseClass>
makVrf::DtSimObjectManagerTemplate< T_BaseClass >::DtSimObjectManagerTemplate ( const DtSimObjectManagerTemplate< T_BaseClass > &  )
private
template<typename T_BaseClass>
makVrf::DtSimObjectManagerTemplate< T_BaseClass >::DtSimObjectManagerTemplate ( DtStateDataManager m)

CTOR – Takes the state data manager so this can be made aware of the comings and goings of state data.

template<typename T_BaseClass>
virtual makVrf::DtSimObjectManagerTemplate< T_BaseClass >::~DtSimObjectManagerTemplate ( )
virtual

DTOR.

Member Function Documentation

template<typename T_BaseClass>
DtSimObjectManagerTemplate& makVrf::DtSimObjectManagerTemplate< T_BaseClass >::operator= ( const DtSimObjectManagerTemplate< T_BaseClass > &  )
private
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::tick ( )
virtual

Ticks this manager and performs any operations it needs to.

template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::init ( )
virtual

Any initialization that wants to be done.

template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::advanceFrame ( )
virtual

Send out an added signal for all objects added and advanced since the last frame began.

template<typename T_BaseClass>
virtual DtSimObjectReferenceTemplate<T_BaseClass> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::lookup ( const DtUUID ) const
virtual

Find a DtSimObject by DtUUID.

template<typename T_BaseClass>
virtual DtSimObjectReferenceTemplate<T_BaseClass> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::lookup ( const DtEntityIdentifier &  ) const
virtual

Find a DtSimObject by DtEntityIdentifier.

template<typename T_BaseClass>
virtual DtSimObjectReferenceTemplate<T_BaseClass> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::lookup ( unsigned long  long) const
virtual

Returns the simObjectReference (if it exists) by the legionGlobalId.

template<typename T_BaseClass>
virtual DtStateData* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::stateDataFor ( const DtUUID ) const
virtual
template<typename T_BaseClass>
virtual DtStateData* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::stateDataFor ( unsigned long  long) const
virtual
template<typename T_BaseClass>
virtual DtStateData* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::stateDataFor ( const DtEntityIdentifier &  ) const
virtual
template<typename T_BaseClass>
virtual DtStateData* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::stateDataForUniqueId ( unsigned long  long) const
virtual
template<typename T_BaseClass>
SimObjects makVrf::DtSimObjectManagerTemplate< T_BaseClass >::simObjects ( )
inline
Returns
A full list of all DtSimObject instances.
Note
Use this wisely as this creates a copy of the internal map for thread safety reasons, so, if the map is large, might be a bit of time to return the map
template<typename T_BaseClass>
const SimObjects& makVrf::DtSimObjectManagerTemplate< T_BaseClass >::simObjects ( ) const
inline
template<typename T_BaseClass>
void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::attachStateDataManager ( DtStateDataManager )

Attach an additional state data manager that might keep track of a separate set of objects, however, still want to manager the read only objects here.

template<typename T_BaseClass>
void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::detachStateDataManager ( DtStateDataManager )
template<typename T_BaseClass>
virtual DtStateDataWrapper* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::createSimObject ( DtStateData sd) const
pure virtual
template<typename T_BaseClass>
virtual DtStateDataWrapper* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::createSimObject ( const DtUUID uuid) const
pure virtual
template<typename T_BaseClass>
virtual DtStateDataWrapper* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::createSimObject ( const DtEntityIdentifier &  entid) const
pure virtual
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::clear ( )
virtual

Clears sim objects and awaiting map.

template<typename T_BaseClass>
virtual bool makVrf::DtSimObjectManagerTemplate< T_BaseClass >::has ( const DtUUID ) const
virtual

Returns true if this manager has the UUID in the mySimObjects list.

template<typename T_BaseClass>
virtual bool makVrf::DtSimObjectManagerTemplate< T_BaseClass >::has ( unsigned long  long) const
virtual
template<typename T_BaseClass>
template<typename T_Component >
CurrentFrameStates makVrf::DtSimObjectManagerTemplate< T_BaseClass >::stateComponents ( ) const
inline
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::referenceAdded ( DtSimObjectReferenceTemplate< T_BaseClass >  ref)
virtual

Reimplemented in DtSimObjectManager.

template<typename T_BaseClass>
template<typename T_Component >
StateComponentAddedSignal& makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signalWhenStateComponentAdded ( )
inline
template<typename T_BaseClass>
template<typename T_Component >
StateComponentAddedSignal& makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signalWhenStateComponentRemoved ( )
inline
template<typename T_BaseClass>
virtual std::vector<DtSimObjectReferenceTemplate<T_BaseClass> > makVrf::DtSimObjectManagerTemplate< T_BaseClass >::objectsOfType ( const DtEntityType &  ) const
virtual
Returns
All the objects that match the pattern of the given type.
Note
This will lock the list for read, so, use sparingly
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::simObjectDeleted ( const DtStateDataWrapper )
protectedvirtual
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::stateDataDeleted ( const DtStateData )
protectedvirtual
template<typename T_BaseClass>
virtual DtSimObjectReferenceTemplate<T_BaseClass> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::getOrCreateSimObjectReference ( DtStateData ,
bool  createOnlyIfNotPresent = false 
) const
protectedvirtual

If createOnlyIfNotPresent is true, will create and return, but not add to the mySimObjects list.

template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::uuidChanged ( unsigned long  long,
const DtUUID oldUUID,
const DtUUID newUUID 
)
protectedvirtual
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::objectRenamed ( const DtStateDataWrapper ,
const DtString oldName,
const DtString newName 
)
protectedvirtual
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::simObjectAdded ( DtStateData )
protectedvirtual
template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::discoveredObjectReference ( const DtString awaiting)
protectedvirtual
template<typename T_BaseClass>
bool makVrf::DtSimObjectManagerTemplate< T_BaseClass >::isDeleted ( const DtUUID ) const
protected

If this is in the list but is marked as deleted, returns true.

template<typename T_BaseClass>
virtual void makVrf::DtSimObjectManagerTemplate< T_BaseClass >::slot_uuidUpgradedTo ( const DtUUID oldUUID,
const DtUUID newUUID 
)
protectedvirtual

Called, when as part of an import process, a UUID is upgraded from an old to a new version. Some items might need to know this to remap items that hap not yet been discovered.

Member Data Documentation

template<typename T_BaseClass>
boost::signals2::signal<void ()> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signal_advancedFrame
mutable

Signal sent when frame is advanced.

template<typename T_BaseClass>
boost::signals2::signal<void (DtSimObjectReferenceTemplate<T_BaseClass>)> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signal_simObjectAdded
mutable

Signal sent when a new DtSimObjectReferenceTemplate<T_BaseClass> has been added.

template<typename T_BaseClass>
boost::signals2::signal<void (DtSimObjectReferenceTemplate<T_BaseClass>)> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signal_simObjectDeleted
mutable

Signal sent when a new DtSimObjectReferenceTemplate<T_BaseClass> has been deleted.

template<typename T_BaseClass>
boost::signals2::signal<void (const DtUUID& oldUUID, const DtUUID& newUUID)> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signal_uuidChanged
mutable

Signal when UUID is changed. Called before the map is updated with the new uuid.

template<typename T_BaseClass>
boost::signals2::signal<void (const DtUUID& oldUUID, const DtUUID& newUUID)> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signal_uuidUpgradedTo
mutable

Signal when a UUID is remapped. Called after awaiting list has been changed.

template<typename T_BaseClass>
boost::signals2::signal<void (DtSimObjectReferenceTemplate<T_BaseClass>, const DtString& oldText, const DtString& newText)> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::signal_simObjectRenamed
mutable

Signal sent when an objects name has changed.

template<typename T_BaseClass>
DtStateDataManager* makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myStateDataManager
protected
template<typename T_BaseClass>
tbb::spin_rw_mutex makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myMutex
mutableprotected
template<typename T_BaseClass>
boost::signals2::scoped_connection makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myUUIDUpgradedConnection
protected
template<typename T_BaseClass>
std::vector<DtStateDataManager*> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myStateDataManagerOrder
protected
template<typename T_BaseClass>
std::map<DtStateDataManager*, StateDataManagerInformation> makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myStateDataManagers
protected
template<typename T_BaseClass>
SimObjects makVrf::DtSimObjectManagerTemplate< T_BaseClass >::mySimObjects
mutableprotected
template<typename T_BaseClass>
AwaitingMap makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myAwaitingMap
mutableprotected
template<typename T_BaseClass>
SimObjects makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myAdded
protected
template<typename T_BaseClass>
DeletedObjects makVrf::DtSimObjectManagerTemplate< T_BaseClass >::myDeleted
protected
template<typename T_BaseClass>
SimObjectConnections makVrf::DtSimObjectManagerTemplate< T_BaseClass >::mySimObjectConnections
mutableprotected

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)