VR-Forces 4.1 Class Documentation
DtSchemaManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtSchemaManager.h,v $ $Revision: 1.16 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 
15 #include <vrvCore/vrvCore.h>
17 #include <makArchives/DtSchema.h>
19 
20 #include <string>
21 #include <set>
22 
23 #include <boost/signal.hpp>
24 
25 namespace makVrv
26 {
27  class DtDe;
28  class DtSchemaManager;
29  class DtSchemaManagerSignaler;
30 
34  {
35  public:
39 
40  virtual ~DtSchemaSettingsBackup();
41 
42  protected:
44  virtual void restore(const DtSettingsBackup* from);
45 
48  virtual std::string backupClassType() const;
49 
51  virtual void saveSchema();
52 
55  virtual DtSettingsBackup* create() const;
56 
59  virtual void write(boost::archive::xml_oarchive& ar);
60 
63  virtual void read(boost::archive::xml_iarchive& ar);
64 
65  public:
66  const makArchives::DtSchema& restoredSchema() const
67  {
68  return myRestoredSchema;
69  }
70 
71  protected:
75  };
76 
82  {
83  public:
84  friend class DtSchemaManagerCreator;
85 
86  typedef std::set<int> PossibleSchemaValues;
87 
89  {
91  VisualDefinitionSchema
92  };
93 
95  virtual ~DtSchemaManager();
96 
98  virtual void addSchemaEntry(const makArchives::DtSchemaEntry& schema);
99 
102  virtual bool removeSchemaEntry(const std::string&);
103 
106  virtual makArchives::DtSchemaEntry* findSchemaEntry(
107  const std::string& schemaName);
108 
111  virtual const makArchives::DtSchemaEntry* findSchemaEntry(
112  const std::string& schemaName) const;
113 
115  virtual void merge(const makArchives::DtSchema& schema);
116 
118  virtual void replace(const makArchives::DtSchema& schema);
119 
121  virtual void exportSchemas(const std::set<std::string>& schemaNames,
122  const std::string& filename) const;
123 
127  virtual bool renameSchemaEntry(
128  const std::string& oldName, const std::string& newName);
129 
131  const makArchives::DtSchema& schema() const;
132 
134  virtual std::string schemaName() const;
135 
139  virtual bool renameSchemaParameter(const std::string& schema,
140  const std::string& oldName, const std::string& newName);
141 
143  virtual void addPossibleSchemaValue(int schema);
144 
146  virtual PossibleSchemaValues possibleSchemaValues() const;
147 
149  virtual void removePossibleSchemaValue(int schema);
150 
152  virtual void loadSchemas();
153 
155  virtual bool loadSchema( const std::string& filepath);
156 
158  virtual void saveSchema();
159 
161  virtual void saveSchemaAs(const std::string& filepath);
162 
166  virtual bool importSchema(const std::string& filepath,
167  bool mergeSchema);
168 
170  virtual DtSchemaSettingsBackup& settingsBackup();
171 
173  virtual void backup();
174 
175  protected:
176 
179 
181  virtual void saveSchema(const makArchives::DtSchema& schema,
182  const std::string& file) const;
183 
184  protected:
187 
190 
193 
196 
199  };
200 
204  {
205  public:
206 
208  static DtSchemaManagerSignaler& instance(DtDe& de);
209 
211  virtual ~DtSchemaManagerSignaler();
212 
214  boost::signal<void (const std::string&)> signal_schemaEntryAdded;
215 
217  boost::signal<void (const std::string&)> signal_schemaEntryRemoved;
218 
220  boost::signal<void (const std::string&)> signal_schemaEntryToBeRemoved;
221 
224  boost::signal<void (const std::string&, const std::string&)>
226 
229  boost::signal<
230  void (const std::string&, const std::string&, const std::string)>
232 
233  protected:
236 
237  };
238 
242  {
243  public:
246 
248  virtual ~DtSchemaManagerCreator();
249 
253  static DtSchemaManagerCreator& instance(DtDe& de);
254 
256  virtual DtSchemaManager* create(DtDe&);
257  };
258 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)