14 #include <tbb/spin_rw_mutex.h>
15 #include <tbb/concurrent_queue.h>
16 #include <vlutil/vlTime.h>
17 #include "legionDataStore/view.h"
18 #include "legionDataStore/viewManager.h"
19 #include "legionDataStore/simulationDatabase.h"
20 #include "vlpi/entityIdentifier.h"
21 #include <tbb/tbb_thread.h>
22 #include <tbb/atomic.h>
28 #include <unordered_map>
30 #include <boost/signals2.hpp>
31 #include <boost/function.hpp>
37 class SimulationDatabase;
40 struct AttributeDescriptor;
48 struct DtEmitterSystemBeamStateData;
50 class DtEmitterSystemStateComponent;
51 class DtEntityStateComponent;
52 class DtFrameStateInterface;
53 class DtSimulatedObjectStateComponent;
64 class DtFrameDataInterface;
97 PreAddCallback callback = 0,
const DtEntityIdentifier& entId = DtEntityIdentifier::nullId());
101 return myParameterDatabase;
106 return myJobProcessor;
113 virtual void removeAndDeleteAll();
116 virtual void removeStateData(
const DtUUID&);
118 virtual void removeStateDataByLegionGlobalId(
unsigned long long);
120 virtual void beginFrame(
double simTime);
121 virtual void advanceFrame();
124 virtual DtStateData* advanceFrameFor(
unsigned long long legionId);
126 virtual void registerLegionComponents(Legion::SimulationDatabase*);
128 Legion::EventManager* eventManager();
137 return myUnpublishedDatabase ? myUnpublishedDatabase : myDatabase;
143 virtual void setBlockOnAdvanceFrameJobs(
bool);
146 return myBlockOnAdvanceFrameJobs;
150 virtual bool hasOutstandingAdvanceFrameJobs()
const;
154 virtual void reserve(
unsigned int);
156 template <
typename T_Class>
157 void handleDataUpdated(
const std::vector<
typename Legion::SetView<T_Class>::InstanceUpdateData>& instanceList)
159 typename InstancesUpdatedCallbacks::iterator iter = myInstancesUpdatedCallbacks.find(T_Class::type());
161 if (iter != myInstancesUpdatedCallbacks.end())
163 typename std::vector<typename Legion::SetView<T_Class>::InstanceUpdateData>::const_iterator instIter = instanceList.begin();
164 typename std::vector<typename Legion::SetView<T_Class>::InstanceUpdateData>::const_iterator instEnd = instanceList.end();
166 while (instIter != instEnd)
168 const T_Class& ent = instIter->instance;
169 InstanceUpdatedCallbacks::iterator callIter = iter->second.find(ent.instanceHandle());
171 if (callIter != iter->second.end())
173 Callbacks::iterator cbIter = callIter->second.begin();
174 Callbacks::iterator cbEnd = callIter->second.end();
176 while (cbIter != cbEnd)
178 (cbIter->first)(instIter->attributesChanged);
188 template <
typename T_Class>
191 const typename std::vector<Legion::AttributeIndex>& attributeIndexFilter = std::vector<Legion::AttributeIndex>())
195 unsigned int newHandle = ++myCallbackHandle;
196 tbb::spin_mutex::scoped_lock lock(myUpdateCallbackMutex);
198 InstancesUpdatedCallbacks::iterator iter = myInstancesUpdatedCallbacks.find(T_Class::type());
200 if (iter == myInstancesUpdatedCallbacks.end())
203 iter = myInstancesUpdatedCallbacks.find(T_Class::type());
206 iter->second[instanceHandle].push_back(std::make_pair(callback, newHandle));
208 if (iter->second.size() == 1)
210 view<T_Class>(database)->addInstanceUpdatedCallback(
typename Legion::SetView<T_Class>::InstanceUpdateCallback(
this,
211 &DtStateDataManager::handleDataUpdated<T_Class>), attributeIndexFilter);
220 template <
typename T_Class>
223 if (isValid() && callbackHandle)
225 tbb::spin_mutex::scoped_lock lock(myUpdateCallbackMutex);
226 InstancesUpdatedCallbacks::iterator iter = myInstancesUpdatedCallbacks.find(T_Class::type());
228 if (iter != myInstancesUpdatedCallbacks.end())
230 InstanceUpdatedCallbacks::iterator callIter = iter->second.find(instanceHandle);
232 if (callIter != iter->second.end())
234 Callbacks::iterator cbIter = callIter->second.begin();
235 Callbacks::iterator cbEnd = callIter->second.end();
237 while (cbIter != cbEnd)
239 if (cbIter->second == callbackHandle)
241 callIter->second.erase(cbIter);
248 if (callIter->second.size() == 0)
250 iter->second.erase(callIter);
252 if (iter->second.size() == 0)
254 myInstancesUpdatedCallbacks.erase(iter);
255 view<T_Class>(database)->removeInstanceUpdatedCallback(
typename Legion::SetView<T_Class>::InstanceUpdateCallback(
this,
256 &DtStateDataManager::handleDataUpdated<T_Class>));
266 return (myDatabase != 0);
271 tbb::spin_rw_mutex::scoped_lock lock(myMutex,
false);
272 if (
id < myStateData.size())
274 return myStateData[id];
282 tbb::spin_rw_mutex::scoped_lock lock(myMutex,
false);
285 return myStateData[id];
293 return myClock.absRealTime();
297 virtual void prepareForHandoff(
unsigned long long,
bool becomingLocal);
310 static StateDataCreatorFcn setStateDataCreatorFcn(StateDataCreatorFcn);
311 static StateDataCreatorFcn stateDataCreatorFcn();
313 static RemoteStateDataCreatorFcn setRemoteStateDataCreatorFcn(RemoteStateDataCreatorFcn);
314 static RemoteStateDataCreatorFcn remoteStateDataCreatorFcn();
323 virtual void clear();
325 Legion::ControlManager* controlManager();
332 virtual const DtStateData*stateDataFor(
const DtEntityIdentifier&)
const;
333 virtual DtStateData*stateDataFor(
const DtEntityIdentifier&);
336 virtual void setUpdateOnlySpecifiedStateDataMode(
bool);
339 return myUpdateOnlySpecifiedStateDataMode;
344 return myFrameStatus;
354 virtual void setRunFullyThreaded(
bool,
int theadCount = 4);
357 return myRunFullyThreaded;
364 virtual void removeStateComponent(
DtStateComponent*,
bool deleteOnRemoval =
true);
366 virtual void resizeContainer(
unsigned);
368 template <
typename T_Component>
371 resizeContainer(T_Component::ComponentType());
374 template <
typename T_Component>
377 return signalWhenStateComponentAdded(T_Component::ComponentType());
382 tbb::spin_rw_mutex::scoped_lock lock(myComponentMutex,
true);
383 resizeContainer(type);
384 return *(myCurrentFrameStates[type].signal_stateComponentAdded);
387 template <
typename T_Component>
390 return signalWhenStateComponentRemoved(T_Component::ComponentType());
395 tbb::spin_rw_mutex::scoped_lock lock(myComponentMutex,
true);
396 resizeContainer(type);
397 return *(myCurrentFrameStates[type].signal_stateComponentRemoved);
400 template <
typename T_Component>
405 tbb::spin_rw_mutex::scoped_lock lock(myComponentMutex,
false);
407 if (T_Component::ComponentType() < myCurrentFrameStates.size())
409 return myCurrentFrameStates[T_Component::ComponentType()].currentFrameStates;
417 virtual void removeAll();
420 virtual std::set<const DtStateData*> entitiesTracking(
const DtUUID&)
const;
423 virtual std::set<const DtStateData*> entitiesJamming(
const DtUUID&)
const;
435 static DtStateDataManager* createStateDataManager(Legion::SimulationDatabase* = 0,
int threadPoolSize = -1);
440 virtual void setUnpublishedDatabaseUsage(
bool);
446 return myCoordinateSystem;
462 return myAerodromeData;
467 return myEnvironmentalData;
470 virtual void setPublishingOnLegionNetwork(
bool b);
473 return myPublishingOnLegionNetwork;
477 template <
typename T_Class>
478 Legion::SetView<T_Class>*
view(Legion::SimulationDatabase* db)
480 tbb::spin_rw_mutex::scoped_lock lock(myViewCreateMutex,
true);
482 DatabaseViews::iterator iter = myDatabaseViews.find(db);
484 if (iter == myDatabaseViews.end())
486 myDatabaseViews[db] =
Views();
487 iter = myDatabaseViews.find(db);
491 Views::iterator viewIter = iter->second.find(key);
493 if (viewIter == iter->second.end())
495 iter->second[key] = db->viewManager().createSetView<
T_Class>(key, (myUnpublishedDatabase ? Legion::ViewScope::Remote : Legion::ViewScope::All));
496 viewIter = iter->second.find(key);
499 return (Legion::SetView<T_Class>*)(viewIter->second);
504 return myAdvancingFrame;
508 virtual void jobsThread();
509 virtual std::set<const DtStateData*> entitiesTracking(
int beamType,
const DtUUID&)
const;
513 virtual void subordinatesChanged(
const DtStateData*,
const std::vector<DtUUID>& oldSubordinates,
const std::vector<DtUUID>& newSubordinates);
515 virtual void completeAttachments(
const DtUUID&);
516 virtual void completeAttachments();
520 virtual void resolveHostChanged(
const DtUUID&,
const DtUUID& oldUUID,
const DtUUID& newUUID,
521 std::set<DtEntityStateComponent*>&);
554 boost::signals2::signal<void (unsigned long long, const DtUUID& oldUUID, const DtUUID& newUUID)>
signal_uuidChanged;
566 virtual void _internalRemoveStateData(
DtStateData*sd);
568 virtual void addVrfSpecificDataElements(Legion::SimulationDatabase*);
570 virtual void resolveHostChanges();
571 virtual void removeAllStateComponents();
572 virtual void resolveSubordinateChanges();
574 virtual void removeStateDataToBeDeleted();
577 void initializeDefaultPublicData();
609 : signal_stateComponentAdded(orig.signal_stateComponentAdded)
610 , signal_stateComponentRemoved(orig.signal_stateComponentRemoved)
611 , currentFrameStates(orig.currentFrameStates)
655 typedef std::map<DtString, Legion::View*>
Views;
659 typedef std::vector<std::pair<DtInstanceUpdatedCallback, unsigned int> >
Callbacks;
697 bool myAdvancingFrame =
false;
698 bool myBlockOnAdvanceFrameJobs =
true;
boost::signals2::signal< void()> signal_preAdvanceFrame
Definition: stateDataManager.h:536
std::map< DtString, Legion::View * > Views
Definition: stateDataManager.h:655
UUID is a unique ID wrapper class.
Definition: uuid.h:59
boost::signals2::signal< void(Legion::SimulationDatabase *)> signal_addVrfSpecificDataElements
Signal sent when it is ok to add columns to the entity set.
Definition: stateDataManager.h:529
unsigned long long SimStateID
Definition: stateDataTypes.h:16
StateComponentAddedSignal & signalWhenStateComponentAdded()
Definition: stateDataManager.h:375
void resizeContainer()
Definition: stateDataManager.h:369
unsigned int addInstanceUpdatedCallback(Legion::SimulationDatabase *database, DtInstanceUpdatedCallback callback, Legion::InstanceHandle instanceHandle, const typename std::vector< Legion::AttributeIndex > &attributeIndexFilter=std::vector< Legion::AttributeIndex >())
Definition: stateDataManager.h:189
tbb::spin_mutex mySubordinatesChangedThisFrameMutex
Definition: stateDataManager.h:670
FrameStatus frameStatus() const
Definition: stateDataManager.h:342
std::set< DtStateComponent * > myComponentsDeleted
Definition: stateDataManager.h:689
bool deleteOnRemoval
Definition: stateDataManager.h:684
std::map< DtUUID, std::map< DtUUID, DtUUID > > myHostsChangedThisFrame
Definition: stateDataManager.h:667
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:40
bool blockOnAdvanceFrameJobs() const
Definition: stateDataManager.h:144
const StateDataByLegionId & environmentalData() const
Definition: stateDataManager.h:465
bool isValid() const
Definition: stateDataManager.h:264
Condition myStartJobsCondition
Definition: stateDataManager.h:700
tbb::mutex ConditionMutex
Definition: stateDataManager.h:693
InstancesUpdatedCallbacks myInstancesUpdatedCallbacks
Definition: stateDataManager.h:662
StateComponentAddedSignal & signalWhenStateComponentRemoved(unsigned type)
Definition: stateDataManager.h:393
tbb::spin_rw_mutex myComponentMutex
Definition: stateDataManager.h:599
unsigned int myReserved
Definition: stateDataManager.h:651
std::vector< DtStateData * > StateData
Definition: stateDataManager.h:562
DtVrfParameterDb * myParameterDatabase
Definition: stateDataManager.h:677
static DtStateDataManagerCreatorFcn theStateDataManagerCreatorFcn
Definition: stateDataManager.h:637
DtStateDataManager *(* DtStateDataManagerCreatorFcn)(Legion::SimulationDatabase *, int)
Definition: stateDataManager.h:67
boost::signals2::signal< void()> signal_deleted
Definition: stateDataManager.h:558
std::atomic< bool > myShutdownJobsThreadFlag
Definition: stateDataManager.h:702
bool myPublishingOnLegionNetwork
Definition: stateDataManager.h:680
std::map< Legion::AttributeSetId, InstanceUpdatedCallbacks > InstancesUpdatedCallbacks
Definition: stateDataManager.h:661
StateComponent & operator=(const StateComponent &rhs)
Definition: stateDataManager.h:614
const DtEmitterSystemBeamStateData * beamSR
Definition: stateDataManager.h:57
std::shared_ptr< StateComponentRemovedSignal > signal_stateComponentRemoved
Definition: stateDataManager.h:624
DtClock myClock
Definition: stateDataManager.h:596
FrameStatus
Definition: stateDataManager.h:80
ConditionMutex myStartJobsConditionMutex
Definition: stateDataManager.h:701
std::set< unsigned long long > myAdvancedThisFrame
Definition: stateDataManager.h:696
boost::signals2::signal< void(DtStateComponent *)> StateComponentRemovedSignal
Definition: stateDataManager.h:361
typedef int(ZCALLBACK *close_file_func) OF((voidpf opaque
tbb::spin_rw_mutex myMutex
Definition: stateDataManager.h:584
boost::signals2::signal< void(DtStateData *)> signal_aerodromeAdded
Definition: stateDataManager.h:551
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:32
bool runFullyThreaded() const
Definition: stateDataManager.h:355
tbb::spin_mutex myAdvancedThisFrameMutex
Definition: stateDataManager.h:695
Contains the DtUUID class declaration.
std::shared_ptr< StateComponentAddedSignal > signal_stateComponentAdded
Definition: stateDataManager.h:623
boost::signals2::signal< void(DtStateData *)> signal_unitAdded
Definition: stateDataManager.h:545
tbb::interface5::condition_variable Condition
Definition: stateDataManager.h:692
boost::signals2::signal< void()> signal_advanceFrame
Definition: stateDataManager.h:537
std::vector< StateComponent > CurrentFrameStatesList
Definition: stateDataManager.h:628
std::auto_ptr< tbb::tbb_thread > myJobsThread
Definition: stateDataManager.h:699
boost::signals2::signal< void()> signal_beginFrame
Definition: stateDataManager.h:535
const StateDataByLegionId & aerodromeData() const
Definition: stateDataManager.h:460
DtStateData * stateData(makVrf::SimStateID id)
Definition: stateDataManager.h:280
StateDataByLegionId myStateDataByLegionId
Definition: stateDataManager.h:639
StateComponent()
Definition: stateDataManager.h:603
Definition: objectType.h:27
double absRealTime() const
Definition: stateDataManager.h:291
CurrentFrameStates currentFrameStates
Definition: stateDataManager.h:625
Legion::SimulationDatabase * database()
Definition: stateDataManager.h:130
Legion::SetView< T_Class > * view(Legion::SimulationDatabase *db)
Returns the entity view for the given database.
Definition: stateDataManager.h:478
std::atomic< unsigned int > myCallbackHandle
Definition: stateDataManager.h:664
std::vector< DtTrackJamBeamInfo > DtTrackJamBeamInfoList
Definition: stateDataManager.h:61
std::unordered_map< std::string, std::set< DtStateData * > > StateDataByEntityIdentifier
Definition: stateDataManager.h:634
std::pair< std::set< DtUUID >, std::set< DtUUID > > SubordinateChangeSet
First is added, second removed.
Definition: stateDataManager.h:673
StateDataByEntityIdentifier myStateDataByEntityIdentifier
Definition: stateDataManager.h:635
bool publishingOnLegionNetwork() const
Definition: stateDataManager.h:471
const Coordinate_System * myCoordinateSystem
Definition: stateDataManager.h:641
Definition: coordSystem.h:54
const CurrentFrameStates & stateComponents() const
Definition: stateDataManager.h:401
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
boost::signals2::signal< void(const DtStateData *)> signal_stateDataAboutToBeRemoved
Signals sent for state data actions.
Definition: stateDataManager.h:525
StateDataByLegionId myAerodromeData
Definition: stateDataManager.h:646
tbb::spin_rw_mutex myViewCreateMutex
Definition: stateDataManager.h:654
Definition: stateDataManager.h:682
std::map< DtUUID, std::set< DtUUID > > myWaitingForAttachment
Definition: stateDataManager.h:668
Legion::SimulationDatabase * myUnpublishedDatabase
Definition: stateDataManager.h:587
tbb::atomic< makVrf::SimStateID > myNextSimStateID
Definition: stateDataManager.h:591
StateComponent(const StateComponent &orig)
Definition: stateDataManager.h:608
boost::signals2::signal< void(DtStateComponent *)> StateComponentAddedSignal
Definition: stateDataManager.h:360
const DtStateData * stateData(makVrf::SimStateID id) const
Definition: stateDataManager.h:269
std::set< unsigned long long > myAwaitingHandoff
Definition: stateDataManager.h:589
Definition: stateDataManager.h:55
boost::signals2::signal< void(DtStateData *)> signal_stateDataAdded
Definition: stateDataManager.h:534
boost::signals2::signal< void(const DtStateData *)> signal_aerodromeRemoved
Definition: stateDataManager.h:552
StateDataByLegionId myUnitData
Definition: stateDataManager.h:645
std::unordered_map< DtUUID, std::set< DtStateData * > > StateDataByUUID
Definition: stateDataManager.h:631
unsigned long long UInt64
Definition: stateDataTypes.h:17
void removeInstanceUpdatedCallback(Legion::SimulationDatabase *database, Legion::InstanceHandle instanceHandle, unsigned int callbackHandle)
Definition: stateDataManager.h:221
bool myOwnsDatabase
Definition: stateDataManager.h:649
void handleDataUpdated(const std::vector< typename Legion::SetView< T_Class >::InstanceUpdateData > &instanceList)
Definition: stateDataManager.h:157
boost::signals2::signal< void(DtStateData *)> signal_entityAdded
Convenience signals for when a data is added – something is considered a unit if it has a aggregateSt...
Definition: stateDataManager.h:542
bool updateOnlySpecifiedStateDataMode() const
Definition: stateDataManager.h:337
bool advancingFrame() const
Definition: stateDataManager.h:502
tbb::spin_mutex myHostsChangedThisFrameMutex
Definition: stateDataManager.h:666
const DtEmitterSystemStateComponent * emitterSystemSR
Definition: stateDataManager.h:58
boost::signals2::signal< void(unsigned long long, const DtUUID &oldUUID, const DtUUID &newUUID)> signal_uuidChanged
Definition: stateDataManager.h:554
Legion::SimulationDatabase * unpublishedDatabase()
Definition: stateDataManager.h:135
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: emitterSystemStateComponent.h:466
DtVrfCallbackQueue & jobProcessor()
Definition: stateDataManager.h:104
tbb::concurrent_queue< makVrf::SimStateID > myFreeStateIDs
Definition: stateDataManager.h:592
Definition: stateComponent.h:51
StateComponentAddedSignal & signalWhenStateComponentRemoved()
Definition: stateDataManager.h:388
bool myUpdateOnlySpecifiedStateDataMode
Definition: stateDataManager.h:690
StateData myStateData
Definition: stateDataManager.h:582
boost::signals2::signal< void(const DtStateData *)> signal_environmentalRemoved
Definition: stateDataManager.h:549
const Coordinate_System * coordinateSystem() const
Definition: stateDataManager.h:444
StateComponentAddedSignal & signalWhenStateComponentAdded(unsigned type)
Definition: stateDataManager.h:380
StateDataByUUID myStateDataByUUID
Definition: stateDataManager.h:632
CurrentFrameStatesList myCurrentFrameStates
Definition: stateDataManager.h:629
std::unordered_map< UInt64, DtStateData * > StateDataByLegionId
Definition: stateDataManager.h:449
const StateDataByLegionId & unitData() const
Definition: stateDataManager.h:455
DtVrfParameterDb * parameterDatabase() const
Definition: stateDataManager.h:99
boost::signals2::signal< void(const DtStateData *)> signal_unitRemoved
Definition: stateDataManager.h:546
boost::signals2::signal< void(const DtStateData *)> signal_initializeStateDataBeforeAdd
This signal is called before the data is fully added. Gives connectors a chace to add data into the n...
Definition: stateDataManager.h:533
static const SimStateID InvalidSimStateID
Definition: stateDataTypes.h:37
boost::signals2::signal< void(DtStateData *)> signal_environmentalAdded
Definition: stateDataManager.h:548
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
bool myRunFullyThreaded
Definition: stateDataManager.h:594
StateDataByLegionId myEnvironmentalData
Definition: stateDataManager.h:647
boost::signals2::signal< void(makVrf::SimStateID, UInt64)> signal_stateDataRemoved
Definition: stateDataManager.h:526
boost::function< bool(DtStateData *)> PreAddCallback
Definition: stateDataManager.h:88
DatabaseViews myDatabaseViews
Definition: stateDataManager.h:657
std::map< DtStateComponent *, ComponentRemoval > myComponentsToRemove
Definition: stateDataManager.h:688
StateDataByLegionId myEntityData
Definition: stateDataManager.h:644
boost::signals2::signal< void(DtStateComponent *)> signal_stateComponentRemoved
Definition: stateDataManager.h:557
std::map< Legion::InstanceHandle, Callbacks > InstanceUpdatedCallbacks
Definition: stateDataManager.h:660
std::map< Legion::SimulationDatabase *, Views > DatabaseViews
Definition: stateDataManager.h:656
boost::signals2::signal< void(DtStateData *, bool)> signal_prepareForHandoff
Definition: stateDataManager.h:538
std::map< DtUUID, SubordinateChangeSet > mySubordinatesChangedThisFrame
Definition: stateDataManager.h:674
boost::signals2::signal< void(DtStateData *)> signal_convertedToLocal
Definition: stateDataManager.h:560
boost::function< void(const std::vector< UInt32 > &)> DtInstanceUpdatedCallback
Definition: stateDataTypes.h:21
boost::shared_ptr< boost::signals2::connection > deleteConnection
Definition: stateDataManager.h:685
std::map< DtUUID, std::set< DtUUID > > myPendingSuperiorSet
Definition: stateDataManager.h:675
The DtEmitterSystemStateComponentList is a collection of emitter systems and the beams they represent...
Definition: emitterSystemStateComponent.h:25
tbb::interface5::unique_lock< ConditionMutex > ConditionLock
Definition: stateDataManager.h:694
Definition: stateDataManager.h:601
boost::signals2::signal< void(DtStateComponent *)> signal_stateComponentAdded
Definition: stateDataManager.h:556
tbb::spin_mutex myUpdateCallbackMutex
Definition: stateDataManager.h:653
const StateDataByLegionId & entityData() const
Definition: stateDataManager.h:450
Legion::SimulationDatabase * myDatabase
Definition: stateDataManager.h:586
DtVrfCallbackQueue myJobProcessor
Definition: stateDataManager.h:597
std::vector< std::pair< DtInstanceUpdatedCallback, unsigned int > > Callbacks
Definition: stateDataManager.h:659
std::vector< DtStateData * > myStateDataToBeDeleted
Definition: stateDataManager.h:679
bool myOwnsCoordinateSystem
Definition: stateDataManager.h:642
std::set< const DtFrameStateInterface * > CurrentFrameStates
Definition: stateDataManager.h:87
boost::signals2::signal< void(const DtStateData *)> signal_entityRemoved
Definition: stateDataManager.h:543
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73