VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes
DtSpawnSinkManager Class Reference

Manages all of the spawn points, sink points, and spawn templates in the current scenario.

Public Types

typedef void(* DtClearTemplateUUIDFunction )(void *userData)
 
typedef void(* DtRefreshSpawnDataFunction )(void *userData)
 

Public Member Functions

 DtSpawnSinkManager (DtSimulationServices *simManager, DtLocalObjectManager *)
 
virtual ~DtSpawnSinkManager ()
 
virtual bool init ()
 
virtual bool loadTemplates (const DtFilename &filename, bool sendUpdate=true)
 
virtual const DtRwSpawnDataListspawnTemplates () const
 
virtual DtRwSpawnDatafindSpawnDataByUUID (const DtUUID &uuid)
 
virtual void updateSpawnSinkTemplates (const DtRwSpawnDataList &spawnDataList)
 
virtual void preScenarioImport (DtScenario &scenario)
 
virtual void postScenarioImport (const DtScenario &scenario)
 
virtual DtUUID uuidForTemplateName (const DtString &templateName) const
 
virtual bool addSpawnPoint (const DtUUID &templateUuid, const DtUUID &spawnPointUuid)
 
virtual void removeSpawnPoint (const DtUUID &templateUuid, const DtUUID &spawnPointUuid)
 
virtual void resetManagerTemplates (const DtRwSpawnDataList &templates, const DtFilename &templateFilename, bool sendUpdates=true)
 
virtual void clearTemplates ()
 
virtual void sendSpawnListMessage (const DtSimulationAddress &recipient, bool initialSend=false)
 
virtual void renameSpawnPoint (DtLocalObject *spawnEntity, const DtString &oldTemplateName, const DtString &newTemplateName)
 
virtual void renameSinkPoint (DtLocalObject *spawnEntity, const DtString &oldTemplateName, const DtString &newTemplateName)
 
virtual void removeSpawnTemplateAsParentOfSinkPoint (const DtUUID &templateUUID, const DtUUID &sinkPoint)
 
virtual void addSpawnTemplateAsParentOfSinkPoint (const DtUUID &templateUUID, const DtUUID &sinkPoint)
 
virtual void upgradeTemplates (const DtRwSpawnDataList &templates, bool andRename=false)
 
virtual void removeNameMappings (const DtRwSpawnDataList &templates)
 
virtual void resolveUnmatchedSpawnPoints ()
 
virtual const DtRwSpawnDataListtemplates ()
 
virtual void addClearTemplateUUIDEntry (DtClearTemplateUUIDFunction fcn, void *userData)
 
virtual void removeClearTemplateUUIDEntry (DtClearTemplateUUIDFunction fcn, void *userData)
 
virtual void addRefreshSpawnDataEntry (DtRefreshSpawnDataFunction fcn, void *userData)
 
virtual void removeRefreshSpawnDataEntry (DtRefreshSpawnDataFunction fcn, void *userData)
 
virtual DtUUID uuidBasedOnName (const DtList &templateList, const DtString &) const
 
virtual void processSimObjectDeleted (DtSimObjectReference ref)
 
virtual void processAddSpawnPoint (const DtSimObject *object)
 
virtual void addSpawnSinkPoint (DtSimObjectReference ref)
 

Static Public Member Functions

static void preScenarioLoadCallback (DtScenario &scenario, void *usrData)
 
static void preScenarioRewindCallback (void *usrData)
 
static void preScenarioImportCallback (DtScenario &scenario, void *usrData)
 
static void postScenarioImportCallback (const DtScenario &scenario, void *usrData)
 

Protected Types

typedef boost::unordered_map
< DtUUID, DtUUID
PointByTemplate
 
typedef std::map< DtString,
DtUUID
WaitingForSinkPoints
 

Protected Attributes

DtSimulationServicesmySimulationServices
 
DtLocalObjectManagermyObjectManager
 
DtRwSpawnDataList myTemplates
 
DtRwSpawnDataList myCurrentTemplates
 
DtNoArgumentCallbackList myClearTemplatesCallbackList
 
DtNoArgumentCallbackList myRefreshSpawnDataCallbackList
 
boost::unordered_map
< DtRwSpawnData *, DtString
myCurrentUUIDsOnImport
 
bool myTemplatesModified
 
PointByTemplate mySpawnPoints
 
PointByTemplate mySinkPoints
 
WaitingForSinkPoints myWaitingForSinkPoints
 
std::map< DtString, DtStringmyNewSpawnNameToOldSpawnNameMap
 
boost::signals2::scoped_connection mySimObjectAddedConnection
 
boost::signals2::scoped_connection mySimObjectDeletedConnection
 
tbb::mutex myMutex
 
virtual void processRequestSpawnList (DtSimMessage *msg)
 
static void requestSpawnListCallback (DtSimMessage *msg, void *usr)
 
virtual void preocesSpawnTemplateList (DtSimMessage *msg)
 
static void spawnTemplateListCallback (DtSimMessage *msg, void *usr)
 
virtual void processAddSinkPoint (DtSimMessage *msg)
 
static void addSinkPointCallback (DtSimMessage *msg, void *usr)
 
virtual void processRequestSpawnData (DtSimMessage *msg)
 
static void requestSpawnDataCallback (DtSimMessage *msg, void *usr)
 
virtual void processUpdateSpawnTemplate (DtSimMessage *msg)
 
static void updateSpawnTemplateCallback (DtSimMessage *msg, void *usr)
 
virtual void processCreateTemplate (DtSimMessage *msg)
 
static void createTemplateCallback (DtSimMessage *msg, void *usr)
 
virtual void processDeleteSpawnTemplate (DtSimMessage *msg)
 
static void deleteSpawnTemplateCallback (DtSimMessage *msg, void *usr)
 

Member Typedef Documentation

typedef void(* DtSpawnSinkManager::DtClearTemplateUUIDFunction)(void *userData)
typedef void(* DtSpawnSinkManager::DtRefreshSpawnDataFunction)(void *userData)
typedef boost::unordered_map<DtUUID, DtUUID> DtSpawnSinkManager::PointByTemplate
protected

Constructor & Destructor Documentation

DtSpawnSinkManager::DtSpawnSinkManager ( DtSimulationServices simManager,
DtLocalObjectManager  
)

constructor

virtual DtSpawnSinkManager::~DtSpawnSinkManager ( )
virtual

destructor

Member Function Documentation

virtual bool DtSpawnSinkManager::init ( )
virtual
virtual bool DtSpawnSinkManager::loadTemplates ( const DtFilename &  filename,
bool  sendUpdate = true 
)
virtual

Load spawn templates from scenario file.

virtual const DtRwSpawnDataList* DtSpawnSinkManager::spawnTemplates ( ) const
virtual

Accessor for spawn template list.

virtual DtRwSpawnData* DtSpawnSinkManager::findSpawnDataByUUID ( const DtUUID uuid)
virtual
virtual void DtSpawnSinkManager::updateSpawnSinkTemplates ( const DtRwSpawnDataList spawnDataList)
virtual
static void DtSpawnSinkManager::preScenarioLoadCallback ( DtScenario scenario,
void *  usrData 
)
static

Functions to load and save data to scenario files.

Callback function to initialize spawn templates in the manager from the scenario extras manager, which read them in. This copy is performed after scenario load, when the scenarios extras manager has finished.

static void DtSpawnSinkManager::preScenarioRewindCallback ( void *  usrData)
static

As above, but called after a rewind operation to reset the templates in this manager.

static void DtSpawnSinkManager::preScenarioImportCallback ( DtScenario scenario,
void *  usrData 
)
static

When imported, read the extras file to get the scenario templates and rework ids for mappings.

virtual void DtSpawnSinkManager::preScenarioImport ( DtScenario scenario)
virtual
static void DtSpawnSinkManager::postScenarioImportCallback ( const DtScenario scenario,
void *  usrData 
)
static

Add in new templates to the current list.

virtual void DtSpawnSinkManager::postScenarioImport ( const DtScenario scenario)
virtual
virtual DtUUID DtSpawnSinkManager::uuidForTemplateName ( const DtString templateName) const
virtual
virtual bool DtSpawnSinkManager::addSpawnPoint ( const DtUUID templateUuid,
const DtUUID spawnPointUuid 
)
virtual

Returns true if added to the template.

virtual void DtSpawnSinkManager::removeSpawnPoint ( const DtUUID templateUuid,
const DtUUID spawnPointUuid 
)
virtual
virtual void DtSpawnSinkManager::resetManagerTemplates ( const DtRwSpawnDataList templates,
const DtFilename &  templateFilename,
bool  sendUpdates = true 
)
virtual

This function is called by both the postScenarioLoad and postScenarioRewind callbacks to reset the templates in the manager. Existing templates are deleted, and then templates are copied from the scenario extras manager. If there are none, then the default templates are read from the settings file.

virtual void DtSpawnSinkManager::clearTemplates ( )
virtual
static void DtSpawnSinkManager::requestSpawnListCallback ( DtSimMessage msg,
void *  usr 
)
static

Message handlers.

Respond to a request for the names and descriptions of the templates in this manager's list.

virtual void DtSpawnSinkManager::processRequestSpawnList ( DtSimMessage msg)
virtual

Message handlers.

Respond to a request for the names and descriptions of the templates in this manager's list.

static void DtSpawnSinkManager::spawnTemplateListCallback ( DtSimMessage msg,
void *  usr 
)
static

When a template list is received (and we are not the sender) and this is an initial send, replace the template list with the supplied list. This is so back-ends can maintain sync with the template list.

virtual void DtSpawnSinkManager::preocesSpawnTemplateList ( DtSimMessage msg)
virtual

When a template list is received (and we are not the sender) and this is an initial send, replace the template list with the supplied list. This is so back-ends can maintain sync with the template list.

virtual void DtSpawnSinkManager::sendSpawnListMessage ( const DtSimulationAddress &  recipient,
bool  initialSend = false 
)
virtual

Sends a spawn list message (i.e., the names and descriptions of all the templates in the myTempate list) to the indicated address. Used in Request Spawn List processing.

static void DtSpawnSinkManager::addSinkPointCallback ( DtSimMessage msg,
void *  usr 
)
static

Respond to a request to add a sink point (by name) to a spawn template.

virtual void DtSpawnSinkManager::processAddSinkPoint ( DtSimMessage msg)
virtual

Respond to a request to add a sink point (by name) to a spawn template.

static void DtSpawnSinkManager::requestSpawnDataCallback ( DtSimMessage msg,
void *  usr 
)
static

Respond to a request to send the spawn data for a given template.

virtual void DtSpawnSinkManager::processRequestSpawnData ( DtSimMessage msg)
virtual

Respond to a request to send the spawn data for a given template.

static void DtSpawnSinkManager::updateSpawnTemplateCallback ( DtSimMessage msg,
void *  usr 
)
static

Respond to a request to update the data in a template.

virtual void DtSpawnSinkManager::processUpdateSpawnTemplate ( DtSimMessage msg)
virtual

Respond to a request to update the data in a template.

static void DtSpawnSinkManager::createTemplateCallback ( DtSimMessage msg,
void *  usr 
)
static

Respond to a request to create a template.

virtual void DtSpawnSinkManager::processCreateTemplate ( DtSimMessage msg)
virtual

Respond to a request to create a template.

static void DtSpawnSinkManager::deleteSpawnTemplateCallback ( DtSimMessage msg,
void *  usr 
)
static

Respond to a request to delete a template.

virtual void DtSpawnSinkManager::processDeleteSpawnTemplate ( DtSimMessage msg)
virtual

Respond to a request to delete a template.

virtual void DtSpawnSinkManager::processSimObjectDeleted ( DtSimObjectReference  ref)
virtual

Respond to a notification that an object has been removed. The callback function is registered along with an object type code for sink points. If the sink point is on one of the template lists, it is removed from that list.

virtual void DtSpawnSinkManager::processAddSpawnPoint ( const DtSimObject object)
virtual

Called when spawn point is added. If not local look up template and add to that. If template does not exist, wait for it.

virtual void DtSpawnSinkManager::addSpawnSinkPoint ( DtSimObjectReference  ref)
virtual

Respond to any object added. If we are waiting for this sink point, then process.

virtual void DtSpawnSinkManager::renameSpawnPoint ( DtLocalObject spawnEntity,
const DtString oldTemplateName,
const DtString newTemplateName 
)
virtual
virtual void DtSpawnSinkManager::renameSinkPoint ( DtLocalObject spawnEntity,
const DtString oldTemplateName,
const DtString newTemplateName 
)
virtual
virtual void DtSpawnSinkManager::removeSpawnTemplateAsParentOfSinkPoint ( const DtUUID templateUUID,
const DtUUID sinkPoint 
)
virtual
virtual void DtSpawnSinkManager::addSpawnTemplateAsParentOfSinkPoint ( const DtUUID templateUUID,
const DtUUID sinkPoint 
)
virtual
virtual void DtSpawnSinkManager::upgradeTemplates ( const DtRwSpawnDataList templates,
bool  andRename = false 
)
virtual
virtual void DtSpawnSinkManager::removeNameMappings ( const DtRwSpawnDataList templates)
virtual
virtual void DtSpawnSinkManager::resolveUnmatchedSpawnPoints ( )
virtual
virtual const DtRwSpawnDataList& DtSpawnSinkManager::templates ( )
virtual
virtual void DtSpawnSinkManager::addClearTemplateUUIDEntry ( DtClearTemplateUUIDFunction  fcn,
void *  userData 
)
virtual
virtual void DtSpawnSinkManager::removeClearTemplateUUIDEntry ( DtClearTemplateUUIDFunction  fcn,
void *  userData 
)
virtual
virtual void DtSpawnSinkManager::addRefreshSpawnDataEntry ( DtRefreshSpawnDataFunction  fcn,
void *  userData 
)
virtual
virtual void DtSpawnSinkManager::removeRefreshSpawnDataEntry ( DtRefreshSpawnDataFunction  fcn,
void *  userData 
)
virtual
virtual DtUUID DtSpawnSinkManager::uuidBasedOnName ( const DtList &  templateList,
const DtString  
) const
virtual

Create a UUID based on the name. This will not be random as this needs to be coordinated on multiple back-ends.

Member Data Documentation

DtSimulationServices* DtSpawnSinkManager::mySimulationServices
protected
DtLocalObjectManager* DtSpawnSinkManager::myObjectManager
protected
DtRwSpawnDataList DtSpawnSinkManager::myTemplates
protected
DtRwSpawnDataList DtSpawnSinkManager::myCurrentTemplates
protected
DtNoArgumentCallbackList DtSpawnSinkManager::myClearTemplatesCallbackList
protected
DtNoArgumentCallbackList DtSpawnSinkManager::myRefreshSpawnDataCallbackList
protected
boost::unordered_map<DtRwSpawnData*, DtString> DtSpawnSinkManager::myCurrentUUIDsOnImport
protected
bool DtSpawnSinkManager::myTemplatesModified
protected
PointByTemplate DtSpawnSinkManager::mySpawnPoints
protected
PointByTemplate DtSpawnSinkManager::mySinkPoints
protected
WaitingForSinkPoints DtSpawnSinkManager::myWaitingForSinkPoints
protected
std::map<DtString, DtString> DtSpawnSinkManager::myNewSpawnNameToOldSpawnNameMap
protected
boost::signals2::scoped_connection DtSpawnSinkManager::mySimObjectAddedConnection
protected
boost::signals2::scoped_connection DtSpawnSinkManager::mySimObjectDeletedConnection
protected
tbb::mutex DtSpawnSinkManager::myMutex
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)