]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOSynchronizer.h
move directory
[creaImageIO.git] / src / creaImageIOSynchronizer.h
diff --git a/src/creaImageIOSynchronizer.h b/src/creaImageIOSynchronizer.h
new file mode 100644 (file)
index 0000000..fa3ae37
--- /dev/null
@@ -0,0 +1,43 @@
+#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