![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtSharedCigiSettingsManager.h,v $ $Revision: 1.22 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtSharedCigiSettingsManager_H_ 00014 #define DtSharedCigiSettingsManager_H_ 00015 00016 #include <vrvCigi/vrvCigi.h> 00017 #include <vrvUtil/DtVirtualBaseClass.h> 00018 #include <vrvCigi/DtSharedCigiSettings.h> 00019 #include <vrvUtil/DtSignalConnectionManager.h> 00020 #include <vrvCore/DtSettingsChangeManager.h> 00021 00022 #include <boost/signal.hpp> 00023 00024 namespace makVrv 00025 { 00026 class DtSettingsBackup; 00027 00031 class DT_DLL_VRVCIGI DtSharedCigiSettingsManager : public DtVirtualBaseClass 00032 { 00033 public: 00035 static DtSharedCigiSettingsManager& instance(DtDe&); 00036 00038 virtual ~DtSharedCigiSettingsManager(); 00039 00043 void loadCigiSettingsFile(const std::string& settingsName, 00044 const std::string& filePath); 00045 00048 void saveCigiSettingsFile(const std::string& settingsName, 00049 const std::string& filePath); 00050 00053 void loadAllCigiSettings(); 00054 00056 void saveAllCigiSettings(); 00057 00059 void addCigiSettings(const std::string& mapperName); 00060 00062 void removeCigiSettings(const std::string& mapperName); 00063 00066 void renameCigiSettings(const std::string& oldName, const std::string& newName); 00067 00069 const std::vector<std::string>& getCigiSettingsNames() const; 00070 00071 public: 00072 00074 virtual void setEntityTypeModelMapping(int entType, 00075 const std::string& modelName, const std::string& schemaName); 00076 00078 virtual void removeEntityTypeModelMapping(int entType); 00079 00081 virtual bool remapEntityType(int oldType, int newType); 00082 00085 virtual bool renameModelDefinition(const std::string& oldName, const std::string& newName, std::vector<std::string>& mappersChanged); 00086 00088 virtual DtSettingsBackup* settingsBackup(const std::string&); 00089 00091 virtual void saveCurrentSettings(); 00092 00094 virtual void addModelStateMapping(int cigiId, int stateId); 00095 00097 virtual void removeModelStateMapping(int cigiId); 00098 00100 virtual void setArtPartMapping(int entType, int cigiId, int disId); 00101 00103 virtual void removeArtPartMapping(int entType, int cigiId); 00104 00106 virtual void addDatabaseMapping(int databaseNumber, const std::string& filename); 00107 00109 virtual void removeDatabaseMapping(int databaseNumber); 00110 00112 virtual void addComponentIdMapping(makArchives::DtCigiComponentClass compClass, 00113 int compId, const std::string& compName); 00114 00117 virtual void removeComponentIdMapping(makArchives::DtCigiComponentClass compClass, 00118 int compId); 00119 00121 virtual void addAnimationMapping(int animationId, const std::string& animationName); 00122 00124 virtual void removeAnimationMapping(int animationId); 00125 00126 void setAutoSave(bool b) 00127 { 00128 myAutoSave = b; 00129 } 00130 00131 bool autoSave() const 00132 { 00133 return myAutoSave; 00134 } 00135 00137 boost::signal<void (const std::string&)> signal_currentSettingsChanged; 00138 00140 boost::signal<void (const std::string&)> signal_settingsToBeDeleted; 00141 00142 protected: 00145 virtual void backup(const std::string&); 00146 00148 virtual bool checkCigiMappers(const std::string& node, DtSettingsChangeObject::UseType t); 00149 00150 protected: 00153 void initializeCigiSettings(const std::string& filePath); 00154 00156 DtSharedCigiSettingsManager(DtDe& de); 00157 00158 00159 private: 00160 DtDe& myDe; 00161 DtSignalConnectionManager myConnections; 00162 std::string myCigiSettingsPath; 00163 std::string myCigiFactoryPath; 00164 mutable std::vector<std::string> myMapperNames; 00165 bool myAutoSave; 00166 }; 00167 } 00168 00169 #endif 00170