VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtModelDefinitionManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtModelDefinitionManager.h,v $ $Revision: 1.16 $ $State: Exp $
7 ******************************************************************************/
8 
11 
12 #pragma once
13 
16 #include <string>
17 #include <boost/signal.hpp>
18 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtModelDefinitionManagerSignaler;
23  class DtModelDefinitionBackup;
24  class DtModelDefinitionManager;
25 
30  {
31  public:
34 
35  protected:
38  virtual void restore(const DtSettingsBackup* from);
39 
42  virtual std::string backupClassType() const;
43  virtual std::string backupName() const;
44 
47  virtual DtSettingsBackup* create() const;
48 
51  virtual void write(boost::archive::xml_oarchive& ar);
52 
55  virtual void read(boost::archive::xml_iarchive& ar);
56 
57  const DtModelDefinitionManager* restoredManager() const
58  {
59  return myRestoredManager;
60  }
61 
62  protected:
66  };
67 
73  {
74  public:
76 
77  typedef std::map<std::string,DtModelDefinition> DefinitionMap;
78 
80  virtual ~DtModelDefinitionManager();
81 
83  virtual void loadDefinitions();
84 
86  virtual void saveDefinitions();
87  virtual void saveDefinitions(const std::string&);
88 
92  virtual void addDefinition(const DtModelDefinition& definition, bool autoSave = true);
93 
97  virtual void destroyDefinition(const DtModelDefinition& def);
98 
102  DtModelDefinition* findDefinition(const std::string& modelName) const;
103 
105  const DefinitionMap& definitions() const;
106  DefinitionMap& definitions();
107 
109  const std::string& modelFilename() const;
110 
112  void setModelFilename(const std::string& extension);
113 
115  bool modelInstancingEnabled() const;
116 
118  void setModelInstancingEnabled(bool enabled);
119 
121  void clearModelInstancingCache();
122 
124  void clear();
125 
129  virtual void merge(const DtModelDefinitionManager&);
130 
136  virtual bool loadModelDefinitions(const std::string& filename, bool merge = true);
137 
142  virtual bool loadModelDefinition(const std::string& filename);
143 
146  virtual bool exportToFile(const std::vector<std::string>& defs, const std::string& filename) const;
147 
149  virtual bool schemaInUse(const std::string&) const;
150 
152  virtual bool schemaInUse(const std::string&, std::vector<std::string>&) const;
153 
155  virtual void backup();
156 
157  const DtSettingsBackup* settingsBackup() const
158  {
159  return myBackup;
160  }
161 
162  DtSettingsBackup* settingsBackup()
163  {
164  return myBackup;
165  }
166 
168  virtual DtModelDefinitionManager& operator=(const DtModelDefinitionManager&);
169 
171  void setAutoSave(bool b)
172  {
173  myAutoSave = b;
174  }
175 
176  bool autoSave() const
177  {
178  return myAutoSave;
179  }
180 
182  virtual void removeNonPersistentItems();
183 
184  protected:
185 
187 
191 
192  protected:
193  friend class boost::serialization::access;
194 
195  template <typename Archive>
196  void serialize(Archive& ar,unsigned int version)
197  {
198  ar & BOOST_SERIALIZATION_NVP(myDefinitions);
199  }
200 
201  protected:
202 
205  std::string myModelFileName;
207 
211 
212  private:
213  bool loadModelDefinitionsFromXML(const std::string& filename, bool merge);
214  bool loadModelDefinitionsFromBinary(const std::string& filename, bool merge);
215  };
216 
220  {
221  public:
222 
224  static DtModelDefinitionManagerSignaler& instance(DtDe& de);
225 
228 
230  boost::signal<void ()> signal_modelDefinitionManagerReset;
231 
233  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionAdded;
234 
236  boost::signal<void (const DtModelDefinition&)> signal_modelDefinitionToBeRemoved;
237 
238  protected:
239 
241 
242  };
243 
247  {
248  public:
251 
254 
258  static DtModelDefinitionManagerCreator& instance(DtDe& de);
259 
261  virtual DtModelDefinitionManager* create(DtDe&);
262  };
263 }
264 
266 

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)