X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOGimmick.h;h=cdb76764fcb99f143b7ccac4c6d4c827f691151e;hb=44cd2da41a93b82eb18f6e22c1d8b58d44b64539;hp=7a984a39987daef964e955ee3e752b7242362da8;hpb=cbf693fa62cd51f4ca5c881838bbb609edc447b0;p=creaImageIO.git diff --git a/src2/creaImageIOGimmick.h b/src2/creaImageIOGimmick.h index 7a984a3..cdb7676 100644 --- a/src2/creaImageIOGimmick.h +++ b/src2/creaImageIOGimmick.h @@ -2,9 +2,35 @@ #define __creaImageIOGimmick_h_INCLUDED__ #include +#include namespace creaImageIO { + /** + * \defgroup Controller Controller + */ + /** + * \defgroup View View + */ + /** + * \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 + */ //======================================================================= /// Central controler of the gimmick application @@ -16,27 +42,85 @@ 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!" + 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 the files to the given TreeHandler + void AddFiles(const std::string& handler, + const std::vector& filenames); + /// Add a dir to the given TreeHandler + void AddDir(const std::string& handler, const std::string& path, + bool recurse); + /// Prints the tree handled by the handler + void Print(const std::string& handler); + + /// Returns the TreeHandler with a given name + TreeHandler* GetTreeHandler(const std::string& name) const; + /// + SQLiteTreeHandler* GetLocalDatabase() { return mLocalDatabase; } + + const SQLiteTreeHandler* GetLocalDatabase() const + { return mLocalDatabase; } + + + + /// const std::string& GetHomeDirectory(); const std::string& GetUserSettingsDirectory(); - bool CreateUserSettingsDirectory(); + void CreateUserSettingsDirectory(); const std::string& GetLocalDatabasePath(); + + //============================================= private: SQLiteTreeHandler* mLocalDatabase; - + TreeHandlerMapType mTreeHandlerMap; + std::string mCurrentDirectory; std::string mHomeDirectory; std::string mUserSettingsDirectory; std::string mLocalDatabasePath; - + + TreeHandlerImageAdder mImageAdder; }; // EO class Gimmick //=======================================================================