11 #include <tbb/spin_rw_mutex.h>
12 #include <boost/signals2.hpp>
15 class DtEntityIdentifier;
19 class DtFrameStateInterface;
20 class DtStateDataWrapper;
38 template <
typename T_BaseClass>
85 mutable boost::signals2::signal<void (const DtUUID& oldUUID, const DtUUID& newUUID)>
signal_uuidChanged;
93 using SimObjects = std::map<unsigned long long, DtSimObjectReferenceTemplate<T_BaseClass>>;
117 virtual void clear();
121 virtual bool has(
unsigned long long)
const;
126 std::set<const DtFrameStateInterface*> results;
132 for(
const auto& fsi : comps)
156 virtual std::vector<DtSimObjectReferenceTemplate<T_BaseClass>>
objectsOfType(
const DtEntityType&)
const;
192 typedef std::map<DtString, DtSimObjectReferenceTemplate<T_BaseClass>>
AwaitingMap;
214 std::map<unsigned long long, DtUUID>::const_iterator iter =
deletedUUIDs.find(
id);
247 #include "simObjectManagerTemplate.inl"
UUID is a unique ID wrapper class.
Definition: uuid.h:59
DtSimObjectManagerTemplate & operator=(const DtSimObjectManagerTemplate &)
StateComponentAddedSignal & signalWhenStateComponentAdded()
Definition: simObjectManagerTemplate.h:145
AwaitingMap myAwaitingMap
Definition: simObjectManagerTemplate.h:193
std::vector< DtStateDataManager * > myStateDataManagerOrder
Definition: simObjectManagerTemplate.h:187
SimObjects mySimObjects
Definition: simObjectManagerTemplate.h:190
SimObjects myAdded
Definition: simObjectManagerTemplate.h:195
virtual ~DtSimObjectManagerTemplate()
DTOR.
virtual DtSimObjectReferenceTemplate< T_BaseClass > getOrCreateSimObjectReference(DtStateData *, bool createOnlyIfNotPresent=false) const
If createOnlyIfNotPresent is true, will create and return, but not add to the mySimObjects list...
SimStateID stateId() const
The stateId() is the index into internal vectors that this state data is in the position of...
Definition: stateData.h:792
boost::signals2::connection objectRenamedConnection
Definition: simObjectManagerTemplate.h:239
boost::signals2::signal< void()> signal_advancedFrame
Signal sent when frame is advanced.
Definition: simObjectManagerTemplate.h:76
virtual DtSimObjectReferenceTemplate< T_BaseClass > lookup(const DtUUID &) const
Find a DtSimObject by DtUUID.
virtual void slot_uuidUpgradedTo(const DtUUID &oldUUID, const DtUUID &newUUID)
Called, when as part of an import process, a UUID is upgraded from an old to a new version...
Contains the DtUUID class declaration.
DeletedObjects myDeleted
Definition: simObjectManagerTemplate.h:234
virtual void discoveredObjectReference(const DtString &awaiting)
void attachStateDataManager(DtStateDataManager *)
Attach an additional state data manager that might keep track of a separate set of objects...
void track(const DtStateData *so, DtSimObjectReferenceTemplate< T_BaseClass > ref)
Definition: simObjectManagerTemplate.h:224
DtStateDataManager * myStateDataManager
Definition: simObjectManagerTemplate.h:177
boost::signals2::scoped_connection myUUIDUpgradedConnection
Definition: simObjectManagerTemplate.h:179
virtual DtStateData * stateDataForUniqueId(unsigned long long) const
virtual void advanceFrame()
Send out an added signal for all objects added and advanced since the last frame began.
SimObjects simObjects()
Definition: simObjectManagerTemplate.h:97
const DtUUID & uuid() const
bool isDeleted(const DtUUID &uuid) const
Definition: simObjectManagerTemplate.h:202
boost::signals2::connection objectDeletedConnection
Definition: simObjectManagerTemplate.h:238
StateComponentSignal & signalWhenStateComponentAdded()
Definition: stateDataManager.h:391
boost::signals2::signal< void(DtSimObjectReferenceTemplate< T_BaseClass >)> signal_simObjectDeleted
Signal sent when a new DtSimObjectReferenceTemplate<T_BaseClass> has been deleted.
Definition: simObjectManagerTemplate.h:82
virtual DtStateData * stateDataFor(const DtUUID &) const
const CurrentFrameStates & stateComponents() const
Definition: stateDataManager.h:417
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
boost::signals2::signal< void(DtSimObjectReferenceTemplate< T_BaseClass >, const DtString &oldText, const DtString &newText)> signal_simObjectRenamed
Signal sent when an objects name has changed.
Definition: simObjectManagerTemplate.h:91
virtual void clear()
Clears sim objects and awaiting map.
virtual void referenceAdded(DtSimObjectReferenceTemplate< T_BaseClass > ref)
virtual void init()
Any initialization that wants to be done.
const SimObjects & simObjects() const
Definition: simObjectManagerTemplate.h:102
virtual void simObjectDeleted(const DtStateDataWrapper *)
CurrentFrameStates stateComponents() const
Definition: simObjectManagerTemplate.h:124
This class is the central access point for all current-frame state of all objects in the simulation i...
Definition: simObjectManagerTemplate.h:39
tbb::spin_rw_mutex myMutex
Definition: simObjectManagerTemplate.h:178
boost::signals2::signal< void(DtStateComponent *)> StateComponentRemovedSignal
Definition: simObjectManagerTemplate.h:144
virtual void objectRenamed(const DtStateDataWrapper *, const DtString &oldName, const DtString &newName)
std::map< DtUUID, DtSimObjectReferenceTemplate< T_BaseClass > > deletedObjects
Definition: simObjectManagerTemplate.h:199
virtual void tick()
Ticks this manager and performs any operations it needs to.
The DtSimObjectReferenceTemplate is a shared pointer that can be used amongst many object for access ...
Definition: simObjectReferenceTemplate.h:27
bool isDeleted(unsigned long long id) const
Definition: simObjectManagerTemplate.h:212
std::map< DtStateDataManager *, StateDataManagerInformation > myStateDataManagers
Definition: simObjectManagerTemplate.h:188
std::map< unsigned long long, DtSimObjectReferenceTemplate< DtSimObject >> SimObjects
Definition: simObjectManagerTemplate.h:93
virtual void stateDataDeleted(const DtStateData *)
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: stateDataWrapper.h:49
Definition: simObjectManagerTemplate.h:236
virtual bool has(const DtUUID &) const
Returns true if this manager has the UUID in the mySimObjects list.
DtSimObjectManagerTemplate()
boost::signals2::signal< void(DtStateComponent *)> StateComponentAddedSignal
Definition: simObjectManagerTemplate.h:143
virtual std::vector< DtSimObjectReferenceTemplate< T_BaseClass > > objectsOfType(const DtEntityType &) const
StateComponentSignal & signalWhenStateComponentRemoved()
Definition: stateDataManager.h:404
std::set< const DtFrameStateInterface * > CurrentFrameStates
Definition: simObjectManagerTemplate.h:123
std::map< unsigned long long, Connections > SimObjectConnections
Definition: simObjectManagerTemplate.h:242
boost::signals2::signal< void(const DtUUID &oldUUID, const DtUUID &newUUID)> signal_uuidUpgradedTo
Signal when a UUID is remapped. Called after awaiting list has been changed.
Definition: simObjectManagerTemplate.h:88
void clear()
Definition: simObjectManagerTemplate.h:231
virtual void uuidChanged(unsigned long long, const DtUUID &oldUUID, const DtUUID &newUUID)
std::map< DtString, DtSimObjectReferenceTemplate< T_BaseClass > > AwaitingMap
Definition: simObjectManagerTemplate.h:192
std::map< unsigned long long, DtUUID > deletedUUIDs
Definition: simObjectManagerTemplate.h:200
Definition: simObjectManagerTemplate.h:197
virtual DtStateDataWrapper * createSimObject(DtStateData *sd) const =0
UInt64 legionGlobalId() const
ID that is common to all objects that represent this data.
SimObjectConnections mySimObjectConnections
Definition: simObjectManagerTemplate.h:243
StateComponentAddedSignal & signalWhenStateComponentRemoved()
Definition: simObjectManagerTemplate.h:149
boost::signals2::signal< void(DtSimObjectReferenceTemplate< T_BaseClass >)> signal_simObjectAdded
Signal sent when a new DtSimObjectReferenceTemplate<T_BaseClass> has been added.
Definition: simObjectManagerTemplate.h:79
void detachStateDataManager(DtStateDataManager *)
virtual void simObjectAdded(DtStateData *)
bool isDeleted(const DtUUID &) const
If this is in the list but is marked as deleted, returns true.
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73
boost::signals2::signal< void(const DtUUID &oldUUID, const DtUUID &newUUID)> signal_uuidChanged
Signal when UUID is changed. Called before the map is updated with the new uuid.
Definition: simObjectManagerTemplate.h:85