11 #include <legionDataStore/dataTypes.h>
12 #include "legionStandardOM/views/entityView.h"
13 #include <legionStandardOM/sets/readEnvironmentProcessRepository.hpp>
15 class DtStateDataManager;
36 virtual void beginFrame();
37 virtual void advanceFrame();
43 return myStateDataManager;
51 virtual void printReflectedObjectCounts()
const;
56 virtual void objectsAdded(
const std::vector<LOM::ReadEntityRepository>&);
57 virtual void objectsRemoved(
const std::vector<LOM::ReadEntityRepository>&);
59 virtual void environmentalObjectsAdded(
const std::vector<LOM::ReadEnvironmentProcessRepository>&);
60 virtual void environmentalObjectsRemoved(
const std::vector<LOM::ReadEnvironmentProcessRepository>&);
70 virtual bool hasStateComponent(
DtStateData* sd)
const = 0;
71 virtual void addStateComponent(
DtStateData* sd)
const = 0;
72 virtual void addExistingStateComponents(
DtStateData* sd)
const = 0;
78 template <
typename T_VRFStateComponent,
typename T_LegionComponent>
83 myView = (
typename Legion::SetView<T_LegionComponent>*)(m->
viewManager()->createSetView<T_LegionComponent>());
84 myView->addInstanceAddedCallback(
typename Legion::SetView<T_LegionComponent>::InstanceCallback(
this, &StateComponentAdder::handleLegionSetAdded));
85 myView->addInstanceRemovedCallback(
typename Legion::SetView<T_LegionComponent>::InstanceCallback(
this, &StateComponentAdder::handleLegionSetRemoved));
90 myView->removeInstanceAddedCallback(
typename Legion::SetView<T_LegionComponent>::InstanceCallback(
this, &StateComponentAdder::handleLegionSetAdded));
91 myView->removeInstanceRemovedCallback(
typename Legion::SetView<T_LegionComponent>::InstanceCallback(
this, &StateComponentAdder::handleLegionSetRemoved));
92 myRemoteObjectManager->viewManager()->destroyView(myView);
97 addStateComponent(sd);
117 for (i = 0; i < componentCount; i++)
135 if (myRemoteObjectManager->stateDataManager())
139 int iLimit = objs.size();
142 for (i = 0; i < iLimit; ++i)
148 addStateComponent(sd);
155 Legion::SetView<T_LegionComponent>*
myView;
160 template <
typename T_VRFComponent,
typename T_LegionComponent>
void
163 LegionSetToStateComponent::iterator iter = myLegionSetToStateComponent.find(T_LegionComponent::type());
165 if (iter != myLegionSetToStateComponent.end())
173 virtual void setProcessRemoteObjectsInParallel(
bool);
176 return myProcessRemoteObjectsInParallel;
182 virtual void setNumCallbackThreads(
unsigned);
185 virtual bool rediscoverObjects();
Definition: remoteObjectManager.h:79
virtual void addStateComponent(DtStateData *sd) const
Definition: remoteObjectManager.h:100
Legion::ViewManager * viewManager()
Definition: remoteObjectManager.h:46
StateComponentAdder(DtRemoteObjectManager *m, bool onlyOne)
Definition: remoteObjectManager.h:81
#define DT_DLL_legionNetworkInterface
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: legionNetworkInterfaceDefines.h:26
virtual ~StateComponentAssociation()
Definition: remoteObjectManager.h:69
DtStateDataManager * myStateDataManager
Definition: remoteObjectManager.h:188
virtual ~StateComponentAdder()
Definition: remoteObjectManager.h:88
virtual void handleLegionSetAdded(const std::vector< T_LegionComponent > &objs)
Definition: remoteObjectManager.h:133
bool hasStateComponent(bool checkWritable=false)
Definition: stateData.h:568
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
std::vector< Legion::UInt64 > myProcessNewObjects
Definition: remoteObjectManager.h:196
unsigned int componentCount() const
Definition: stateData.h:391
T_Component findNextFrameLegionComponent(int index=0)
Definition: stateData.h:406
class DtRemoteObjectManager:
Definition: remoteObjectManager.h:28
DtStateDataManager * stateDataManager()
Definition: remoteObjectManager.h:41
DtVrfCallbackQueue * myNetworkCallbackQueue
Definition: remoteObjectManager.h:198
LegionSetToStateComponent myLegionSetToStateComponent
Definition: remoteObjectManager.h:194
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
Legion::SetView< T_LegionComponent > * myView
Definition: remoteObjectManager.h:155
virtual void addExistingStateComponents(DtStateData *sd) const
Definition: remoteObjectManager.h:95
bool processRemoteObjectsInParallel() const
Definition: remoteObjectManager.h:174
Definition: remoteObjectManager.h:66
unsigned long long UInt64
Definition: stateDataTypes.h:17
Legion::ReadStateInstance * readStateInstance() const
Definition: stateData.h:733
void registerLegionSetToStateComponent(bool onlyOne=false)
Definition: remoteObjectManager.h:161
bool myProcessRemoteObjectsInParallel
Definition: remoteObjectManager.h:197
virtual bool hasStateComponent(DtStateData *sd) const
Definition: remoteObjectManager.h:124
bool myOnlyOne
Definition: remoteObjectManager.h:156
StateComponentAssociation(DtRemoteObjectManager *m)
Definition: remoteObjectManager.h:68
Legion::View * myEnvironmentalView
Definition: remoteObjectManager.h:191
std::map< Legion::UInt32, StateComponentAssociation * > LegionSetToStateComponent
Definition: remoteObjectManager.h:193
virtual const DtStateData * stateDataForLegionId(UInt64) const
DtRemoteObjectManager * myRemoteObjectManager
Definition: remoteObjectManager.h:75
Legion::ViewManager * myViewManager
Definition: remoteObjectManager.h:189
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Legion::View * myEntityView
Definition: remoteObjectManager.h:190
T_Component * addStateComponent(bool checkWritable=false, bool isRemote=false)
Using the global state component factory, creates and adds a new state of the given type...
Definition: stateData.h:460
virtual void handleLegionSetRemoved(const std::vector< T_LegionComponent > &objs)
Definition: remoteObjectManager.h:129
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73