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
28 * \defgroup Previewer Preview related
35 //=======================================================================
36 /// Central controler of the gimmick application
46 typedef TreeHandlerImageAdder::Progress AddProgress;
47 typedef TreeHandlerImageAdder::ProgressCallbackType AddProgressCallbackType;
49 /// Adds the function f to the list of functions to call
50 /// when addition operations progres.
51 /// f is of type AddProgressCallbackType which is:
52 /// void (*AddProgressCallbackType)(AddProgress&)
53 /// To pass a member function 'f' of an instance 'c' of a class 'C'
54 /// as callback you have to 'bind' it, i.e. call:
55 /// ConnectAddProgressObserver ( boost::bind( &C::f , c, _1 ) );
56 void ConnectAddProgressObserver( AddProgressCallbackType callback )
57 { mImageAdder.ConnectProgressObserver(callback); }
61 const AddProgress& GetAddProgress() const { return mImageAdder.GetProgress(); }
63 /// Initialize (read/creates databases, etc.)
66 /// Finalize (closes databases, etc.)
69 /// Sets level for messages "Gimmick!"
70 static void SetMessageLevel(int level);
71 /// Sets level for debug messages "Gimmick! DEBUG"
72 static void SetDebugMessageLevel(int level);
74 /// Type of map from TreeHandler name to TreeHandler*
75 typedef std::map<std::string, TreeHandler*> TreeHandlerMapType;
77 /// Returns the TreeHandlerMap (ref)
78 TreeHandlerMapType& GetTreeHandlerMap() { return mTreeHandlerMap; }
79 /// Returns the TreeHandlerMap (const ref)
80 const TreeHandlerMapType& GetTreeHandlerMap() const
81 { return mTreeHandlerMap; }
84 /// Add the files to the given TreeHandler
85 void AddFiles(const std::string& handler,
86 const std::vector<std::string>& filenames);
88 /// Add a dir to the given TreeHandler
89 void AddDir(const std::string& handler, const std::string& path,
92 /// Prints the tree handled by the handler
93 void Print(const std::string& handler);
96 /// Returns the TreeHandler with a given name
97 TreeHandler* GetTreeHandler(const std::string& name) const;
99 SQLiteTreeHandler* GetLocalDatabase() { return mLocalDatabase; }
101 const SQLiteTreeHandler* GetLocalDatabase() const
102 { return mLocalDatabase; }
107 const std::string& GetHomeDirectory();
108 const std::string& GetUserSettingsDirectory();
109 void CreateUserSettingsDirectory();
110 const std::string& GetLocalDatabasePath();
113 //=============================================
115 SQLiteTreeHandler* mLocalDatabase;
116 TreeHandlerMapType mTreeHandlerMap;
118 std::string mCurrentDirectory;
119 std::string mHomeDirectory;
120 std::string mUserSettingsDirectory;
121 std::string mLocalDatabasePath;
123 TreeHandlerImageAdder mImageAdder;
126 //=======================================================================
129 } // EO namespace creaImageIO