VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
spawnSinkManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
13 #include <vrfobjcore/vrfObject.h>
15 #include <boost/unordered_map.hpp>
16 
17 class DtSimManager;
18 class DtScenario;
19 class DtRwSpawnTemplateList;
20 
21 //****************************************************************************
23 {
24 public:
26  DtSpawnSinkManager(DtSimManager* simManager);
27 
29  virtual ~DtSpawnSinkManager();
30 
31  virtual bool init();
32 
34  virtual bool loadTemplates(const DtFilename& filename, bool sendUpdate = true);
35 
37  virtual const DtRwSpawnDataList* spawnTemplates() const;
38 
39  virtual DtRwSpawnData* findSpawnDataByUUID(const DtUUID& uuid);
40 
41  virtual void updateSpawnSinkTemplates(
42  const DtRwSpawnDataList& spawnDataList);
43 
44  //****************************************************************************
46  //****************************************************************************
51  static void preScenarioLoadCallback(DtScenario& scenario,
52  void* usrData);
53 
56  static void preScenarioRewindCallback(void* usrData);
57 
59  static void preScenarioImportCallback(DtScenario& scenario,
60  void* usrData);
61  virtual void preScenarioImport(DtScenario& scenario);
62 
64  static void postScenarioImportCallback(const DtScenario& scenario,
65  void* usrData);
66  virtual void postScenarioImport(const DtScenario& scenario);
67 
68  virtual DtUUID uuidForTemplateName(const DtString& templateName) const;
69 
71  virtual bool addSpawnPoint(const DtUUID& templateUuid, const DtUUID& spawnPointUuid);
72 
73  virtual void removeSpawnPoint(const DtUUID& templateUuid, const DtUUID& spawnPointUuid);
74 
80  virtual void resetManagerTemplates(const DtRwSpawnDataList& templates, bool sendUpdates = true);
81 
82  virtual void clearTemplates();
83 
84 //****************************************************************************
86 //****************************************************************************
90  static void requestSpawnListCallback(DtSimMessage* msg, void* usr);
91  virtual void processRequestSpawnList(DtSimMessage* msg);
93 
98  static void spawnTemplateListCallback(DtSimMessage* msg, void* usr);
99  virtual void preocesSpawnTemplateList(DtSimMessage* msg);
101 
105  virtual void sendSpawnListMessage(const DtSimulationAddress& recipient,
106  bool initialSend = false);
107 
111  static void addSinkPointCallback(DtSimMessage* msg, void* usr);
112  virtual void processAddSinkPoint(DtSimMessage* msg);
114 
117  static void requestSpawnDataCallback(DtSimMessage* msg, void* usr);
118  virtual void processRequestSpawnData(DtSimMessage* msg);
120 
123  static void updateSpawnTemplateCallback(DtSimMessage* msg, void* usr);
124  virtual void processUpdateSpawnTemplate(DtSimMessage* msg);
126 
129  static void createTemplateCallback(DtSimMessage* msg, void* usr);
130  virtual void processCreateTemplate(DtSimMessage* msg);
132 
135  static void deleteSpawnTemplateCallback(DtSimMessage* msg, void* usr);
136  virtual void processDeleteSpawnTemplate(DtSimMessage* msg);
138 
144  static void objectRemovedCallback(DtVrfObject *object, void *usr);
145  virtual void processObjectRemoved(DtVrfObject *object);
147 
151  static void addSpawnPointCallback(DtVrfObject *object, void *usr);
152  virtual void processAddSpawnPoint(DtVrfObject *object);
154 
158  static void addSinkPointCallback(DtVrfObject *object, void *usr);
159  virtual void processAddSinkPoint(DtVrfObject *object);
161 
162  virtual void renameSpawnPoint(DtVrfObject *spawnEntity, const DtString& oldTemplateName,
163  const DtString& newTemplateName);
164  virtual void renameSinkPoint(DtVrfObject *spawnEntity, const DtString& oldTemplateName,
165  const DtString& newTemplateName);
166 
167  virtual void removeSpawnTemplateAsParentOfSinkPoint(const DtUUID& templateUUID, const DtUUID& sinkPoint);
168  virtual void addSpawnTemplateAsParentOfSinkPoint(const DtUUID& templateUUID, const DtUUID& sinkPoint);
169 
170  virtual void upgradeTemplates(const DtRwSpawnDataList& templates, bool andRename = false);
171  virtual void removeNameMappings(const DtRwSpawnDataList& templates);
172  virtual void resolveUnmatchedSpawnPoints();
173 
174  virtual const DtRwSpawnDataList& templates();
175 
176  typedef void (*DtClearTemplateUUIDFunction)(void* userData);
177  typedef void (*DtRefreshSpawnDataFunction)(void* userData);
178 
179  virtual void addClearTemplateUUIDEntry(
180  DtClearTemplateUUIDFunction fcn, void* userData);
181  virtual void removeClearTemplateUUIDEntry(
182  DtClearTemplateUUIDFunction fcn, void* userData);
183 
184  virtual void addRefreshSpawnDataEntry(
185  DtRefreshSpawnDataFunction fcn, void* userData);
186  virtual void removeRefreshSpawnDataEntry(
187  DtRefreshSpawnDataFunction fcn, void* userData);
188 
190  virtual DtUUID uuidBasedOnName(const DtList& templateList, const DtString&) const;
191 
192 protected:
194 
197 
200 
201  boost::unordered_map<DtRwSpawnData*, DtString> myCurrentUUIDsOnImport;
203 
204  typedef boost::unordered_map<DtUUID, DtUUID> PointByTemplate;
207 
208  typedef std::map<DtString, DtUUID> WaitingForSinkPoints;
210 
211  std::map<DtString, DtString> myNewSpawnNameToOldSpawnNameMap;
212 };

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)