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;
60 virtual void createAndSendState(
DtStateData*, makVrv::DtSimStateObjectAgent&,
bool force =
false) = 0;
61 virtual void slot_postUpdateCallback(
const DtStateData*) = 0;
64 template <
typename T_Agent>
90 virtual void queueFunction(
const boost::function<
void ()>&
function);
118 makVrv::DtSimStateObjectAgent& driver,
180 typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate, UpdaterGroup>
UpdateGroupMap;
197 typedef std::map<makVrv::DtUniqueID, SimDataInstance>
AgentMap;
DtSimDataProcessorManager * mySimDataProcessorManager
Definition: vrfDataProcessorInterface.h:203
std::set< makVrv::DtUniqueID > myAwaitingValidId
Definition: vrfDataProcessorInterface.h:202
Legion::UInt64 myLegionGlobalId
Definition: vrfDataProcessorInterface.h:163
boost::signals2::connection myVantageToLegionIdMapperConnection
Definition: vrfDataProcessorInterface.h:200
Contains makVrv::DtSimDataProcessorInterface class.
StateDataUpdater(DtStateData *listener, UInt64 legionGlobalId, makVrv::DtSimStateObjectAgent &driver, DtVrfDataProcessor< T_Agent > &iface)
Definition: vrfDataProcessorInterface.h:116
virtual ~DtVrfDataProcessor()
DTOR.
Definition: vrfDataProcessorInterface.h:65
Definition: vrfDataProcessorInterface.h:112
AgentMap myAgents
Definition: vrfDataProcessorInterface.h:198
UpdateRate
Definition: DtSimEntryUpdater.h:31
virtual void addSimData(DtStateData *sd)
int myTotalUpdated
Definition: vrfDataProcessorInterface.h:206
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:180
virtual void dataRemovedByLegionId(Legion::UInt64 lid)
makVrv::DtBaseConnection & mySimulation
Definition: vrfDataProcessorInterface.h:174
virtual void dataDiscoveredByLegionId(Legion::UInt64 lid)
Legion::UInt64 legionGlobalId() const
Definition: vrfDataProcessorInterface.h:154
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: vrfDataProcessorInterface.h:177
DtSimDataProcessorManager * simDataProcessorManager()
Definition: vrfDataProcessorInterface.h:35
SimDataInstance()
Definition: vrfDataProcessorInterface.h:189
virtual void setDiscoverBackgroundEntities(bool)
virtual void componentUpdated(const DtFrameStateInterface *)
virtual void removeData(Legion::UInt64 legionGlobalId)
makVrv::DtBalancedUpdater< StateDataUpdater > UpdaterGroup
Definition: vrfDataProcessorInterface.h:179
StateDataUpdater & operator=(const StateDataUpdater &orig)
Definition: vrfDataProcessorInterface.h:135
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate)
Set a particular object update.
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfDataProcessorInterface.h:173
makVrv::DtSimStateObjectAgent * myObjectAgent
Definition: vrfDataProcessorInterface.h:161
makVrv::DtSimStateObjectAgent * myAgent
Definition: vrfDataProcessorInterface.h:193
DtStateDataManager * stateDataManager()
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
std::set< makVrv::DtUniqueID > EntityIdList
Definition: vrfDataProcessorInterface.h:184
StateDataUpdater(const StateDataUpdater &orig)
Definition: vrfDataProcessorInterface.h:127
virtual makVrv::DtUniqueID vantageIdFromLegionId(Legion::UInt64) const override
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:205
EntityIdList myForceUpdateList
Definition: vrfDataProcessorInterface.h:185
virtual void slot_frameAdvanced()
UInt64 myLegionGlobalId
Definition: vrfDataProcessorInterface.h:192
DtVrfDataProcessor< T_Agent > * myDataProcessorInterface
Definition: vrfDataProcessorInterface.h:162
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtStateData * myStateData
Definition: vrfDataProcessorInterface.h:160
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: vrfDataProcessorInterface.h:194
static tbb::spin_mutex theEntryMapMutex
Definition: vrfDataProcessorInterface.h:52
Contains makVrv::DtSimEntryUpdater class.
Definition: vrfDataProcessorInterface.h:187
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:146
Base class to provide boost signal/slot management.
virtual Legion::UInt64 legionIdFromVantageId(makVrv::DtUniqueID lid) const override
bool myDiscoverClutterEntities
Definition: vrfDataProcessorInterface.h:204
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:53
virtual void forceObjectUpdate(makVrv::DtUniqueID)
DtStateDataManager * myStateDataManager
Definition: vrfDataProcessorInterface.h:172
UpdateGroupMap myRefreshRateGroups
Definition: vrfDataProcessorInterface.h:182
DtTimedSection myTimer
Definition: vrfDataProcessorInterface.h:176
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:197
Definition: vrfDataProcessorInterface.h:56
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:291
virtual void vantageIdMapped(makVrv::DtUniqueID, Legion::UInt64)
DtStateData * myStateData
Definition: vrfDataProcessorInterface.h:189
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73
std::set< makVrv::DtUniqueID > myUpdated
Definition: vrfDataProcessorInterface.h:170