#ifndef __creaImageIOSynchron_h_INCLUDED__ #define __creaImageIOSynchron_h_INCLUDED__ #include #include #include #include #include "CppSQLite3.h" namespace creaImageIO { using namespace std; //================================================================================================================ class AddList { public : std::string key; std::string path; std::string recursive; std::string nbFiles; AddList(CppSQLite3Query& res): key(res.getStringField(0)), path(res.getStringField(1)), recursive(res.getStringField(2)), nbFiles(res.getStringField(3)) {} }; //================================================================================================================ //================================================================================================================ class RemoveList { public : std::string key; std::string path; std::string remove; std::string time; RemoveList(CppSQLite3Query& res): key(res.getStringField(1)), path(res.getStringField(2)), remove(res.getStringField(3)), time(res.getStringField(4)) {} }; //================================================================================================================ //================================================================================================================ class Synchronizer { public: Synchronizer(const std::string& path); virtual ~Synchronizer(); void Initialize(); void InsertAddOp(const std::string& path, const std::string& recursive, const std::string& nChildren, const std::string& refdb); void InsertIgnoreFile(const std::string& addKey, const std::string& path, const std::string& remove, const std::string& time, const std::string& refdb); void RemoveEntry(const std::string i_table, const std::string i_key); void GetFileList(std::vector& files , const std::string& refdb); void GetIgnoredFiles(const std::string& key, std::vector &ignoreList); std::string GetAttribute(const std::string& attribute, const std::string& table, const std::string& searchParam, const std::string& searchValue, const std::string& refdb); 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); std::vector mAddList; std::vector mIgnoreList; private : /// The DB CppSQLite3DB* mDB; std::string pathDB; void CreateDB(); void UpdateAddList(const std::string& refdb); void CleanList(const std::string& refdb); void CleanName(std::string& str) const; std::vector GetIgnoreList(const std::string &i_key); }; //================================================================================================================ } // EOF #endif