11 #include <legionDataStore/dataTypes.h>
16 #include <vlutil/vlPerformanceStats.h>
17 #include <boost/signals2.hpp>
18 #include <boost/unordered_set.hpp>
19 #include <tbb/spin_rw_mutex.h>
20 #include <tbb/spin_mutex.h>
25 class DtSimEntryObjectAgent;
26 class DtSimStateObjectAgent;
27 class DtBaseConnection;
32 class DtStateComponent;
33 class DtSimDataProcessorManager;
39 virtual const char* processorName()
const = 0;
59 virtual void createAndSendState(
DtStateData*, makVrv::DtSimStateObjectAgent&,
bool force =
false) = 0;
60 virtual void slot_postUpdateCallback(
const DtStateData*) = 0;
63 template <
typename T_Agent>
89 virtual void queueFunction(
const boost::function<
void ()>&
function);
116 makVrv::DtSimStateObjectAgent& driver,
178 typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate, UpdaterGroup>
UpdateGroupMap;
195 typedef std::map<makVrv::DtUniqueID, SimDataInstance>
AgentMap;
DtSimDataProcessorManager * mySimDataProcessorManager
Definition: vrfDataProcessorInterface.h:201
std::set< makVrv::DtUniqueID > myAwaitingValidId
Definition: vrfDataProcessorInterface.h:200
Legion::UInt64 myLegionGlobalId
Definition: vrfDataProcessorInterface.h:161
boost::signals2::connection myVantageToLegionIdMapperConnection
Definition: vrfDataProcessorInterface.h:198
Contains makVrv::DtSimDataProcessorInterface class.
StateDataUpdater(DtStateData *listener, UInt64 legionGlobalId, makVrv::DtSimStateObjectAgent &driver, DtVrfDataProcessor< T_Agent > &iface)
Definition: vrfDataProcessorInterface.h:114
virtual ~DtVrfDataProcessor()
DTOR.
Definition: vrfDataProcessorInterface.h:64
Definition: vrfDataProcessorInterface.h:110
bool myDiscoverBackgroundEntities
Definition: vrfDataProcessorInterface.h:202
AgentMap myAgents
Definition: vrfDataProcessorInterface.h:196
UpdateRate
Definition: DtSimEntryUpdater.h:31
virtual void addSimData(DtStateData *sd)
This class will manage the data processors. It will be the spot that the data processors can post mes...
Definition: simDataProcessorManager.h:25
std::map< makVrv::DtSimEntryUpdater::UpdateRate, UpdaterGroup > UpdateGroupMap
Definition: vrfDataProcessorInterface.h:178
virtual void dataRemovedByLegionId(Legion::UInt64 lid)
makVrv::DtBaseConnection & mySimulation
Definition: vrfDataProcessorInterface.h:172
virtual void dataDiscoveredByLegionId(Legion::UInt64 lid)
Legion::UInt64 legionGlobalId() const
Definition: vrfDataProcessorInterface.h:152
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: vrfDataProcessorInterface.h:175
DtSimDataProcessorManager * simDataProcessorManager()
Definition: vrfDataProcessorInterface.h:35
SimDataInstance()
Definition: vrfDataProcessorInterface.h:187
virtual void setDiscoverBackgroundEntities(bool)
virtual void componentUpdated(const DtFrameStateInterface *)
virtual void removeData(Legion::UInt64 legionGlobalId)
makVrv::DtBalancedUpdater< StateDataUpdater > UpdaterGroup
Definition: vrfDataProcessorInterface.h:177
StateDataUpdater & operator=(const StateDataUpdater &orig)
Definition: vrfDataProcessorInterface.h:133
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:39
virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate)
Set a particular object update.
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfDataProcessorInterface.h:171
makVrv::DtSimStateObjectAgent * myObjectAgent
Definition: vrfDataProcessorInterface.h:159
makVrv::DtSimStateObjectAgent * myAgent
Definition: vrfDataProcessorInterface.h:191
DtStateDataManager * stateDataManager()
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
std::set< makVrv::DtUniqueID > EntityIdList
Definition: vrfDataProcessorInterface.h:182
StateDataUpdater(const StateDataUpdater &orig)
Definition: vrfDataProcessorInterface.h:125
virtual makVrv::DtUniqueID vantageIdFromLegionId(Legion::UInt64) const
virtual void queueRemoveData(const DtStateData *)
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
unsigned long long UInt64
Definition: stateDataTypes.h:17
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:26
tbb::spin_rw_mutex myMutex
Definition: vrfDataProcessorInterface.h:203
EntityIdList myForceUpdateList
Definition: vrfDataProcessorInterface.h:183
virtual void slot_frameAdvanced()
UInt64 myLegionGlobalId
Definition: vrfDataProcessorInterface.h:190
DtVrfDataProcessor< T_Agent > * myDataProcessorInterface
Definition: vrfDataProcessorInterface.h:160
DtStateData * myStateData
Definition: vrfDataProcessorInterface.h:158
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: vrfDataProcessorInterface.h:192
static tbb::spin_mutex theEntryMapMutex
Definition: vrfDataProcessorInterface.h:51
Contains makVrv::DtSimEntryUpdater class.
Definition: vrfDataProcessorInterface.h:185
Contains makVrv::DtBalancedUpdater class.
#define DT_DLL_vrfGuiNetworkCommon
This file is used to determine how to build.
Definition: vrfGuiNetworkCommonDefines.h:24
bool operator==(const StateDataUpdater &orig) const
Definition: vrfDataProcessorInterface.h:144
Base class to provide boost signal/slot management.
virtual bool shouldForceObjectUpdate(const DtFrameStateInterface *) const
Default return false.
A DtSimState is the base class for all state objects. Derived instances of DtSimState will be created...
Definition: DtSimState.h:19
static std::map< makVrv::DtUniqueID, int > theEntryMap
Definition: vrfDataProcessorInterface.h:52
virtual void forceObjectUpdate(makVrv::DtUniqueID)
DtStateDataManager * myStateDataManager
Definition: vrfDataProcessorInterface.h:170
UpdateGroupMap myRefreshRateGroups
Definition: vrfDataProcessorInterface.h:180
DtTimedSection myTimer
Definition: vrfDataProcessorInterface.h:174
virtual void queueFunction(const boost::function< void()> &function)
Put a function in the sim function queue, for threadsafe calling.
virtual bool dataDiscovered(DtStateData *sd)
Call when new data is discovered. If valid to add will call addSimData.
DtVrfDataProcessor(DtStateDataManager *, makVrv::DtBaseConnection &)
CTOR.
std::map< makVrv::DtUniqueID, SimDataInstance > AgentMap
Definition: vrfDataProcessorInterface.h:195
Definition: vrfDataProcessorInterface.h:55
virtual void queueDataDiscovered(DtStateData *sd)
Call this methd to queue the method to discover the data such that it can all happen in the thread th...
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:282
virtual void vantageIdMapped(makVrv::DtUniqueID, Legion::UInt64)
DtStateData * myStateData
Definition: vrfDataProcessorInterface.h:187
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:71
std::set< makVrv::DtUniqueID > myUpdated
Definition: vrfDataProcessorInterface.h:168