VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRecordSettingsBackup.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #ifndef DtRecordSettingsBackup_H
12 #define DtRecordSettingsBackup_H
13 
14 #include <vrvCore/DtDe.h>
18 
19 namespace makVrv
20 {
25  {
26  public:
27  DtRecordSettingsBackupInterface(DtDe& de, const std::string& classType, const std::string& descriptiveName)
28  : myDe(de)
29  , myClassType(classType)
30  , myDescriptiveName(descriptiveName)
31  , myCanBackup(true)
32  {
33  DtDeSettings* settings = DtDeSettingsManager::instance(myDe).findSettings(classType);
34  if (settings)
35  {
36  setFactoryFile(settings->factoryFilePath());
37  }
39  }
40 
42  : myDe(orig.myDe)
43  , myClassType(orig.myClassType)
44  , myCanBackup(orig.myCanBackup)
45  , myDescriptiveName(orig.myDescriptiveName)
46  {
47  }
48 
50  {
51  }
52 
53  std::string backupClassType() const
54  {
55  return myClassType;
56  }
57 
58  std::string backupName() const
59  {
60  return myDescriptiveName;
61  }
62 
63  virtual void backup()
64  {
65  if (canBackup())
66  {
68  }
69  }
70 
71  virtual void backupByDir()
72  {
73  if (canBackup())
74  {
76  }
77  }
78 
79  void setCanBackup(bool b)
80  {
81  myCanBackup = b;
82  }
83 
84  bool canBackup() const
85  {
86  return myCanBackup;
87  }
88 
89  protected:
91  std::string myClassType;
92  std::string myDescriptiveName;
94  };
95 
99  template <typename SettingsClass, typename ArchiveClass>
101  {
102  public:
103  DtRecordSettingsBackup(DtDe& de, SettingsClass* parent, const std::string& classType, const std::string& descriptiveName)
104  : DtRecordSettingsBackupInterface(de, classType, descriptiveName)
105  , myParent(parent)
106  {
107  }
108 
111  , myParent(orig.myParent)
112  {
113  }
114 
116  {
117  }
118 
119  void restore(const DtSettingsBackup* from)
120  {
121  bool can = canBackup();
122 
123  setCanBackup(false);
124 
125  myParent->setFromRecord(
127 
128  setCanBackup(can);
129  }
130 
132  {
134  }
135 
136  void write(boost::archive::xml_oarchive& ar)
137  {
138  ArchiveClass rec;
139 
140  myParent->getRecord(rec);
141 
142  ar << boost::serialization::make_nvp(myClassType.c_str(), rec);
143  }
144 
145  // Allocates the outStreamVec, delete after use - use vec<ptr> for Linux build
146  void writeDir(std::vector<std::ostringstream*>& outStreamVec, std::vector<std::string>& fileNames)
147  {
148  std::vector<ArchiveClass> rec;
149 
150  myParent->getSplitRecord(rec, fileNames);
151 
152  assert(rec.size() == fileNames.size());
153 
154  unsigned int recSize = rec.size();
155  outStreamVec.resize(recSize);
156 
157  for (unsigned int i = 0; i < recSize; ++i)
158  {
159  outStreamVec[i] = new std::ostringstream();
160  boost::archive::xml_oarchive oa(*(outStreamVec[i]));
161 
162  oa << boost::serialization::make_nvp(myClassType.c_str(), rec[i]);
163  }
164  }
165 
166  void readRecords(boost::archive::xml_iarchive& ar, ArchiveClass& recordsResult)
167  {
168  ar >> boost::serialization::make_nvp(myClassType.c_str(), recordsResult);
169  }
170 
171  void readIncremental(boost::archive::xml_iarchive& ar)
172  {
173  ArchiveClass rec;
174  ar >> boost::serialization::make_nvp(myClassType.c_str(), rec);
175  myParent->addRecords(rec, myRestoredRecord);
176  }
177 
178  void read(boost::archive::xml_iarchive& ar)
179  {
180  ar >> boost::serialization::make_nvp(myClassType.c_str(), myRestoredRecord);
181  }
182 
183  const ArchiveClass& restoredRecord() const
184  {
185  return myRestoredRecord;
186  }
187 
188  protected:
189  ArchiveClass myRestoredRecord;
190  SettingsClass* myParent;
191  };
192 
196  template <typename SettingsClass, typename ArchiveClass>
198  {
199  public:
200 
201  DtSharedRecordSettingsBackup(DtSharedSettingsManager& manager, const std::string& classType, const std::string& descriptiveName)
202  : myManager(manager)
203  , myClassType(classType)
204  , myCanBackup(true)
205  , myDescriptiveName(descriptiveName)
206  {
207  }
208 
210  {
211  }
212 
213  void restore(const DtSettingsBackup* from)
214  {
215  bool can = canBackup();
216 
217  myCanBackup = false;
218 
220 
222 
223  myCanBackup = can;
224  }
225 
226  std::string backupClassType() const
227  {
228  return myClassType;
229  }
230 
231  std::string backupName() const
232  {
233  return myDescriptiveName;
234  }
235 
237  {
239  }
240 
241  void write(boost::archive::xml_oarchive& ar)
242  {
243  ar << boost::serialization::make_nvp(backupClassType().c_str(), myRestoredRecord);
244  }
245 
246  void read(std::vector<boost::archive::xml_iarchive>& ar)
247  {
248  if (!ar.empty())
249  {
250  ar[0] >> boost::serialization::make_nvp(backupClassType().c_str(), myRestoredRecord);
251  }
252  }
253 
254  void read(boost::archive::xml_iarchive& ar)
255  {
256  ar >> boost::serialization::make_nvp(backupClassType().c_str(), myRestoredRecord);
257  }
258 
259  const ArchiveClass& restoredRecord() const
260  {
261  return myRestoredRecord;
262  }
263 
264  void backup(const ArchiveClass& rec)
265  {
266  if (myCanBackup)
267  {
268  myRestoredRecord = rec;
270  }
271  }
272 
273  void setCanBackup(bool b)
274  {
275  myCanBackup = b;
276  }
277 
278  bool canBackup() const
279  {
280  return myCanBackup;
281  }
282 
283  protected:
285  ArchiveClass myRestoredRecord;
287  std::string myClassType;
288  std::string myDescriptiveName;
289  };
290 }
291 
292 #endif
virtual DtDeSettings * findSettings(const std::string &settingsType)
Get the settings object for a particular settings type.
Contains makVrv::DtDeSettingsManager class.
virtual ~DtRecordSettingsBackupInterface()
Definition: DtRecordSettingsBackup.h:49
static DtDeSettingsManager & instance(DtDe &de)
Get an instance of the settings manager.
Interaction makVrv::DtWriteSettingsLock class.
DtSettingsBackup * create() const
Returns a new empty class of type.
Definition: DtRecordSettingsBackup.h:236
DtSettingsBackup * create() const
Returns a new empty class of type.
Definition: DtRecordSettingsBackup.h:131
std::string myClassType
Definition: DtRecordSettingsBackup.h:91
virtual ~DtRecordSettingsBackup()
Definition: DtRecordSettingsBackup.h:115
void backup(const ArchiveClass &rec)
Definition: DtRecordSettingsBackup.h:264
void restore(const DtSettingsBackup *from)
Called with the object that needs to be restored from.
Definition: DtRecordSettingsBackup.h:213
void readIncremental(boost::archive::xml_iarchive &ar)
Support for reading files from a directory by looping over files and incrementally adding their conte...
Definition: DtRecordSettingsBackup.h:171
virtual std::string factoryFilePath() const
bool canBackup() const
Definition: DtRecordSettingsBackup.h:278
void read(std::vector< boost::archive::xml_iarchive > &ar)
Definition: DtRecordSettingsBackup.h:246
std::string myDescriptiveName
Definition: DtRecordSettingsBackup.h:92
DtRecordSettingsBackupInterface(DtDe &de, const std::string &classType, const std::string &descriptiveName)
Definition: DtRecordSettingsBackup.h:27
Contains makVrv::DtDe class.
void read(boost::archive::xml_iarchive &ar)
Override to read from given stream.
Definition: DtRecordSettingsBackup.h:178
bool canBackup() const
Definition: DtRecordSettingsBackup.h:84
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:100
void write(boost::archive::xml_oarchive &ar)
Override to write to given stream.
Definition: DtRecordSettingsBackup.h:241
std::string backupClassType() const
Override to return the class name of this object.
Definition: DtRecordSettingsBackup.h:226
void setCanBackup(bool b)
Definition: DtRecordSettingsBackup.h:273
ArchiveClass myRestoredRecord
Definition: DtRecordSettingsBackup.h:189
std::string backupClassType() const
Override to return the class name of this object.
Definition: DtRecordSettingsBackup.h:53
ArchiveClass myRestoredRecord
Definition: DtRecordSettingsBackup.h:285
void restore(const DtSettingsBackup *from)
Called with the object that needs to be restored from.
Definition: DtRecordSettingsBackup.h:119
void readRecords(boost::archive::xml_iarchive &ar, ArchiveClass &recordsResult)
Definition: DtRecordSettingsBackup.h:166
std::string myDescriptiveName
Definition: DtRecordSettingsBackup.h:288
std::string myClassType
Definition: DtRecordSettingsBackup.h:287
std::string backupName() const
Returns a more readable backup name (for dialogs).
Definition: DtRecordSettingsBackup.h:231
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtRecordSettingsBackup(const DtRecordSettingsBackup &orig)
Definition: DtRecordSettingsBackup.h:109
const ArchiveClass & restoredRecord() const
Definition: DtRecordSettingsBackup.h:259
DtDe & myDe
Definition: DtRecordSettingsBackup.h:90
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:23
virtual void backupByDir()
Backs up settings to backup directory.
a write settings lock on a setting object.
Definition: DtWriteSettingsLock.h:47
void read(boost::archive::xml_iarchive &ar)
Override to read from given stream.
Definition: DtRecordSettingsBackup.h:254
DtSharedRecordSettingsBackup(DtSharedSettingsManager &manager, const std::string &classType, const std::string &descriptiveName)
Definition: DtRecordSettingsBackup.h:201
virtual ~DtSharedRecordSettingsBackup()
Definition: DtRecordSettingsBackup.h:209
bool myCanBackup
Definition: DtRecordSettingsBackup.h:93
Settings class for reading and writing settings to/from files.
Definition: DtDeSettings.h:29
void write(boost::archive::xml_oarchive &ar)
Override to write to given stream.
Definition: DtRecordSettingsBackup.h:136
void writeDir(std::vector< std::ostringstream * > &outStreamVec, std::vector< std::string > &fileNames)
Support for writing settings to files in a directory.
Definition: DtRecordSettingsBackup.h:146
virtual void backup()
Backs up settings to backup file.
virtual void registerSettingsBackup(DtSettingsBackup *backup)
Registers the settings class with the manager.
std::string backupName() const
Returns a more readable backup name (for dialogs).
Definition: DtRecordSettingsBackup.h:58
bool myCanBackup
Definition: DtRecordSettingsBackup.h:286
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
const ArchiveClass & restoredRecord() const
Definition: DtRecordSettingsBackup.h:183
DtRecordSettingsBackup(DtDe &de, SettingsClass *parent, const std::string &classType, const std::string &descriptiveName)
Definition: DtRecordSettingsBackup.h:103
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:24
DtSharedSettingsManager & myManager
Definition: DtRecordSettingsBackup.h:284
SettingsClass * myParent
Definition: DtRecordSettingsBackup.h:190
virtual void backupByDir()
Backs up settings to backup directory.
Definition: DtRecordSettingsBackup.h:71
The makVrv::DtSharedRecordSettingsBackup is a templaced class that settings records will use in order...
Definition: DtRecordSettingsBackup.h:197
void setCanBackup(bool b)
Definition: DtRecordSettingsBackup.h:79
virtual void backup()
Backs up settings to backup file.
Definition: DtRecordSettingsBackup.h:63
DtRecordSettingsBackupInterface(const DtRecordSettingsBackupInterface &orig)
Definition: DtRecordSettingsBackup.h:41
static DtSettingsBackupManager & instance(DtDe &de)
Get an instance of the settings manager.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)