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
26 //=======================================================================
27 /// Central controler of the gimmick application
37 typedef TreeHandlerImageAdder::Progress AddProgress;
38 typedef TreeHandlerImageAdder::ProgressCallbackType AddProgressCallbackType;
40 /// Adds the function f to the list of functions to call
41 /// when addition operations progres.
42 /// f is of type AddProgressCallbackType which is:
43 /// void (*AddProgressCallbackType)(AddProgress&)
44 /// To pass a member function 'f' of an instance 'c' of a class 'C'
45 /// as callback you have to 'bind' it, i.e. call:
46 /// ConnectAddProgressObserver ( boost::bind( &C::f , c, _1 ) );
47 void ConnectAddProgressObserver( AddProgressCallbackType callback )
48 { mImageAdder.ConnectProgressObserver(callback); }
52 const AddProgress& GetAddProgress() const { return mImageAdder.GetProgress(); }
54 /// Initialize (read/creates databases, etc.)
57 /// Finalize (closes databases, etc.)
60 /// Sets level for messages "Gimmick!"
61 static void SetMessageLevel(int level);
62 /// Sets level for debug messages "Gimmick! DEBUG"
63 static void SetDebugMessageLevel(int level);
65 /// Type of map from TreeHandler name to TreeHandler*
66 typedef std::map<std::string, TreeHandler*> TreeHandlerMapType;
68 /// Returns the TreeHandlerMap (ref)
69 TreeHandlerMapType& GetTreeHandlerMap() { return mTreeHandlerMap; }
70 /// Returns the TreeHandlerMap (const ref)
71 const TreeHandlerMapType& GetTreeHandlerMap() const
72 { return mTreeHandlerMap; }
75 /// Add the files to the given TreeHandler
76 void AddFiles(const std::string& handler,
77 const std::vector<std::string>& filenames);
79 /// Add a dir to the given TreeHandler
80 void AddDir(const std::string& handler, const std::string& path,
83 /// Prints the tree handled by the handler
84 void Print(const std::string& handler);
87 /// Returns the TreeHandler with a given name
88 TreeHandler* GetTreeHandler(const std::string& name) const;
90 SQLiteTreeHandler* GetLocalDatabase() { return mLocalDatabase; }
92 const SQLiteTreeHandler* GetLocalDatabase() const
93 { return mLocalDatabase; }
98 const std::string& GetHomeDirectory();
99 const std::string& GetUserSettingsDirectory();
100 void CreateUserSettingsDirectory();
101 const std::string& GetLocalDatabasePath();
104 //=============================================
106 SQLiteTreeHandler* mLocalDatabase;
107 TreeHandlerMapType mTreeHandlerMap;
109 std::string mCurrentDirectory;
110 std::string mHomeDirectory;
111 std::string mUserSettingsDirectory;
112 std::string mLocalDatabasePath;
114 TreeHandlerImageAdder mImageAdder;
117 //=======================================================================
120 } // EO namespace creaImageIO