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 | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes
makVrf::DtStateDataManager Class Reference

This class holds the state data that represents each simulation object in the system.

Note
Typically, this data is accessed via the DtSimObject instances in the DtSimObjectManager instead.
Related Examples

Classes

struct  ComponentRemoval
 
struct  StateComponent
 

Public Types

enum  FrameStatus { FrameStatus::Normal = 0, FrameStatus::SkippedBeginFrame, FrameStatus::SkipAdvanceFrame }
 
typedef std::set< const
DtFrameStateInterface * > 
CurrentFrameStates
 
using PreAddCallback = boost::function< bool(DtStateData *)>
 
typedef
boost::signals2::signal< void(DtStateComponent *)> 
StateComponentSignal
 
typedef std::vector
< DtStateData * > 
StateData
 
using StateDataCreatorFcn = DtStateData *(*)(makVrf::SimStateID, Legion::SimulationDatabase *, DtStateDataManager *)
 
using RemoteStateDataCreatorFcn = DtStateData *(*)(makVrf::SimStateID, UInt64 legionId, Legion::SimulationDatabase *, DtStateDataManager *)
 
typedef std::unordered_map
< UInt64, DtStateData * > 
StateDataByUniqueId
 

Public Member Functions

 DtStateDataManager (Legion::SimulationDatabase *=nullptr, int threadPoolSize=-1, unsigned int clientId=0)
 
virtual ~DtStateDataManager ()
 
virtual DtStateDatacreateStateData (bool isLocal, const DtEntityType &, const DtUUID &uuid=DtUUID(), int publishFlag=0, PreAddCallback callback=0, const DtEntityIdentifier &entId=DtEntityIdentifier::nullId(), bool addToSimObjectManager=true, const DtString &globalId=DtString::nullString())
 
virtual void setParameterDatabase (DtVrfParameterDb *)
 
DtVrfParameterDbparameterDatabase () const
 
DtVrfCallbackQueuejobProcessor ()
 
virtual DtStateDatacreateStateData (Legion::UInt64 legionHandle, PreAddCallback callback=0)
 
virtual void removeAndDeleteAll (const std::set< DtUUID > &except=std::set< DtUUID >())
 
virtual void removeStateData (DtStateData *)
 
virtual void removeStateData (const DtUUID &)
 
virtual void removeStateDataByStateId (makVrf::SimStateID)
 
virtual void removeStateDataByUniqueId (unsigned long long)
 
virtual void mapStateDataByUniqueId (unsigned long long, DtStateData *)
 
virtual void unmapStateDataByUniqueId (unsigned long long)
 
virtual void beginFrame (double simTime)
 
virtual void advanceFrame ()
 
virtual DtStateDataadvanceFrameFor (unsigned long long uniqueId)
 
virtual void registerLegionComponents (Legion::SimulationDatabase *)
 
Legion::EventManager * eventManager ()
 
Legion::SimulationDatabase * database ()
 
Legion::SimulationDatabase * unpublishedDatabase ()
 
virtual void aerodromeDiscovered (DtStateData *)
 
virtual void entityDiscovered (DtStateData *)
 
virtual void environmentalDiscovered (DtStateData *)
 
virtual void unitDiscovered (DtStateData *)
 
virtual void setBlockOnAdvanceFrameJobs (bool)
 
bool blockOnAdvanceFrameJobs () const
 
virtual bool hasOutstandingAdvanceFrameJobs () const
 
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 StateDatastateData () const
 
const DtStateDatastateData (makVrf::SimStateID id) const
 
DtStateDatastateData (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 DtStateDatacreateStateData (makVrf::SimStateID, Legion::SimulationDatabase *)
 
virtual DtStateDatacreateStateData (makVrf::SimStateID, UInt64 legionGlobalId)
 
virtual void clear (bool forReuse=false)
 
Legion::ControlManager * controlManager ()
 
virtual DtUUID uuidFor (makVrf::SimStateID) const
 
virtual const DtStateDatastateDataFor (const DtUUID &) const
 
virtual DtStateDatastateDataFor (const DtUUID &)
 
virtual const DtStateDatastateDataFor (const DtEntityIdentifier &) const
 
virtual DtStateDatastateDataFor (const DtEntityIdentifier &)
 
virtual void setUpdateOnlySpecifiedStateDataMode (bool)
 
bool updateOnlySpecifiedStateDataMode () const
 
FrameStatus frameStatus () const
 
virtual const DtStateDatastateDataFor (makVrf::SimStateID) const
 
virtual DtStateDatastateDataFor (makVrf::SimStateID)
 
virtual const DtStateDatastateDataForUniqueId (UInt64) const
 
virtual DtStateDatastateDataForUniqueId (UInt64)
 
virtual UInt64 uniqueIdFrom (const DtUUID &) const
 
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 >
StateComponentSignalsignalWhenStateComponentAdded ()
 
StateComponentSignalsignalWhenStateComponentAdded (unsigned type)
 
template<typename T_Component >
StateComponentSignalsignalWhenStateComponentRemoved ()
 
StateComponentSignalsignalWhenStateComponentRemoved (unsigned type)
 
template<typename T_Component >
const CurrentFrameStatesstateComponents () 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_SystemcoordinateSystem () const
 
const StateDataByUniqueIdentityData () const
 
const StateDataByUniqueIdunitData () const
 
const StateDataByUniqueIdaerodromeData () const
 
const StateDataByUniqueIdenvironmentalData () 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 DtStateDatadefaultStateDataCreator (makVrf::SimStateID, Legion::SimulationDatabase *, DtStateDataManager *)
 
static DtStateDatadefaultRemoteStateDataCreator (makVrf::SimStateID, UInt64 legionGlobalId, Legion::SimulationDatabase *, DtStateDataManager *)
 
static void SeedUnpublishedEntityId (short appId, short siteId)
 
static DtEntityIdentifier NextUnpublishedEntityId ()
 
static void setStateDataManagerCreatorFcn (DtStateDataManagerCreatorFcn fcn)
 
static DtStateDataManagercreateStateDataManager (Legion::SimulationDatabase *=nullptr, int threadPoolSize=-1, unsigned int clientId=0)
 

Public Attributes

boost::signals2::signal< void(const
Coordinate_System *)> 
signal_coordinateSystemChanged
 
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(DtStateData *)> signal_aerodromeAdded
 
boost::signals2::signal< void(const
DtStateData *)> 
signal_aerodromeRemoved
 
boost::signals2::signal< void(unsigned
long long, const DtUUID
&oldUUID, const DtUUID
&newUUID)> 
signal_uuidChanged
 
StateComponentSignal signal_stateComponentAdded
 
StateComponentSignal signal_stateComponentRemoved
 
boost::signals2::signal< void()> signal_deleted
 
boost::signals2::signal< void(DtStateData *)> signal_convertedToLocal
 

Protected Types

typedef std::vector
< StateComponent
CurrentFrameStatesList
 
typedef std::unordered_map
< DtUUID, std::set
< DtStateData * > > 
StateDataByUUID
 
typedef std::unordered_map
< std::string, std::set
< 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
 
using Condition = std::condition_variable
 
using ConditionMutex = std::mutex
 
using ConditionLock = std::unique_lock< ConditionMutex >
 

Protected Member Functions

virtual void jobsThread ()
 
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 convertedToLocal (DtStateData *)
 
virtual void resolveHostChanged (const DtUUID &, const DtUUID &oldUUID, const DtUUID &newUUID, std::set< DtEntityStateComponent * > &)
 
virtual bool _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)
 

Protected Attributes

StateData myStateData
 
tbb::spin_rw_mutex myMutex
 
Legion::SimulationDatabase * myDatabase
 
Legion::SimulationDatabase * myUnpublishedDatabase
 
std::set< unsigned long longmyAwaitingHandoff
 
std::atomic< makVrf::SimStateIDmyNextSimStateID
 
tbb::concurrent_queue
< makVrf::SimStateID
myFreeStateIDs
 
bool myRunFullyThreaded
 
DtClock myClock
 
DtVrfCallbackQueue myJobProcessor
 
tbb::spin_rw_mutex myComponentMutex
 
CurrentFrameStatesList myCurrentFrameStates
 
StateDataByUUID myStateDataByUUID
 
StateDataByEntityIdentifier myStateDataByEntityIdentifier
 
StateDataByUniqueId myStateDataByUniqueId
 
const Coordinate_SystemmyCoordinateSystem
 
bool myOwnsCoordinateSystem
 
StateDataByUniqueId myEntityData
 
StateDataByUniqueId myUnitData
 
StateDataByUniqueId myAerodromeData
 
StateDataByUniqueId myEnvironmentalData
 
bool myOwnsDatabase
 
unsigned int myReserved
 
tbb::spin_mutex myUpdateCallbackMutex
 
tbb::spin_rw_mutex myViewCreateMutex
 
DatabaseViews myDatabaseViews
 
InstancesUpdatedCallbacks myInstancesUpdatedCallbacks
 
std::atomic< unsigned intmyCallbackHandle
 
tbb::spin_mutex myHostsChangedThisFrameMutex
 
std::map< DtUUID, std::map
< DtUUID, DtUUID > > 
myHostsChangedThisFrame
 
std::map< DtUUID, std::set
< DtUUID > > 
myWaitingForAttachment
 
tbb::spin_mutex mySubordinatesChangedThisFrameMutex
 
std::map< DtUUID,
SubordinateChangeSet
mySubordinatesChangedThisFrame
 
std::map< DtUUID, std::set
< DtUUID > > 
myPendingSuperiorSet
 
DtVrfParameterDbmyParameterDatabase
 
std::vector< DtStateData * > myStateDataToBeDeleted
 
bool myPublishingOnLegionNetwork
 
std::map< DtStateComponent
*, ComponentRemoval
myComponentsToRemove
 
std::set< DtStateComponent * > myComponentsDeleted
 
bool myUpdateOnlySpecifiedStateDataMode
 
tbb::spin_mutex myAdvancedThisFrameMutex
 
std::set< unsigned long longmyAdvancedThisFrame
 
bool myAdvancingFrame = false
 
bool myBlockOnAdvanceFrameJobs = true
 
std::unique_ptr< std::thread > myJobsThread
 
Condition myStartJobsCondition
 
ConditionMutex myStartJobsConditionMutex
 
std::atomic< boolmyShutdownJobsThreadFlag
 
FrameStatus myFrameStatus = FrameStatus::Normal
 

Static Protected Attributes

static DtStateDataManagerCreatorFcn theStateDataManagerCreatorFcn
 

Member Typedef Documentation

typedef boost::signals2::signal<void (DtStateComponent*)> makVrf::DtStateDataManager::StateComponentSignal

All state data created must have a UUID, so, if one is not provided, it will be supplied.

If remote state data do not have UUIDs, one will be assigned based on marking text.

typedef std::unordered_map<DtUUID, std::set<DtStateData*> > makVrf::DtStateDataManager::StateDataByUUID
protected
typedef std::unordered_map<std::string, std::set<DtStateData*> > makVrf::DtStateDataManager::StateDataByEntityIdentifier
protected
typedef std::map<DtString, Legion::View*> makVrf::DtStateDataManager::Views
protected
typedef std::map<Legion::SimulationDatabase*, Views> makVrf::DtStateDataManager::DatabaseViews
protected
typedef std::vector<std::pair<DtInstanceUpdatedCallback, unsigned int> > makVrf::DtStateDataManager::Callbacks
protected
typedef std::map<Legion::InstanceHandle, Callbacks> makVrf::DtStateDataManager::InstanceUpdatedCallbacks
protected
typedef std::map<Legion::AttributeSetId, InstanceUpdatedCallbacks> makVrf::DtStateDataManager::InstancesUpdatedCallbacks
protected
typedef std::pair<std::set<DtUUID>, std::set<DtUUID> > makVrf::DtStateDataManager::SubordinateChangeSet
protected

First is added, second removed.

using makVrf::DtStateDataManager::Condition = std::condition_variable
protected
using makVrf::DtStateDataManager::ConditionMutex = std::mutex
protected
using makVrf::DtStateDataManager::ConditionLock = std::unique_lock<ConditionMutex>
protected

Member Enumeration Documentation

Enumerator
Normal 
SkippedBeginFrame 
SkipAdvanceFrame 

Constructor & Destructor Documentation

makVrf::DtStateDataManager::DtStateDataManager ( Legion::SimulationDatabase *  = nullptr,
int  threadPoolSize = -1,
unsigned int  clientId = 0 
)

If a simulation database is supplied that one will be used, else will create one.

virtual makVrf::DtStateDataManager::~DtStateDataManager ( )
virtual

Member Function Documentation

virtual DtStateData* makVrf::DtStateDataManager::createStateData ( bool  isLocal,
const DtEntityType &  ,
const DtUUID uuid = DtUUID(),
int  publishFlag = 0,
PreAddCallback  callback = 0,
const DtEntityIdentifier &  entId = DtEntityIdentifier::nullId(),
bool  addToSimObjectManager = true,
const DtString globalId = DtString::nullString() 
)
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.

If addToSimObjectManager is false, the, the state data will not be part of the sim object manager as a shared reference. You will need to create and hold onto a shared reference for this state data, or, use the state data as a raw pointer

virtual void makVrf::DtStateDataManager::setParameterDatabase ( DtVrfParameterDb )
virtual
DtVrfParameterDb* makVrf::DtStateDataManager::parameterDatabase ( ) const
inline
DtVrfCallbackQueue& makVrf::DtStateDataManager::jobProcessor ( )
inline
virtual DtStateData* makVrf::DtStateDataManager::createStateData ( Legion::UInt64  legionHandle,
PreAddCallback  callback = 0 
)
virtual

Creates a state data from a remote legion buffer.

virtual void makVrf::DtStateDataManager::removeAndDeleteAll ( const std::set< DtUUID > &  except = std::set< DtUUID >())
virtual

Removes and deletes all state data (local and remote) from this manager.

virtual void makVrf::DtStateDataManager::removeStateData ( DtStateData )
virtual
virtual void makVrf::DtStateDataManager::removeStateData ( const DtUUID )
virtual
virtual void makVrf::DtStateDataManager::removeStateDataByStateId ( makVrf::SimStateID  )
virtual
virtual void makVrf::DtStateDataManager::removeStateDataByUniqueId ( unsigned long  long)
virtual
virtual void makVrf::DtStateDataManager::mapStateDataByUniqueId ( unsigned long  long,
DtStateData  
)
virtual

Adds an additional mapping to this state data. If an additional mapping by unique id is added, when the state data is removed the adder of this mapping must also remove it.

virtual void makVrf::DtStateDataManager::unmapStateDataByUniqueId ( unsigned long  long)
virtual
virtual void makVrf::DtStateDataManager::beginFrame ( double  simTime)
virtual
virtual void makVrf::DtStateDataManager::advanceFrame ( )
virtual
virtual DtStateData* makVrf::DtStateDataManager::advanceFrameFor ( unsigned long long  uniqueId)
virtual

For an advance frame for the given legion id, if the state data for it exists, and, return it.

virtual void makVrf::DtStateDataManager::registerLegionComponents ( Legion::SimulationDatabase *  )
virtual
Legion::EventManager* makVrf::DtStateDataManager::eventManager ( )
Legion::SimulationDatabase* makVrf::DtStateDataManager::database ( )
inline
Legion::SimulationDatabase* makVrf::DtStateDataManager::unpublishedDatabase ( )
inline
static void makVrf::DtStateDataManager::SeedUnpublishedEntityId ( short  appId,
short  siteId 
)
static

Routines to use when creating a non published object that still wants an entity id. Use NextUnpublishedEntityId() to generate or Seed to start at a particular site/app id.

static DtEntityIdentifier makVrf::DtStateDataManager::NextUnpublishedEntityId ( )
static

Routines to use when creating a non published object that still wants an entity id. Use NextUnpublishedEntityId() to generate or Seed to start at a particular site/app id.

virtual void makVrf::DtStateDataManager::aerodromeDiscovered ( DtStateData )
virtual

Force rediscovery of particular object

virtual void makVrf::DtStateDataManager::entityDiscovered ( DtStateData )
virtual
virtual void makVrf::DtStateDataManager::environmentalDiscovered ( DtStateData )
virtual
virtual void makVrf::DtStateDataManager::unitDiscovered ( DtStateData )
virtual
virtual void makVrf::DtStateDataManager::setBlockOnAdvanceFrameJobs ( bool  )
virtual

If false (default is true) will block until all advance frame jobs are complete. If this is set to false (which this should only be done for a completely remote process like the VRF GUI) then the jobs will be queued by will not wait for completion. If there are jobs left over for the next being frame, remote interfaces will not be processed. If ther were jobs and interfaces were not processed, the next advance frame is skipped until the interfaces are processed.

bool makVrf::DtStateDataManager::blockOnAdvanceFrameJobs ( ) const
inline
virtual bool makVrf::DtStateDataManager::hasOutstandingAdvanceFrameJobs ( ) const
virtual

Returns true if there are jobs waiting in the processing queue.

virtual void makVrf::DtStateDataManager::reserve ( unsigned  int)
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.

template<typename T_Class >
void makVrf::DtStateDataManager::handleDataUpdated ( const std::vector< typename Legion::SetView< T_Class >::InstanceUpdateData > &  instanceList)
inline
template<typename T_Class >
unsigned int makVrf::DtStateDataManager::addInstanceUpdatedCallback ( Legion::SimulationDatabase *  database,
DtInstanceUpdatedCallback  callback,
Legion::InstanceHandle  instanceHandle,
const typename std::vector< Legion::AttributeIndex > &  attributeIndexFilter = std::vector<Legion::AttributeIndex>() 
)
inline
template<typename T_Class >
void makVrf::DtStateDataManager::removeInstanceUpdatedCallback ( Legion::SimulationDatabase *  database,
Legion::InstanceHandle  instanceHandle,
unsigned int  callbackHandle 
)
inline
bool makVrf::DtStateDataManager::isValid ( void  ) const
inline
const StateData& makVrf::DtStateDataManager::stateData ( ) const
inline
const DtStateData* makVrf::DtStateDataManager::stateData ( makVrf::SimStateID  id) const
inline
DtStateData* makVrf::DtStateDataManager::stateData ( makVrf::SimStateID  id)
inline
double makVrf::DtStateDataManager::absRealTime ( ) const
inline
virtual void makVrf::DtStateDataManager::prepareForHandoff ( unsigned long  long,
bool  becomingLocal 
)
virtual

Authority of this object is about to be handed off. The flag is whether it will be becoming local or remote.

virtual void makVrf::DtStateDataManager::handoffComplete ( makVrf::SimStateID  )
virtual

Handoff code.

virtual bool makVrf::DtStateDataManager::awaitingHandoff ( makVrf::SimStateID  ) const
virtual
static StateDataCreatorFcn makVrf::DtStateDataManager::setStateDataCreatorFcn ( StateDataCreatorFcn  )
static

Returns current state data creator.

static StateDataCreatorFcn makVrf::DtStateDataManager::stateDataCreatorFcn ( )
static
static RemoteStateDataCreatorFcn makVrf::DtStateDataManager::setRemoteStateDataCreatorFcn ( RemoteStateDataCreatorFcn  )
static
static RemoteStateDataCreatorFcn makVrf::DtStateDataManager::remoteStateDataCreatorFcn ( )
static
static DtStateData* makVrf::DtStateDataManager::defaultStateDataCreator ( makVrf::SimStateID  ,
Legion::SimulationDatabase *  ,
DtStateDataManager  
)
static
static DtStateData* makVrf::DtStateDataManager::defaultRemoteStateDataCreator ( makVrf::SimStateID  ,
UInt64  legionGlobalId,
Legion::SimulationDatabase *  ,
DtStateDataManager  
)
static
virtual DtStateData* makVrf::DtStateDataManager::createStateData ( makVrf::SimStateID  ,
Legion::SimulationDatabase *   
)
virtual
virtual DtStateData* makVrf::DtStateDataManager::createStateData ( makVrf::SimStateID  ,
UInt64  legionGlobalId 
)
virtual
virtual void makVrf::DtStateDataManager::clear ( bool  forReuse = false)
virtual

Clears all lists and deletes all state data objects. use wisely. For reuse will mean that this manager is going to be reused with new objects rather than about to be deleted and disposed of.

Legion::ControlManager* makVrf::DtStateDataManager::controlManager ( )
virtual DtUUID makVrf::DtStateDataManager::uuidFor ( makVrf::SimStateID  ) const
virtual
virtual const DtStateData* makVrf::DtStateDataManager::stateDataFor ( const DtUUID ) const
virtual
virtual DtStateData* makVrf::DtStateDataManager::stateDataFor ( const DtUUID )
virtual
virtual const DtStateData* makVrf::DtStateDataManager::stateDataFor ( const DtEntityIdentifier &  ) const
virtual
virtual DtStateData* makVrf::DtStateDataManager::stateDataFor ( const DtEntityIdentifier &  )
virtual
virtual void makVrf::DtStateDataManager::setUpdateOnlySpecifiedStateDataMode ( bool  )
virtual

Puts the DtStateDataManager into a mode where only specified state data are updated in the advance frame. Default is false.

bool makVrf::DtStateDataManager::updateOnlySpecifiedStateDataMode ( ) const
inline
FrameStatus makVrf::DtStateDataManager::frameStatus ( ) const
inline
virtual const DtStateData* makVrf::DtStateDataManager::stateDataFor ( makVrf::SimStateID  ) const
virtual
virtual DtStateData* makVrf::DtStateDataManager::stateDataFor ( makVrf::SimStateID  )
virtual
virtual const DtStateData* makVrf::DtStateDataManager::stateDataForUniqueId ( UInt64  ) const
virtual
virtual DtStateData* makVrf::DtStateDataManager::stateDataForUniqueId ( UInt64  )
virtual
virtual UInt64 makVrf::DtStateDataManager::uniqueIdFrom ( const DtUUID ) const
virtual
virtual void makVrf::DtStateDataManager::setRunFullyThreaded ( bool  ,
int  theadCount = 4 
)
virtual

Whether or not to run fully threaded (default is true)

bool makVrf::DtStateDataManager::runFullyThreaded ( ) const
inline
virtual void makVrf::DtStateDataManager::addStateComponent ( DtStateComponent )
virtual
virtual void makVrf::DtStateDataManager::removeStateComponent ( DtStateComponent ,
bool  deleteOnRemoval = true 
)
virtual
virtual void makVrf::DtStateDataManager::resizeContainer ( unsigned  )
virtual
template<typename T_Component >
void makVrf::DtStateDataManager::resizeContainer ( )
inline
template<typename T_Component >
StateComponentSignal& makVrf::DtStateDataManager::signalWhenStateComponentAdded ( )
inline
StateComponentSignal& makVrf::DtStateDataManager::signalWhenStateComponentAdded ( unsigned  type)
inline
template<typename T_Component >
StateComponentSignal& makVrf::DtStateDataManager::signalWhenStateComponentRemoved ( )
inline
StateComponentSignal& makVrf::DtStateDataManager::signalWhenStateComponentRemoved ( unsigned  type)
inline
template<typename T_Component >
const CurrentFrameStates& makVrf::DtStateDataManager::stateComponents ( ) const
inline
virtual void makVrf::DtStateDataManager::removeAll ( )
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 std::set<const DtStateData*> makVrf::DtStateDataManager::entitiesTracking ( const DtUUID ) const
virtual

Given the global object designator, find all the entities that are tracking the given object by their emitter systems.

virtual std::set<const DtStateData*> makVrf::DtStateDataManager::entitiesJamming ( const DtUUID ) const
virtual

Given the global object designator, find all the entities that are tracking the given object by their emitter systems.

virtual DtTrackJamBeamInfoList makVrf::DtStateDataManager::systemsTrackingObject ( const DtUUID ) const
virtual

Given the global id, return a list of the systems and beams tracking this object.

virtual DtTrackJamBeamInfoList makVrf::DtStateDataManager::systemsJammingObject ( const DtUUID ) const
virtual

Given the global id, return a list of the systems and DtUUID tracking this object.

static void makVrf::DtStateDataManager::setStateDataManagerCreatorFcn ( DtStateDataManagerCreatorFcn  fcn)
static

Factory method for creating this class. If no factory method defined the default DtNetworkInterfaceManager is created.

static DtStateDataManager* makVrf::DtStateDataManager::createStateDataManager ( Legion::SimulationDatabase *  = nullptr,
int  threadPoolSize = -1,
unsigned int  clientId = 0 
)
static

Factory method for creating this class. If no factory method defined the default DtNetworkInterfaceManager is created.

virtual void makVrf::DtStateDataManager::setUnpublishedDatabaseUsage ( bool  )
virtual

Call this to create a database that will store "unpublished" objects. This is only useful when using a legion based connection.

virtual void makVrf::DtStateDataManager::setCoordinateSystem ( const Coordinate_System )
virtual

If defined, the coordinate system to convert geocentric coordinates to local database coordinates.

const Coordinate_System* makVrf::DtStateDataManager::coordinateSystem ( ) const
inline
const StateDataByUniqueId& makVrf::DtStateDataManager::entityData ( ) const
inline
const StateDataByUniqueId& makVrf::DtStateDataManager::unitData ( ) const
inline
const StateDataByUniqueId& makVrf::DtStateDataManager::aerodromeData ( ) const
inline
const StateDataByUniqueId& makVrf::DtStateDataManager::environmentalData ( ) const
inline
virtual void makVrf::DtStateDataManager::setPublishingOnLegionNetwork ( bool  b)
virtual
bool makVrf::DtStateDataManager::publishingOnLegionNetwork ( ) const
inline
template<typename T_Class >
Legion::SetView<T_Class>* makVrf::DtStateDataManager::view ( Legion::SimulationDatabase *  db)
inline

Returns the entity view for the given database.

bool makVrf::DtStateDataManager::advancingFrame ( ) const
inline
virtual void makVrf::DtStateDataManager::jobsThread ( )
protectedvirtual
virtual std::set<const DtStateData*> makVrf::DtStateDataManager::entitiesTracking ( int  beamType,
const DtUUID  
) const
protectedvirtual
virtual DtTrackJamBeamInfoList makVrf::DtStateDataManager::systemsTrackingObject ( int  beamType,
const DtUUID  
) const
protectedvirtual
virtual void makVrf::DtStateDataManager::uuidChanged ( makVrf::SimStateID  ,
const DtUUID oldUUID,
const DtUUID newUUID 
)
protectedvirtual
virtual void makVrf::DtStateDataManager::hostChanged ( const DtStateData ,
const DtUUID oldUUID,
const DtUUID newUUID 
)
protectedvirtual
virtual void makVrf::DtStateDataManager::subordinatesChanged ( const DtStateData ,
const std::vector< DtUUID > &  oldSubordinates,
const std::vector< DtUUID > &  newSubordinates 
)
protectedvirtual
virtual void makVrf::DtStateDataManager::completeAttachments ( DtStateData )
protectedvirtual
virtual void makVrf::DtStateDataManager::completeAttachments ( const DtUUID )
protectedvirtual
virtual void makVrf::DtStateDataManager::completeAttachments ( )
protectedvirtual
virtual void makVrf::DtStateDataManager::slot_stateComponentAboutToBeDeleted ( DtStateComponent )
protectedvirtual
virtual void makVrf::DtStateDataManager::convertedToLocal ( DtStateData )
protectedvirtual
virtual void makVrf::DtStateDataManager::resolveHostChanged ( const DtUUID ,
const DtUUID oldUUID,
const DtUUID newUUID,
std::set< DtEntityStateComponent * > &   
)
protectedvirtual
virtual bool makVrf::DtStateDataManager::_internalRemoveStateData ( DtStateData sd)
protectedvirtual

Remove state data from internal lists but don't delete until last reference is removed. Do not call directly.

virtual void makVrf::DtStateDataManager::addVrfSpecificDataElements ( Legion::SimulationDatabase *  )
protectedvirtual
virtual void makVrf::DtStateDataManager::resolveHostChanges ( )
protectedvirtual
virtual void makVrf::DtStateDataManager::removeAllStateComponents ( )
protectedvirtual
virtual void makVrf::DtStateDataManager::resolveSubordinateChanges ( )
protectedvirtual
virtual void makVrf::DtStateDataManager::removeStateDataToBeDeleted ( )
protectedvirtual
void makVrf::DtStateDataManager::initializeDefaultPublicData ( )
protected

Non-virtual because called from constructor.

virtual void makVrf::DtStateDataManager::componentDeleted ( DtStateComponent c)
protectedvirtual

Member Data Documentation

boost::signals2::signal<void (const Coordinate_System*)> makVrf::DtStateDataManager::signal_coordinateSystemChanged
boost::signals2::signal<void (const DtStateData*)> makVrf::DtStateDataManager::signal_stateDataAboutToBeRemoved
mutable

Signals sent for state data actions.

boost::signals2::signal<void (makVrf::SimStateID, UInt64)> makVrf::DtStateDataManager::signal_stateDataRemoved
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.

boost::signals2::signal<void (DtStateData*)> makVrf::DtStateDataManager::signal_stateDataAdded
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 (DtStateData*)> makVrf::DtStateDataManager::signal_aerodromeAdded
boost::signals2::signal<void (const DtStateData*)> makVrf::DtStateDataManager::signal_aerodromeRemoved
boost::signals2::signal<void (unsigned long long, const DtUUID& oldUUID, const DtUUID& newUUID)> makVrf::DtStateDataManager::signal_uuidChanged
StateComponentSignal makVrf::DtStateDataManager::signal_stateComponentAdded
StateComponentSignal makVrf::DtStateDataManager::signal_stateComponentRemoved
boost::signals2::signal<void ()> makVrf::DtStateDataManager::signal_deleted
boost::signals2::signal<void (DtStateData*)> makVrf::DtStateDataManager::signal_convertedToLocal
StateData makVrf::DtStateDataManager::myStateData
protected
tbb::spin_rw_mutex makVrf::DtStateDataManager::myMutex
mutableprotected
Legion::SimulationDatabase* makVrf::DtStateDataManager::myDatabase
protected
Legion::SimulationDatabase* makVrf::DtStateDataManager::myUnpublishedDatabase
protected
std::set<unsigned long long> makVrf::DtStateDataManager::myAwaitingHandoff
protected
std::atomic<makVrf::SimStateID> makVrf::DtStateDataManager::myNextSimStateID
protected
tbb::concurrent_queue<makVrf::SimStateID> makVrf::DtStateDataManager::myFreeStateIDs
protected
bool makVrf::DtStateDataManager::myRunFullyThreaded
protected
DtClock makVrf::DtStateDataManager::myClock
protected
DtVrfCallbackQueue makVrf::DtStateDataManager::myJobProcessor
protected
tbb::spin_rw_mutex makVrf::DtStateDataManager::myComponentMutex
mutableprotected
CurrentFrameStatesList makVrf::DtStateDataManager::myCurrentFrameStates
protected
StateDataByUUID makVrf::DtStateDataManager::myStateDataByUUID
protected
StateDataByEntityIdentifier makVrf::DtStateDataManager::myStateDataByEntityIdentifier
protected
DtStateDataManagerCreatorFcn makVrf::DtStateDataManager::theStateDataManagerCreatorFcn
staticprotected
StateDataByUniqueId makVrf::DtStateDataManager::myStateDataByUniqueId
protected
const Coordinate_System* makVrf::DtStateDataManager::myCoordinateSystem
protected
bool makVrf::DtStateDataManager::myOwnsCoordinateSystem
protected
StateDataByUniqueId makVrf::DtStateDataManager::myEntityData
protected
StateDataByUniqueId makVrf::DtStateDataManager::myUnitData
protected
StateDataByUniqueId makVrf::DtStateDataManager::myAerodromeData
protected
StateDataByUniqueId makVrf::DtStateDataManager::myEnvironmentalData
protected
bool makVrf::DtStateDataManager::myOwnsDatabase
protected
unsigned int makVrf::DtStateDataManager::myReserved
protected
tbb::spin_mutex makVrf::DtStateDataManager::myUpdateCallbackMutex
protected
tbb::spin_rw_mutex makVrf::DtStateDataManager::myViewCreateMutex
protected
DatabaseViews makVrf::DtStateDataManager::myDatabaseViews
protected
InstancesUpdatedCallbacks makVrf::DtStateDataManager::myInstancesUpdatedCallbacks
protected
std::atomic<unsigned int> makVrf::DtStateDataManager::myCallbackHandle
protected
tbb::spin_mutex makVrf::DtStateDataManager::myHostsChangedThisFrameMutex
protected
std::map<DtUUID, std::map<DtUUID, DtUUID> > makVrf::DtStateDataManager::myHostsChangedThisFrame
protected
std::map<DtUUID, std::set<DtUUID> > makVrf::DtStateDataManager::myWaitingForAttachment
protected
tbb::spin_mutex makVrf::DtStateDataManager::mySubordinatesChangedThisFrameMutex
protected
std::map<DtUUID, SubordinateChangeSet> makVrf::DtStateDataManager::mySubordinatesChangedThisFrame
protected
std::map<DtUUID, std::set<DtUUID> > makVrf::DtStateDataManager::myPendingSuperiorSet
protected
DtVrfParameterDb* makVrf::DtStateDataManager::myParameterDatabase
protected
std::vector<DtStateData*> makVrf::DtStateDataManager::myStateDataToBeDeleted
protected
bool makVrf::DtStateDataManager::myPublishingOnLegionNetwork
protected
std::map<DtStateComponent*, ComponentRemoval> makVrf::DtStateDataManager::myComponentsToRemove
protected
std::set<DtStateComponent*> makVrf::DtStateDataManager::myComponentsDeleted
protected
bool makVrf::DtStateDataManager::myUpdateOnlySpecifiedStateDataMode
protected
tbb::spin_mutex makVrf::DtStateDataManager::myAdvancedThisFrameMutex
protected
std::set<unsigned long long> makVrf::DtStateDataManager::myAdvancedThisFrame
protected
bool makVrf::DtStateDataManager::myAdvancingFrame = false
protected
bool makVrf::DtStateDataManager::myBlockOnAdvanceFrameJobs = true
protected
std::unique_ptr<std::thread> makVrf::DtStateDataManager::myJobsThread
protected
Condition makVrf::DtStateDataManager::myStartJobsCondition
mutableprotected
ConditionMutex makVrf::DtStateDataManager::myStartJobsConditionMutex
mutableprotected
std::atomic<bool> makVrf::DtStateDataManager::myShutdownJobsThreadFlag
protected
FrameStatus makVrf::DtStateDataManager::myFrameStatus = FrameStatus::Normal
protected

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)