X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOGimmick.h;h=448fc9ba9fd79c27f82ed89e3b2bcd5d7dd2e23a;hb=cf9b62742f0699be21da81b01cb9656be0f78c4f;hp=9cd56660bcef50bb7cb325c181180865b88119db;hpb=f08880c40f6304be640c7f8702bbbe96f8d50b40;p=creaImageIO.git diff --git a/src2/creaImageIOGimmick.h b/src2/creaImageIOGimmick.h index 9cd5666..448fc9b 100644 --- a/src2/creaImageIOGimmick.h +++ b/src2/creaImageIOGimmick.h @@ -2,6 +2,10 @@ #define __creaImageIOGimmick_h_INCLUDED__ #include +#include +#include +#include +#include namespace creaImageIO { @@ -14,6 +18,18 @@ namespace creaImageIO /** * \defgroup Model Model */ + /** + * \defgroup GUI Top level graphical user interfaces + */ + /** + * \defgroup IO Image I/O classes + */ + /** + * \defgroup Tree Attributed tree management + */ + /** + * \defgroup Previewer Preview related + */ /** * \ingroup Controller @@ -21,7 +37,7 @@ namespace creaImageIO //======================================================================= /// Central controler of the gimmick application - class Gimmick + class CREAIMAGEIO_EXPORT Gimmick { public: /// Ctor @@ -29,42 +45,126 @@ namespace creaImageIO /// Dtor ~Gimmick(); + /// + typedef TreeHandlerImageAdder::Progress AddProgress; + typedef TreeHandlerImageAdder::ProgressCallbackType AddProgressCallbackType; + + /// Adds the function f to the list of functions to call + /// when addition operations progres. + /// f is of type AddProgressCallbackType which is: + /// void (*AddProgressCallbackType)(AddProgress&) + /// To pass a member function 'f' of an instance 'c' of a class 'C' + /// as callback you have to 'bind' it, i.e. call: + /// ConnectAddProgressObserver ( boost::bind( &C::f , c, _1 ) ); + void ConnectAddProgressObserver( AddProgressCallbackType callback ) + { mImageAdder.ConnectProgressObserver(callback); } + + + /// + const AddProgress& GetAddProgress() const { return mImageAdder.GetProgress(); } + /// Initialize (read/creates databases, etc.) - bool Initialize(); + void Initialize(); /// Finalize (closes databases, etc.) - bool Finalize(); + void Finalize(); /// Sets level for messages "Gimmick!" - void SetMessageLevel(int level); + static void SetMessageLevel(int level); + /// Sets level for debug messages "Gimmick! DEBUG" + static void SetDebugMessageLevel(int level); + + /// Type of map from TreeHandler name to TreeHandler* + typedef std::map TreeHandlerMapType; + + /// Returns the TreeHandlerMap (ref) + TreeHandlerMapType& GetTreeHandlerMap() { return mTreeHandlerMap; } + /// Returns the TreeHandlerMap (const ref) + const TreeHandlerMapType& GetTreeHandlerMap() const + { return mTreeHandlerMap; } + - /// Add a file to the local database - void AddFileToLocalDatabase(const std::string&); - /// Add a dir to the local database - void AddDirToLocalDatabase(const std::string&, bool recurse); + /// Add the files to the given TreeHandler + void AddFiles(const std::string& handler, + const std::vector& filenames); - /// - void PrintLocalDatabase(); + /// Add a dir to the given TreeHandler + void AddDir(const std::string& handler, const std::string& path, + bool recurse); + + /// Removes a file from the given TreeHandler + void RemoveFile(const std::string& d, + tree::Node* filename); + + ///Deletes the given drive name from the databases + void DeleteDrive(const std::string& drive); + + + /// Copies the files into the local directory + void CopyFiles(const std::vector& filenames, const std::string& d ); + + + ///Synchronizes the loaded data with the database d. If repair is true the database will be updated, otherwise + ///only a warning sign will be issued + std::string Synchronize(const std::string& d, bool repair, bool checkAttributes); + + /// Prints the tree handled by the handler + void Print(const std::string& handler); + + ///create a DB from a given descriptor file and for a specific location + SQLiteTreeHandler *createDB(const std::string &i_name, + const std::string &i_locDesc, + const std::string &i_locDB); + + // add an existent DB + void addDB(const std::string &i_nameDB, const std::string &i_locationDB); + + /// Returns the TreeHandler with a given name + TreeHandler* GetTreeHandler(const std::string& name) const; + /// Returns the TimestampDatabase + TimestampDatabaseHandler* GetTimestampDatabase() const; /// SQLiteTreeHandler* GetLocalDatabase() { return mLocalDatabase; } - const SQLiteTreeHandler* GetLocalDatabase() const { return mLocalDatabase; } + const SQLiteTreeHandler* GetLocalDatabase() const + { return mLocalDatabase; } + + ///Returns the given setting value for the given setting parameter + void GetSetting(const std::string& name, std::string& value); + + ///Updates the settings file + void UpdateSetting(const std::string& name, const std::string& value); + + /// add DB from Settings file + void addDBSettings(); + + ///Edits the field described by the name and key provided with the value given + void EditField(tree::Node* node, const std::string& d, const std::string& name, const std::string& key, const std::string& val); /// const std::string& GetHomeDirectory(); const std::string& GetUserSettingsDirectory(); - bool CreateUserSettingsDirectory(); + int GetBinaryDirectory(char *pname, size_t pathsize); + void CreateUserSettingsDirectory(); const std::string& GetLocalDatabasePath(); + const std::string& GetTimestampDatabasePath(); + + //============================================= private: SQLiteTreeHandler* mLocalDatabase; - + TimestampDatabaseHandler* mTimestampDatabase; + TreeHandlerMapType mTreeHandlerMap; + Synchronizer* mSynchronizer; + std::string mCurrentDirectory; std::string mHomeDirectory; std::string mUserSettingsDirectory; std::string mLocalDatabasePath; - + std::string mTimestampDatabasePath; + Settings *mSettings; + TreeHandlerImageAdder mImageAdder; }; // EO class Gimmick //=======================================================================