VR-Forces 5.0.3 Developer's Guide
 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) 2020 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 <vrvUtil/signalslib.h>
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:
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::signalslib::signal<void (const std::string&)> signal_schemaEntryAdded;
214 
216  boost::signalslib::signal<void (const std::string&)> signal_schemaEntryRemoved;
217 
219  boost::signalslib::signal<void (const std::string&)> signal_schemaEntryToBeRemoved;
220 
223  boost::signalslib::signal<void (const std::string&, const std::string&)>
225 
228  boost::signalslib::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 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Definition: DtSchemaManager.h:87
DtSchemaManager * mySchemaManager
Definition: DtSchemaManager.h:70
boost::signalslib::signal< void(const std::string &)> signal_schemaEntryRemoved
Signal emitted when a schema definition is destroyed.
Definition: DtSchemaManager.h:216
This class will be able to store and restore backups for schemas.
Definition: DtSchemaManager.h:30
boost::signalslib::signal< void(const std::string &, const std::string &)> signal_schemaEntryRenamed
Signal sent after the schema has been renamed from old to new name.
Definition: DtSchemaManager.h:224
makArchives::DtSchema myRestoredSchema
Definition: DtSchemaManager.h:71
DtDe * myDe
Definition: DtSchemaManager.h:69
makArchives::DtSchema myModelDefinitionSchema
Model definition schema.
Definition: DtSchemaManager.h:191
Collection of DtSchemaEntry objects Used to archive model definition schemas.
Definition: DtSchema.h:19
SchemaTypes
Definition: DtSchemaManager.h:85
Signaler that emits signals when schemas change.
Definition: DtSchemaManager.h:202
Contains makVrv::DtVirtualBaseClass class.
DtDe & myDe
Reference to the display engine.
Definition: DtSchemaManager.h:185
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signalslib::signal< void(const std::string &)> signal_schemaEntryAdded
Signal emitted when a schema definition is added.
Definition: DtSchemaManager.h:213
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:23
DtSchemaManagerSignaler & mySignaler
Signaler to signal other classes when schemas change.
Definition: DtSchemaManager.h:188
The makArchives::DtSchemaEntry class is a collection of makArchives::DtSchemaParameter objects...
Definition: DtSchemaEntry.h:20
Creator for DtSchemaManager class.
Definition: DtSchemaManager.h:240
const makArchives::DtSchema & restoredSchema() const
Definition: DtSchemaManager.h:63
PossibleSchemaValues myPossibleSchemaValues
List of possible value types that can go in a schema.
Definition: DtSchemaManager.h:197
boost::signalslib::signal< void(const std::string &, const std::string &, const std::string)> signal_schemaParameterRenamed
Signal sent after the schema parameter has been renamed from old to new name.
Definition: DtSchemaManager.h:230
DtSchemaSettingsBackup * myModelDefinitionSchemaBackup
Backup for model definition schema.
Definition: DtSchemaManager.h:194
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
The schema manager is responsible to managing all of the schemas in the system. It will save and load...
Definition: DtSchemaManager.h:78
boost::signalslib::signal< void(const std::string &)> signal_schemaEntryToBeRemoved
Signal emitted when a schema definition is to be destroyed.
Definition: DtSchemaManager.h:219
The makVrv::DtSettingsBackup is a lightweight class that must be subclassed from if an object wants t...
Contains DLL export macros.
std::set< int > PossibleSchemaValues
Definition: DtSchemaManager.h:83

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)