X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=src2%2FcreaImageIOSynchron.h;fp=src2%2FcreaImageIOSynchron.h;h=422c2ebb79c4db2e51118a1be4b3c6a32d682b2f;hb=60067c5195c2aff6e7de8faef1cecf25f32802e4;hp=11ecd1bbf15ec9dd2b3edeba2c79f8437c945bc3;hpb=96ca5a0d7b7ccd6b4291160c19afd48e3207db2a;p=creaImageIO.git diff --git a/src2/creaImageIOSynchron.h b/src2/creaImageIOSynchron.h index 11ecd1b..422c2eb 100644 --- a/src2/creaImageIOSynchron.h +++ b/src2/creaImageIOSynchron.h @@ -11,13 +11,19 @@ namespace creaImageIO { using namespace std; //================================================================================================================ + ///Represents the list of currently added files class AddList { public : + ///Key to be added into the database std::string key; + ///Path of the directory std::string path; + /// Defines if the operation was recursive or not std::string recursive; + ///Number of added files std::string nbFiles; + ///Ctor AddList(CppSQLite3Query& res): key(res.getStringField(0)), path(res.getStringField(1)), @@ -28,14 +34,19 @@ namespace creaImageIO //================================================================================================================ //================================================================================================================ + ///Represents the list of currently removed files class RemoveList { public : + ///Key to be added into the database std::string key; + ///Path of the remove file std::string path; + ///Defines if the file was removed or not std::string remove; + ///Time of the last change of the file std::string time; - + ///Ctor RemoveList(CppSQLite3Query& res): key(res.getStringField(1)), path(res.getStringField(2)), @@ -46,51 +57,70 @@ namespace creaImageIO //================================================================================================================ //================================================================================================================ + ///In charge of the synchronization of the database and the disk state. class Synchronizer { public: + ///Ctor Synchronizer(const std::string& path); + ///Dtor virtual ~Synchronizer(); + ///Initializes the database void Initialize(); + ///Inserts an add operation to the database void InsertAddOp(const std::string& path, const std::string& recursive, const std::string& nChildren, const std::string& refdb); + ///Inserts a file to be ignored void InsertIgnoreFile(const std::string& addKey, const std::string& path, const std::string& remove, const std::string& time, const std::string& refdb); + ///Removes an entry that matches the given parameter void RemoveEntry(const std::string i_table, const std::string i_key); + ///Removes several entries void RemoveEntries(const std::string i_table, const std::string i_attribute, const std::string i_operand, const std::string i_key); + ///Gets the list of AddFiles void GetFileList(std::vector& files , const std::string& refdb); + ///Gets the list of ignored files void GetIgnoredFiles(const std::string& key, std::vector &ignoreList); + ///Gets the attribute that matches the parameters std::string GetAttribute(const std::string& attribute, const std::string& table, const std::string& searchParam, const std::string& searchValue, const std::string& refdb); + ///Sets an attribute to an entry that matches the given parameters void SetAttribute(const std::string& attribute, const std::string& table, const std::string& value, const std::string& searchParam, const std::string& searchValue, const std::string& refdb); + ///The current AddList std::vector mAddList; + ///The current RemoveList std::vector mIgnoreList; private : /// The DB CppSQLite3DB* mDB; + ///Path of the current database std::string pathDB; + ///Creates a new database void CreateDB(); + ///Updates the AddList void UpdateAddList(const std::string& refdb); + ///Cleans the list in case operations are no longer useful (0 added files) void CleanList(const std::string& refdb); + ///Cleans the name (changes slashes and backslashes according to the system) void CleanName(std::string& str) const; - + ///Gets the ignore list std::vector GetIgnoreList(const std::string &i_key); };