--- /dev/null
+#ifndef __creaImageIOSynchronizer_h_INCLUDED__
+#define __creaImageIOSynchronizer_h_INCLUDED__
+
+#include <creaImageIOSQLiteTreeHandler.h>
+#include <creaImageIOImageReader.h>
+
+namespace creaImageIO
+{
+
+//=======================================================================
+/// Synchronizes a given database with disk
+class Synchronizer
+ {
+ public:
+ /// Ctor
+ Synchronizer(TreeHandler* th);
+ /// Dtor
+ ~Synchronizer();
+ ///Sets the tree handler to use in order to synchronize with a given database
+ void SetTreeHandler(TreeHandler * handler){mHandler=handler;}
+ ///Synchronizes the database in the current tree handler with disk by doing the passed action. If it is true,
+ ///the database will be updated, otherwise a warning message will be returned.
+ std::string Synchronize(bool update);
+ ///Checks if the file given as a parameter exists in the drive
+ bool FileExists(std::string file);
+ ///Checks if the attributes of the node given as a parameter matchwith it correspondent file in disk
+ ///NB: This method doesn't check the existence of the file, so FileExists should be called before.
+ void AttributesMatch(bool update, std::string file, std::stringstream& mess);
+
+
+ private:
+ ///The tree handler
+ TreeHandler* mHandler;
+ ///The image reader
+ ImageReader mReader;
+ ///Synchronizes the given file, doing the action required and returning the result on the string supplied
+ void SynchronizeFile(bool update, std::string file, std::stringstream& message);
+
+ };
+} // EO namespace creaImageIO
+
+// EOF
+#endif
\ No newline at end of file