X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOSynchronizer.h;fp=src%2FcreaImageIOSynchronizer.h;h=fa3ae37abe9b3b20a4e1e5c72d48f623ffd2ef10;hb=3a22e19184c369b130d4caa992a8e98e50c7a0ee;hp=0000000000000000000000000000000000000000;hpb=916a5e3008de7387aaf45e9d4e4ebbe6503205c3;p=creaImageIO.git diff --git a/src/creaImageIOSynchronizer.h b/src/creaImageIOSynchronizer.h new file mode 100644 index 0000000..fa3ae37 --- /dev/null +++ b/src/creaImageIOSynchronizer.h @@ -0,0 +1,43 @@ +#ifndef __creaImageIOSynchronizer_h_INCLUDED__ +#define __creaImageIOSynchronizer_h_INCLUDED__ + +#include +#include + +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