#ifndef __creaImageIOGimmick_h_INCLUDED__ #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 class Gimmick { public: /// Ctor Gimmick(); /// 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.) void Initialize(); /// Finalize (closes databases, etc.) 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(); 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 //======================================================================= } // EO namespace creaImageIO // EOF #endif