15 #include <boost/unordered_map.hpp>
19 class DtRwSpawnTemplateList;
34 virtual bool loadTemplates(
const DtFilename&
filename,
bool sendUpdate =
true);
41 virtual void updateSpawnSinkTemplates(
51 static void preScenarioLoadCallback(
DtScenario& scenario,
56 static void preScenarioRewindCallback(
void* usrData);
59 static void preScenarioImportCallback(
DtScenario& scenario,
61 virtual void preScenarioImport(
DtScenario& scenario);
64 static void postScenarioImportCallback(
const DtScenario& scenario,
66 virtual void postScenarioImport(
const DtScenario& scenario);
68 virtual DtUUID uuidForTemplateName(
const DtString& templateName)
const;
71 virtual bool addSpawnPoint(
const DtUUID& templateUuid,
const DtUUID& spawnPointUuid);
73 virtual void removeSpawnPoint(
const DtUUID& templateUuid,
const DtUUID& spawnPointUuid);
80 virtual void resetManagerTemplates(
const DtRwSpawnDataList& templates,
bool sendUpdates =
true);
82 virtual void clearTemplates();
90 static void requestSpawnListCallback(
DtSimMessage* msg,
void* usr);
98 static void spawnTemplateListCallback(
DtSimMessage* msg,
void* usr);
99 virtual void preocesSpawnTemplateList(
DtSimMessage* msg);
105 virtual void sendSpawnListMessage(
const DtSimulationAddress& recipient,
106 bool initialSend =
false);
111 static void addSinkPointCallback(
DtSimMessage* msg,
void* usr);
117 static void requestSpawnDataCallback(
DtSimMessage* msg,
void* usr);
118 virtual void processRequestSpawnData(
DtSimMessage* msg);
123 static void updateSpawnTemplateCallback(
DtSimMessage* msg,
void* usr);
124 virtual void processUpdateSpawnTemplate(
DtSimMessage* msg);
129 static void createTemplateCallback(
DtSimMessage* msg,
void* usr);
135 static void deleteSpawnTemplateCallback(
DtSimMessage* msg,
void* usr);
136 virtual void processDeleteSpawnTemplate(
DtSimMessage* msg);
144 static void objectRemovedCallback(
DtVrfObject *
object,
void *usr);
145 virtual void processObjectRemoved(
DtVrfObject *
object);
151 static void addSpawnPointCallback(
DtVrfObject *
object,
void *usr);
152 virtual void processAddSpawnPoint(
DtVrfObject *
object);
158 static void addSinkPointCallback(
DtVrfObject *
object,
void *usr);
159 virtual void processAddSinkPoint(
DtVrfObject *
object);
167 virtual void removeSpawnTemplateAsParentOfSinkPoint(
const DtUUID& templateUUID,
const DtUUID& sinkPoint);
168 virtual void addSpawnTemplateAsParentOfSinkPoint(
const DtUUID& templateUUID,
const DtUUID& sinkPoint);
170 virtual void upgradeTemplates(
const DtRwSpawnDataList& templates,
bool andRename =
false);
172 virtual void resolveUnmatchedSpawnPoints();
176 typedef void (*DtClearTemplateUUIDFunction)(
void* userData);
177 typedef void (*DtRefreshSpawnDataFunction)(
void* userData);
179 virtual void addClearTemplateUUIDEntry(
180 DtClearTemplateUUIDFunction fcn,
void* userData);
181 virtual void removeClearTemplateUUIDEntry(
182 DtClearTemplateUUIDFunction fcn,
void* userData);
184 virtual void addRefreshSpawnDataEntry(
185 DtRefreshSpawnDataFunction fcn,
void* userData);
186 virtual void removeRefreshSpawnDataEntry(
187 DtRefreshSpawnDataFunction fcn,
void* userData);
190 virtual DtUUID uuidBasedOnName(
const DtList& templateList,
const DtString&)
const;