VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSchemaManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
14 #include <makArchives/DtSchema.h>
16 
17 #include <string>
18 #include <set>
19 
20 #include <boost/signal.hpp>
21 
22 namespace makVrv
23 {
24  class DtDe;
25  class DtSchemaManager;
26  class DtSchemaManagerSignaler;
27 
31  {
32  public:
36 
37  virtual ~DtSchemaSettingsBackup();
38 
39  protected:
41  virtual void restore(const DtSettingsBackup* from);
42 
45  virtual std::string backupClassType() const;
46 
48  virtual void saveSchema();
49 
52  virtual DtSettingsBackup* create() const;
53 
56  virtual void write(boost::archive::xml_oarchive& ar);
57 
60  virtual void read(boost::archive::xml_iarchive& ar);
61 
62  public:
63  const makArchives::DtSchema& restoredSchema() const
64  {
65  return myRestoredSchema;
66  }
67 
68  protected:
72  };
73 
79  {
80  public:
81  friend class DtSchemaManagerCreator;
82 
83  typedef std::set<int> PossibleSchemaValues;
84 
86  {
88  VisualDefinitionSchema
89  };
90 
92  virtual ~DtSchemaManager();
93 
95  virtual void addSchemaEntry(const makArchives::DtSchemaEntry& schema);
96 
99  virtual bool removeSchemaEntry(const std::string&);
100 
103  virtual makArchives::DtSchemaEntry* findSchemaEntry(
104  const std::string& schemaName);
105 
108  virtual const makArchives::DtSchemaEntry* findSchemaEntry(
109  const std::string& schemaName) const;
110 
112  virtual void merge(const makArchives::DtSchema& schema);
113 
115  virtual void replace(const makArchives::DtSchema& schema);
116 
118  virtual void exportSchemas(const std::set<std::string>& schemaNames,
119  const std::string& filename) const;
120 
124  virtual bool renameSchemaEntry(
125  const std::string& oldName, const std::string& newName);
126 
128  const makArchives::DtSchema& schema() const;
129 
131  virtual std::string schemaName() const;
132 
136  virtual bool renameSchemaParameter(const std::string& schema,
137  const std::string& oldName, const std::string& newName);
138 
140  virtual void addPossibleSchemaValue(int schema);
141 
143  virtual PossibleSchemaValues possibleSchemaValues() const;
144 
146  virtual void removePossibleSchemaValue(int schema);
147 
150  virtual void loadSchemas(bool saveAfterLoad = false);
151 
154  virtual bool loadSchema( const std::string& filepath, bool saveAfterLoad = false);
155 
157  virtual void saveSchema();
158 
160  virtual void saveSchemaAs(const std::string& filepath);
161 
165  virtual bool importSchema(const std::string& filepath,
166  bool mergeSchema);
167 
169  virtual DtSchemaSettingsBackup& settingsBackup();
170 
172  virtual void backup();
173 
174  protected:
175 
178 
180  virtual void saveSchema(const makArchives::DtSchema& schema,
181  const std::string& file) const;
182 
183  protected:
186 
189 
192 
195 
198  };
199 
203  {
204  public:
205 
207  static DtSchemaManagerSignaler& instance(DtDe& de);
208 
210  virtual ~DtSchemaManagerSignaler();
211 
213  boost::signal<void (const std::string&)> signal_schemaEntryAdded;
214 
216  boost::signal<void (const std::string&)> signal_schemaEntryRemoved;
217 
219  boost::signal<void (const std::string&)> signal_schemaEntryToBeRemoved;
220 
223  boost::signal<void (const std::string&, const std::string&)>
225 
228  boost::signal<
229  void (const std::string&, const std::string&, const std::string)>
231 
232  protected:
235 
236  };
237 
241  {
242  public:
245 
247  virtual ~DtSchemaManagerCreator();
248 
252  static DtSchemaManagerCreator& instance(DtDe& de);
253 
255  virtual DtSchemaManager* create(DtDe&);
256  };
257 }

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)