![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtSettingsBackupManager.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00012 #pragma once 00013 00014 #include <vrvCore/vrvCore.h> 00015 #include <vrvUtil/DtVirtualBaseClass.h> 00016 #include <vrvCore/DtSettingsBackup.h> 00017 #include <vrvUtil/DtLockedBufferedQueue.h> 00018 00019 #include <boost/thread/mutex.hpp> 00020 #include <boost/signals.hpp> 00021 00022 #include <string> 00023 00024 namespace makVrv 00025 { 00026 class DtDe; 00027 00037 class DT_DLL_VRVCORE DtSettingsBackupManager : public DtVirtualBaseClass 00038 { 00039 public: 00041 static DtSettingsBackupManager& instance(DtDe& de); 00042 00044 virtual ~DtSettingsBackupManager(); 00045 00047 virtual void setBackupsPath(const std::string&); 00048 const std::string& backupsPath() const 00049 { 00050 return myBackupsPath; 00051 } 00052 00053 public: 00057 virtual void registerSettingsBackup( 00058 DtSettingsBackup* backup); 00059 00061 virtual void unregisterSettingsBackup(const std::string&); 00062 00064 virtual void unregisterSettingsBackup(DtSettingsBackup* backup); 00065 00067 virtual void settingsObjectDestroyed(const DtSettingsBackup*); 00068 virtual void settingsClearedBackup(const DtSettingsBackup*); 00069 virtual void settingsRestored(const DtSettingsBackup*); 00070 virtual void settingsBackedUp(const DtSettingsBackup*); 00071 00074 virtual bool setFactoryFile(const std::string&, const std::string& factoryFile); 00075 00078 virtual bool setFactoryFile(const DtSettingsBackup*, const std::string& factoryFile); 00079 00081 virtual bool canBeRevertedFromStartup(const std::string&) const; 00082 00084 virtual bool canBeRevertedFromStartup(const DtSettingsBackup*) const; 00085 00087 virtual bool canBeRestoredFromFactory(const std::string&) const; 00088 00090 virtual bool canBeRestoredFromFactory(const DtSettingsBackup*) const; 00091 00094 virtual bool backup(const std::string&); 00095 00097 virtual bool backup(const DtSettingsBackup*); 00098 00101 virtual void clearBackup(const std::string&); 00102 00104 virtual void clearBackup(const DtSettingsBackup*); 00105 00108 virtual bool revertToStartup(const std::string&); 00109 00111 virtual bool revertToStartup(const DtSettingsBackup*); 00112 00114 virtual bool restoreFromFactory(const std::string&); 00115 00117 virtual bool restoreFromFactory(const DtSettingsBackup*); 00118 00120 virtual bool registered(const std::string&) const; 00121 00123 virtual bool registered(const DtSettingsBackup*) const; 00124 00127 virtual void restoreWhenRestored(const std::string& toRestore, const std::string& whenRestored, 00128 const DtSettingsBackup::RestoreFlags& f = DtSettingsBackup::RestoreAll); 00129 00131 virtual void restoreWhenRestored(const DtSettingsBackup* toRestore, const DtSettingsBackup* whenRestored, 00132 const DtSettingsBackup::RestoreFlags& f = DtSettingsBackup::RestoreAll); 00133 00135 virtual void cancelRestoreWhenRestored(const std::string& toRestore, const std::string& whenRestored, 00136 const DtSettingsBackup::RestoreFlags& f = DtSettingsBackup::RestoreAll); 00137 00139 virtual void cancelRestoreWhenRestored(const DtSettingsBackup* toRestore, const DtSettingsBackup* whenRestored, 00140 const DtSettingsBackup::RestoreFlags& f = DtSettingsBackup::RestoreAll); 00141 00143 virtual std::vector<std::string> willRestoreWhenRestored(const DtSettingsBackup* toRestore, 00144 const DtSettingsBackup::RestoreFlags& f = DtSettingsBackup::RestoreAll) const; 00145 00146 protected: 00148 void willRestoreWhenRestored(const std::string& toRestore, 00149 std::vector<std::string>& willRestore, const DtSettingsBackup::RestoreFlags& f = DtSettingsBackup::RestoreAll) const; 00150 00151 protected: 00153 DtSettingsBackupManager(DtDe& de); 00154 00155 protected: 00156 DtDe& myDe; 00157 typedef std::map<std::string, DtSettingsBackup*> DtSettingsBackupMap; 00158 DtSettingsBackupMap myBackups; 00159 std::string myBackupsPath; 00160 mutable boost::mutex myMonitor; 00161 }; 00162 }