creaImageIOGimmick.h

Go to the documentation of this file.
00001 #ifndef __creaImageIOGimmick_h_INCLUDED__
00002 #define __creaImageIOGimmick_h_INCLUDED__
00003 
00004 #include <creaImageIOSQLiteTreeHandler.h>
00005 #include <creaImageIOTreeHandlerImageAdder.h>
00006 #include <creaImageIOTimestampDatabaseHandler.h>
00007 #include <creaImageIOSynchron.h>
00008 #include <creaImageIOSettings.h>
00009 
00010 namespace creaImageIO
00011 {
00038   //=======================================================================
00040   class CREAIMAGEIO_EXPORT Gimmick
00041   {
00042   public:
00044     Gimmick();
00046     ~Gimmick();
00047     
00049     typedef TreeHandlerImageAdder::Progress AddProgress;
00050     typedef TreeHandlerImageAdder::ProgressCallbackType AddProgressCallbackType;
00051     
00059      void ConnectAddProgressObserver( AddProgressCallbackType callback )
00060     { mImageAdder.ConnectProgressObserver(callback); }
00061     
00062 
00064     const AddProgress& GetAddProgress() const { return mImageAdder.GetProgress(); }
00065 
00067     void Initialize();
00068     
00070     void Finalize();
00071 
00073     static void SetMessageLevel(int level);
00075     static void SetDebugMessageLevel(int level);
00076     
00078     typedef std::map<std::string, TreeHandler*> TreeHandlerMapType;
00079 
00081     TreeHandlerMapType& GetTreeHandlerMap() { return mTreeHandlerMap; }
00083     const TreeHandlerMapType& GetTreeHandlerMap() const
00084     { return mTreeHandlerMap; }
00085     
00086 
00088     void AddFiles(const std::string& handler,
00089                   const std::vector<std::string>& filenames);
00090 
00092     void AddDir(const std::string& handler, const std::string& path, 
00093                 bool recurse);
00094 
00096         void RemoveFile(const std::string& d, 
00097                         tree::Node* filename);
00098 
00100         void DeleteDrive(const std::string& drive);
00101   
00102 
00104         void CopyFiles(const std::vector<std::string>& filenames, const std::string& d );
00105   
00106 
00109         std::string Synchronize(const std::string& d, bool repair, bool checkAttributes);
00110 
00112     void Print(const std::string& handler);
00113         
00115     SQLiteTreeHandler *createDB(const std::string &i_name, 
00116                                 const std::string &i_locDesc, 
00117                                 const std::string &i_locDB);
00118 
00119         // add an existent DB 
00120         void addDB(const std::string &i_nameDB, const std::string &i_locationDB);
00121 
00123     TreeHandler* GetTreeHandler(const std::string& name) const;
00124 
00126         TimestampDatabaseHandler* GetTimestampDatabase() const;
00128     SQLiteTreeHandler* GetLocalDatabase() { return mLocalDatabase; }
00129 
00130     const SQLiteTreeHandler* GetLocalDatabase() const 
00131     { return mLocalDatabase; }
00132 
00134         void GetSetting(const std::string& name, std::string& value);
00135 
00137         void UpdateSetting(const std::string& name, const std::string& value);
00138 
00140     void addDBSettings();
00141 
00143         void EditField(tree::Node* node, const std::string& d, const std::string& name, const std::string& key, const std::string& val);
00144 
00146         void GetAttributes(const std::string& d, 
00147           const std::string& filename, 
00148           const std::vector<std::string>& params, 
00149           std::vector<std::string>& results);
00150   
00152     const std::string& GetHomeDirectory();
00153     const std::string& GetUserSettingsDirectory();
00154     void CreateUserSettingsDirectory();
00155     const std::string& GetLocalDatabasePath();
00156         const std::string& GetTimestampDatabasePath();
00157 
00158 
00159     //=============================================
00160   private:
00161     SQLiteTreeHandler* mLocalDatabase;
00162         TimestampDatabaseHandler* mTimestampDatabase;
00163     TreeHandlerMapType mTreeHandlerMap;
00164         Synchronizer* mSynchronizer;
00165 
00166     std::string mCurrentDirectory;
00167     std::string mHomeDirectory;
00168     std::string mUserSettingsDirectory;
00169     std::string mLocalDatabasePath;
00170         std::string mTimestampDatabasePath;
00171         Settings        *mSettings;
00172     TreeHandlerImageAdder mImageAdder;
00173   };
00174   // EO class Gimmick
00175   //=======================================================================
00176 
00177 
00178 } // EO namespace creaImageIO
00179 
00180 // EOF
00181 #endif  
00182 
00183 

Generated on Mon Jun 22 10:49:30 2009 for CreaImageIO by  doxygen 1.5.3