#include <creaImageIOSynchron.h>
#include <creaImageIOSystem.h>
#include <boost/filesystem.hpp>
+#include <boost/algorithm/string.hpp>
+//namespace fs = boost::filesystem;
-namespace fs = boost::filesystem;
//=====================================================================
//=====================================================================
void Synchronizer::Initialize()
{
- if (!fs::exists(pathDB))
+ if (!boost::filesystem::exists(pathDB))
{
CreateDB();
}
/////////////////////////////////////////////////////////////////////////////////////////////////
// remove an entry of the DB
- //@param i_table : table where do the remove
+ //@param i_table : table where to do the remove
// @param i_key : the add_key reference (one entry to remove for ADD_OP table, many for IGNORED_FILES table
//@result : -
/////////////////////////////////////////////////////////////////////////////////////////////////
UPDATESYNCDB(query);
}
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ // remove several entries of the DB
+ // @param i_table : table where to do the remove
+ // @param i_attribute: attribute to match
+ // @param i_operand : operand to use
+ // @param i_val : the reference
+ //@result : -
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ void Synchronizer::RemoveEntries(const std::string i_table,
+ const std::string i_attribute,
+ const std::string i_operand,
+ const std::string i_val)
+ {
+ std::stringstream query;
+ query<<"DELETE FROM "<<i_table<<" WHERE "<<i_attribute<<" "<<i_operand<<" '"<<i_val<<"'";
+ UPDATESYNCDB(query.str());
+ }
+
/////////////////////////////////////////////////////////////////////////////////////////////////
// clean DataBase if an operation has no child anymore
// @param refdb: the database segement to clean
sql += "';";
UPDATESYNCDB(sql);
}
-}
+
+
+/////////////////////////////////////////////////////////////////////////////////////////////////
+ // get the files name to ignore for a add operation synchronization
+ // @param : the add key
+ //@result : list (path) of ignore files
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ void Synchronizer::GetList()
+ {
+ mList.clear();
+ std::vector<std::string> i_names;
+ std::string query = "SELECT PATH, REMOVE FROM IGNORED_FILES";
+ CppSQLite3Query res;
+ QUERYSYNCDB(query, res);
+ while (!res.eof())
+ {
+ std::string file(res.getStringField(0));
+ std::string ignore(res.getStringField(1));
+ mList[file] = ignore == "0"? true : false;
+ res.nextRow();
+ }
+
+ }
+
+ bool Synchronizer::isIndexed(const std::string filename)
+ {
+ bool valid = true;
+ std::string name(filename);
+ boost::algorithm::replace_all( name,"\\" , "/");
+ std::map <std::string, bool>::iterator it_list = mList.begin();
+ for(;it_list != mList.end(); it_list++)
+ {
+ if(it_list->first == name)
+ {
+ valid = false;
+ break;
+ }
+ }
+ return valid;
+ }
+}
\ No newline at end of file