![]() |
VR-Forces 5.0.1 Developer's Guide
|
This class holds the state data that represents each simulation object in the system.
Classes | |
| struct | ComponentRemoval |
| struct | StateComponent |
Public Types | |
| typedef std::set< const DtFrameStateInterface * > | CurrentFrameStates |
| typedef boost::function< bool(DtStateData *)> | PreAddCallback |
| typedef DtStateData *(* | StateDataCreatorFcn )(makVrf::SimStateID, Legion::SimulationDatabase *, DtStateDataManager *) |
| typedef DtStateData *(* | RemoteStateDataCreatorFcn )(makVrf::SimStateID, UInt64 legionId, Legion::SimulationDatabase *, DtStateDataManager *) |
| typedef boost::signals2::signal< void(DtStateComponent *)> | StateComponentAddedSignal |
| typedef boost::signals2::signal< void(DtStateComponent *)> | StateComponentRemovedSignal |
| typedef std::map< UInt64, DtStateData * > | StateDataByLegionId |
| typedef std::vector < DtStateData * > | StateData |
Public Member Functions | |
| DtStateDataManager (Legion::SimulationDatabase *=0, int threadPoolSize=-1) | |
| virtual | ~DtStateDataManager () |
| virtual DtStateData * | createStateData (bool isLocal, const DtObjectType &, const DtUUID &uuid=DtUUID(), int publishFlag=0, PreAddCallback callback=0, bool remoteObject=false) |
| virtual void | setParameterDatabase (DtVrfParameterDb *) |
| DtVrfParameterDb * | parameterDatabase () const |
| DtVrfCallbackQueue & | jobProcessor () |
| virtual DtStateData * | createStateData (Legion::UInt64 legionHandle, PreAddCallback callback=0) |
| virtual void | removeAndDeleteAll () |
| virtual void | removeStateData (DtStateData *) |
| virtual void | removeStateData (const DtUUID &) |
| virtual void | removeStateDataByStateId (makVrf::SimStateID) |
| virtual void | removeStateDataByLegionGlobalId (unsigned long long) |
| virtual void | beginFrame (double simTime) |
| virtual void | advanceFrame () |
| virtual DtStateData * | advanceFrameFor (unsigned long long legionId) |
| virtual void | registerLegionComponents (Legion::SimulationDatabase *) |
| Legion::EventManager * | eventManager () |
| Legion::SimulationDatabase * | database () |
| Legion::SimulationDatabase * | unpublishedDatabase () |
| virtual void | reserve (unsigned int) |
| template<typename T_Class > | |
| void | handleDataUpdated (const std::vector< typename Legion::SetView< T_Class >::InstanceUpdateData > &instanceList) |
| template<typename T_Class > | |
| unsigned int | addInstanceUpdatedCallback (Legion::SimulationDatabase *database, DtInstanceUpdatedCallback callback, Legion::InstanceHandle instanceHandle, const typename std::vector< Legion::AttributeIndex > &attributeIndexFilter=std::vector< Legion::AttributeIndex >()) |
| template<typename T_Class > | |
| void | removeInstanceUpdatedCallback (Legion::SimulationDatabase *database, Legion::InstanceHandle instanceHandle, unsigned int callbackHandle) |
| bool | isValid () const |
| const DtStateData * | stateData (makVrf::SimStateID id) const |
| DtStateData * | stateData (makVrf::SimStateID id) |
| double | absRealTime () const |
| virtual void | prepareForHandoff (unsigned long long, bool becomingLocal) |
| virtual void | handoffComplete (makVrf::SimStateID) |
| virtual bool | awaitingHandoff (makVrf::SimStateID) const |
| virtual DtStateData * | createStateData (makVrf::SimStateID, Legion::SimulationDatabase *) |
| virtual DtStateData * | createStateData (makVrf::SimStateID, UInt64 legionGlobalId) |
| virtual void | clear () |
| Legion::ControlManager * | controlManager () |
| virtual DtUUID | uuidFor (makVrf::SimStateID) const |
| virtual const DtStateData * | stateDataFor (const DtUUID &) const |
| virtual DtStateData * | stateDataFor (const DtUUID &) |
| virtual const DtStateData * | stateDataFor (const DtEntityIdentifier &) const |
| virtual DtStateData * | stateDataFor (const DtEntityIdentifier &) |
| virtual void | setUpdateOnlySpecifiedStateDataMode (bool) |
| bool | updateOnlySpecifiedStateDataMode () const |
| virtual const DtStateData * | stateDataFor (makVrf::SimStateID) const |
| virtual DtStateData * | stateDataFor (makVrf::SimStateID) |
| virtual const DtStateData * | stateDataForLegionId (UInt64) const |
| virtual DtStateData * | stateDataForLegionId (UInt64) |
| virtual void | setRunFullyThreaded (bool, int theadCount=4) |
| bool | runFullyThreaded () const |
| virtual void | addStateComponent (DtStateComponent *) |
| virtual void | removeStateComponent (DtStateComponent *, bool deleteOnRemoval=true) |
| virtual void | resizeContainer (unsigned) |
| template<typename T_Component > | |
| void | resizeContainer () |
| template<typename T_Component > | |
| StateComponentAddedSignal & | signalWhenStateComponentAdded () |
| StateComponentAddedSignal & | signalWhenStateComponentAdded (unsigned type) |
| template<typename T_Component > | |
| StateComponentAddedSignal & | signalWhenStateComponentRemoved () |
| StateComponentAddedSignal & | signalWhenStateComponentRemoved (unsigned type) |
| template<typename T_Component > | |
| const CurrentFrameStates & | stateComponents () const |
| virtual void | removeAll () |
| virtual std::set< const DtStateData * > | entitiesTracking (const DtUUID &) const |
| virtual std::set< const DtStateData * > | entitiesJamming (const DtUUID &) const |
| virtual DtTrackJamBeamInfoList | systemsTrackingObject (const DtUUID &) const |
| virtual DtTrackJamBeamInfoList | systemsJammingObject (const DtUUID &) const |
| virtual void | setUnpublishedDatabaseUsage (bool) |
| virtual void | setCoordinateSystem (const Coordinate_System *) |
| const Coordinate_System * | coordinateSystem () const |
| const StateDataByLegionId & | entityData () const |
| const StateDataByLegionId & | unitData () const |
| const StateDataByLegionId & | environmentalData () const |
| virtual void | setPublishingOnLegionNetwork (bool b) |
| bool | publishingOnLegionNetwork () const |
| template<typename T_Class > | |
| Legion::SetView< T_Class > * | view (Legion::SimulationDatabase *db) |
| bool | advancingFrame () const |
Static Public Member Functions | |
| static StateDataCreatorFcn | setStateDataCreatorFcn (StateDataCreatorFcn) |
| static StateDataCreatorFcn | stateDataCreatorFcn () |
| static RemoteStateDataCreatorFcn | setRemoteStateDataCreatorFcn (RemoteStateDataCreatorFcn) |
| static RemoteStateDataCreatorFcn | remoteStateDataCreatorFcn () |
| static DtStateData * | defaultStateDataCreator (makVrf::SimStateID, Legion::SimulationDatabase *, DtStateDataManager *) |
| static DtStateData * | defaultRemoteStateDataCreator (makVrf::SimStateID, UInt64 legionGlobalId, Legion::SimulationDatabase *, DtStateDataManager *) |
| static void | setStateDataManagerCreatorFcn (DtStateDataManagerCreatorFcn fcn) |
| static DtStateDataManager * | createStateDataManager (Legion::SimulationDatabase *=0, int threadPoolSize=-1) |
Public Attributes | |
| boost::signals2::signal< void(const DtStateData *)> | signal_stateDataAboutToBeRemoved |
| boost::signals2::signal< void(makVrf::SimStateID, UInt64)> | signal_stateDataRemoved |
| boost::signals2::signal< void(Legion::SimulationDatabase *)> | signal_addVrfSpecificDataElements |
| boost::signals2::signal< void(const DtStateData *)> | signal_initializeStateDataBeforeAdd |
| boost::signals2::signal< void(DtStateData *)> | signal_stateDataAdded |
| boost::signals2::signal< void()> | signal_beginFrame |
| boost::signals2::signal< void()> | signal_preAdvanceFrame |
| boost::signals2::signal< void()> | signal_advanceFrame |
| boost::signals2::signal< void(DtStateData *, bool)> | signal_prepareForHandoff |
| boost::signals2::signal< void(DtStateData *)> | signal_entityAdded |
| boost::signals2::signal< void(const DtStateData *)> | signal_entityRemoved |
| boost::signals2::signal< void(DtStateData *)> | signal_unitAdded |
| boost::signals2::signal< void(const DtStateData *)> | signal_unitRemoved |
| boost::signals2::signal< void(DtStateData *)> | signal_environmentalAdded |
| boost::signals2::signal< void(const DtStateData *)> | signal_environmentalRemoved |
| boost::signals2::signal< void(unsigned long long, const DtUUID &oldUUID, const DtUUID &newUUID)> | signal_uuidChanged |
| boost::signals2::signal< void(DtStateComponent *)> | signal_stateComponentAdded |
| boost::signals2::signal< void(DtStateComponent *)> | signal_stateComponentRemoved |
| boost::signals2::signal< void()> | signal_deleted |
Protected Types | |
| typedef std::vector < StateComponent > | CurrentFrameStatesList |
| typedef boost::unordered_map < DtUUID, DtStateData * > | StateDataByUUID |
| typedef std::map < DtEntityIdentifier, DtStateData * > | StateDataByEntityIdentifier |
| typedef std::map< DtString, Legion::View * > | Views |
| typedef std::map < Legion::SimulationDatabase *, Views > | DatabaseViews |
| typedef std::vector< std::pair < DtInstanceUpdatedCallback, unsigned int > > | Callbacks |
| typedef std::map < Legion::InstanceHandle, Callbacks > | InstanceUpdatedCallbacks |
| typedef std::map < Legion::AttributeSetId, InstanceUpdatedCallbacks > | InstancesUpdatedCallbacks |
| typedef std::pair< std::set < DtUUID >, std::set< DtUUID > > | SubordinateChangeSet |
Protected Member Functions | |
| virtual std::set< const DtStateData * > | entitiesTracking (int beamType, const DtUUID &) const |
| virtual DtTrackJamBeamInfoList | systemsTrackingObject (int beamType, const DtUUID &) const |
| virtual void | uuidChanged (makVrf::SimStateID, const DtUUID &oldUUID, const DtUUID &newUUID) |
| virtual void | hostChanged (const DtStateData *, const DtUUID &oldUUID, const DtUUID &newUUID) |
| virtual void | subordinatesChanged (const DtStateData *, const std::vector< DtUUID > &oldSubordinates, const std::vector< DtUUID > &newSubordinates) |
| virtual void | completeAttachments (DtStateData *) |
| virtual void | completeAttachments (const DtUUID &) |
| virtual void | completeAttachments () |
| virtual void | slot_stateComponentAboutToBeDeleted (DtStateComponent *) |
| virtual void | resolveHostChanged (const DtSimulatedObjectStateComponent *, const DtUUID &oldUUID, const DtUUID &newUUID, std::set< DtEntityStateComponent * > &) |
| virtual void | _internalRemoveStateData (DtStateData *sd) |
| virtual void | addVrfSpecificDataElements (Legion::SimulationDatabase *) |
| virtual void | resolveHostChanges () |
| virtual void | removeAllStateComponents () |
| virtual void | resolveSubordinateChanges () |
| virtual void | removeStateDataToBeDeleted () |
| void | initializeDefaultPublicData () |
| virtual void | componentDeleted (DtStateComponent *c) |
Static Protected Attributes | |
| static DtStateDataManagerCreatorFcn | theStateDataManagerCreatorFcn |
| typedef std::set<const DtFrameStateInterface*> makVrf::DtStateDataManager::CurrentFrameStates |
| typedef boost::function<bool (DtStateData*)> makVrf::DtStateDataManager::PreAddCallback |
| typedef DtStateData*(* makVrf::DtStateDataManager::StateDataCreatorFcn)(makVrf::SimStateID, Legion::SimulationDatabase *, DtStateDataManager *) |
All state data created must have a UUID, so, if one is not provided, it will be supplied.
| typedef DtStateData*(* makVrf::DtStateDataManager::RemoteStateDataCreatorFcn)(makVrf::SimStateID, UInt64 legionId, Legion::SimulationDatabase *, DtStateDataManager *) |
If remote state data do not have UUIDs, one will be assigned based on marking text.
| typedef boost::signals2::signal<void (DtStateComponent*)> makVrf::DtStateDataManager::StateComponentAddedSignal |
| typedef boost::signals2::signal<void (DtStateComponent*)> makVrf::DtStateDataManager::StateComponentRemovedSignal |
| typedef std::map<UInt64, DtStateData*> makVrf::DtStateDataManager::StateDataByLegionId |
| typedef std::vector<DtStateData*> makVrf::DtStateDataManager::StateData |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
First is added, second removed.
| makVrf::DtStateDataManager::DtStateDataManager | ( | Legion::SimulationDatabase * | = 0, |
| int | threadPoolSize = -1 |
||
| ) |
If a simulation database is supplied that one will be used, else will create one.
|
virtual |
|
virtual |
If the preAddCallback returns false will not add the state data. When creating local state data, if a parameter database is specified it will look up the entry of the type being created in the parameter database and create any additional public data state components that is part of that parameter entry.
|
virtual |
|
inline |
|
inline |
|
virtual |
Creates a state data from a remote legion buffer.
|
virtual |
Removes and deletes all state data (local and remote) from this manager.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
For an advance frame for the given legion id, if the state data for it exists, and, return it.
|
virtual |
| Legion::EventManager* makVrf::DtStateDataManager::eventManager | ( | ) |
|
inline |
|
inline |
|
virtual |
Calls down to the state data manager to reserve a number of entities. This reservation will be cumulative, so, if a previous reserve reserved 1000 entitie, and this reserves 1000, the total will be 2000. This is not thread safe.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References makVrf::InvalidSimStateID.
|
inline |
|
virtual |
Authority of this object is about to be handed off. The flag is whether it will be becoming local or remote.
|
virtual |
Handoff code.
|
virtual |
|
static |
Returns current state data creator.
|
static |
|
static |
|
static |
|
static |
|
static |
|
virtual |
|
virtual |
|
virtual |
Clears all lists and deletes all state data objects. use wisely.
| Legion::ControlManager* makVrf::DtStateDataManager::controlManager | ( | ) |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Puts the DtStateDataManager into a mode where only specified state data are updated in the advance frame. Default is false.
|
inline |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Whether or not to run fully threaded (default is true)
|
inline |
|
virtual |
|
virtual |
|
virtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Iterates over all the data and removes it all from the system, calling remove and signalling on each one, which could be a long process, depending on the amount of objects in the system.
|
virtual |
Given the global object designator, find all the entities that are tracking the given object by their emitter systems.
|
virtual |
Given the global object designator, find all the entities that are tracking the given object by their emitter systems.
|
virtual |
Given the global id, return a list of the systems and beams tracking this object.
|
virtual |
Given the global id, return a list of the systems and DtUUID tracking this object.
|
static |
Factory method for creating this class. If no factory method defined the default DtNetworkInterfaceManager is created.
|
static |
Factory method for creating this class. If no factory method defined the default DtNetworkInterfaceManager is created.
|
virtual |
Call this to create a database that will store "unpublished" objects. This is only useful when using a legion based connection.
|
virtual |
If defined, the coordinate system to convert geocentric coordinates to local database coordinates.
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
|
inline |
|
inline |
Returns the entity view for the given database.
|
inline |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Remove state data from internal lists but don't delete until last reference is removed. Do not call directly.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
|
protected |
Non-virtual because called from constructor.
|
protectedvirtual |
|
mutable |
Signals sent for state data actions.
|
mutable |
| boost::signals2::signal<void (Legion::SimulationDatabase*)> makVrf::DtStateDataManager::signal_addVrfSpecificDataElements |
Signal sent when it is ok to add columns to the entity set.
| boost::signals2::signal<void (const DtStateData*)> makVrf::DtStateDataManager::signal_initializeStateDataBeforeAdd |
This signal is called before the data is fully added. Gives connectors a chace to add data into the next frame state before addition.
|
mutable |
| boost::signals2::signal<void ()> makVrf::DtStateDataManager::signal_beginFrame |
| boost::signals2::signal<void ()> makVrf::DtStateDataManager::signal_preAdvanceFrame |
| boost::signals2::signal<void ()> makVrf::DtStateDataManager::signal_advanceFrame |
| boost::signals2::signal<void (DtStateData*, bool)> makVrf::DtStateDataManager::signal_prepareForHandoff |
| boost::signals2::signal<void (DtStateData*)> makVrf::DtStateDataManager::signal_entityAdded |
Convenience signals for when a data is added – something is considered a unit if it has a aggregateStateComponent, an environmental if it has a environmentalStateComponent, else it is considered an entity.
| boost::signals2::signal<void (const DtStateData*)> makVrf::DtStateDataManager::signal_entityRemoved |
| boost::signals2::signal<void (DtStateData*)> makVrf::DtStateDataManager::signal_unitAdded |
| boost::signals2::signal<void (const DtStateData*)> makVrf::DtStateDataManager::signal_unitRemoved |
| boost::signals2::signal<void (DtStateData*)> makVrf::DtStateDataManager::signal_environmentalAdded |
| boost::signals2::signal<void (const DtStateData*)> makVrf::DtStateDataManager::signal_environmentalRemoved |
| boost::signals2::signal<void (unsigned long long, const DtUUID& oldUUID, const DtUUID& newUUID)> makVrf::DtStateDataManager::signal_uuidChanged |
| boost::signals2::signal<void (DtStateComponent*)> makVrf::DtStateDataManager::signal_stateComponentAdded |
| boost::signals2::signal<void (DtStateComponent*)> makVrf::DtStateDataManager::signal_stateComponentRemoved |
| boost::signals2::signal<void ()> makVrf::DtStateDataManager::signal_deleted |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |