VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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);
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 
70  virtual void addSpawnPoint(const DtUUID& templateUuid, const DtUUID& spawnPointUuid);
71 
72  virtual void removeSpawnPoint(const DtUUID& templateUuid, const DtUUID& spawnPointUuid);
73 
79  virtual void resetManagerTemplates(const DtRwSpawnDataList& templates);
80 
81  virtual void clearTemplates();
82 
83  bool templatesModified() const { return myTemplatesModified; }
84  virtual void clearTemplatesModified() { myTemplatesModified = false; }
85 
86 //****************************************************************************
88 //****************************************************************************
92  static void requestSpawnListCallback(DtSimMessage* msg, void* usr);
93  virtual void processRequestSpawnList(DtSimMessage* msg);
95 
99  virtual void sendSpawnListMessage(const DtSimulationAddress& recipient,
100  bool initialSend = false);
101 
105  static void addSinkPointCallback(DtSimMessage* msg, void* usr);
106  virtual void processAddSinkPoint(DtSimMessage* msg);
108 
111  static void requestSpawnDataCallback(DtSimMessage* msg, void* usr);
112  virtual void processRequestSpawnData(DtSimMessage* msg);
114 
117  static void updateSpawnTemplateCallback(DtSimMessage* msg, void* usr);
118  virtual void processUpdateSpawnTemplate(DtSimMessage* msg);
120 
123  static void createTemplateCallback(DtSimMessage* msg, void* usr);
124  virtual void processCreateTemplate(DtSimMessage* msg);
126 
129  static void deleteSpawnTemplateCallback(DtSimMessage* msg, void* usr);
130  virtual void processDeleteSpawnTemplate(DtSimMessage* msg);
132 
138  static void objectRemovedCallback(DtVrfObject *object, void *usr);
139  virtual void processObjectRemoved(DtVrfObject *object);
141 
142  virtual void renameSpawnPoint(DtVrfObject *spawnEntity, const DtString& oldTemplateName,
143  const DtString& newTemplateName);
144  virtual void renameSinkPoint(DtVrfObject *spawnEntity, const DtString& oldTemplateName,
145  const DtString& newTemplateName);
146 
147  virtual void removeSpawnTemplateAsParentOfSinkPoint(const DtUUID& templateUUID, const DtUUID& sinkPoint);
148  virtual void addSpawnTemplateAsParentOfSinkPoint(const DtUUID& templateUUID, const DtUUID& sinkPoint);
149 
150  virtual void upgradeTemplates(const DtRwSpawnDataList& templates);
151  virtual void removeNameMappings(const DtRwSpawnDataList& templates);
152  virtual void resolveUnmatchedSpawnPoints();
153 
154  virtual const DtRwSpawnDataList& templates();
155 
156  typedef void (*DtClearTemplateUUIDFunction)(void* userData);
157  typedef void (*DtRefreshSpawnDataFunction)(void* userData);
158 
159  virtual void addClearTemplateUUIDEntry(
160  DtClearTemplateUUIDFunction fcn, void* userData);
161  virtual void removeClearTemplateUUIDEntry(
162  DtClearTemplateUUIDFunction fcn, void* userData);
163 
164  virtual void addRefreshSpawnDataEntry(
165  DtRefreshSpawnDataFunction fcn, void* userData);
166  virtual void removeRefreshSpawnDataEntry(
167  DtRefreshSpawnDataFunction fcn, void* userData);
168 
169 protected:
171 
174 
177 
178  boost::unordered_map<DtRwSpawnData*, DtString> myCurrentUUIDsOnImport;
180 
181  typedef boost::unordered_map<DtUUID, DtUUID> PointByTemplate;
184 };

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)