1 #ifndef __creaImageIOGimmick_h_INCLUDED__
2 #define __creaImageIOGimmick_h_INCLUDED__
4 #include <creaImageIOSQLiteTreeHandler.h>
5 #include <creaImageIOTreeHandlerImageAdder.h>
10 * \defgroup Controller Controller
16 * \defgroup Model Model
19 * \defgroup GUI Top level graphical user interfaces
22 * \defgroup IO Image I/O classes
25 * \defgroup Tree Attributed tree management
32 //=======================================================================
33 /// Central controler of the gimmick application
43 typedef TreeHandlerImageAdder::Progress AddProgress;
44 typedef TreeHandlerImageAdder::ProgressCallbackType AddProgressCallbackType;
46 /// Adds the function f to the list of functions to call
47 /// when addition operations progres.
48 /// f is of type AddProgressCallbackType which is:
49 /// void (*AddProgressCallbackType)(AddProgress&)
50 /// To pass a member function 'f' of an instance 'c' of a class 'C'
51 /// as callback you have to 'bind' it, i.e. call:
52 /// ConnectAddProgressObserver ( boost::bind( &C::f , c, _1 ) );
53 void ConnectAddProgressObserver( AddProgressCallbackType callback )
54 { mImageAdder.ConnectProgressObserver(callback); }
58 const AddProgress& GetAddProgress() const { return mImageAdder.GetProgress(); }
60 /// Initialize (read/creates databases, etc.)
63 /// Finalize (closes databases, etc.)
66 /// Sets level for messages "Gimmick!"
67 static void SetMessageLevel(int level);
68 /// Sets level for debug messages "Gimmick! DEBUG"
69 static void SetDebugMessageLevel(int level);
71 /// Type of map from TreeHandler name to TreeHandler*
72 typedef std::map<std::string, TreeHandler*> TreeHandlerMapType;
74 /// Returns the TreeHandlerMap (ref)
75 TreeHandlerMapType& GetTreeHandlerMap() { return mTreeHandlerMap; }
76 /// Returns the TreeHandlerMap (const ref)
77 const TreeHandlerMapType& GetTreeHandlerMap() const
78 { return mTreeHandlerMap; }
81 /// Add the files to the given TreeHandler
82 void AddFiles(const std::string& handler,
83 const std::vector<std::string>& filenames);
85 /// Add a dir to the given TreeHandler
86 void AddDir(const std::string& handler, const std::string& path,
89 /// Prints the tree handled by the handler
90 void Print(const std::string& handler);
93 /// Returns the TreeHandler with a given name
94 TreeHandler* GetTreeHandler(const std::string& name) const;
96 SQLiteTreeHandler* GetLocalDatabase() { return mLocalDatabase; }
98 const SQLiteTreeHandler* GetLocalDatabase() const
99 { return mLocalDatabase; }
104 const std::string& GetHomeDirectory();
105 const std::string& GetUserSettingsDirectory();
106 void CreateUserSettingsDirectory();
107 const std::string& GetLocalDatabasePath();
110 //=============================================
112 SQLiteTreeHandler* mLocalDatabase;
113 TreeHandlerMapType mTreeHandlerMap;
115 std::string mCurrentDirectory;
116 std::string mHomeDirectory;
117 std::string mUserSettingsDirectory;
118 std::string mLocalDatabasePath;
120 TreeHandlerImageAdder mImageAdder;
123 //=======================================================================
126 } // EO namespace creaImageIO