// @param : the add key
//@result : list (path) of ignore files
/////////////////////////////////////////////////////////////////////////////////////////////////
- void Synchronizer::GetList()
+ void Synchronizer::GetList(const std::string i_db)
{
- mList.clear();
+ mList.clear();
std::vector<std::string> i_names;
- std::string query = "SELECT PATH, REMOVE FROM IGNORED_FILES";
- CppSQLite3Query res;
+ std::vector<std::string> keys;
+ CppSQLite3Query res;
+ std::string query ="SELECT ADD_KEY, REFERENCEDDB FROM ADD_OPS";
+ QUERYSYNCDB(query, res);
+ keys.clear();
+ while (!res.eof())
+ {
+ std::string key(res.getStringField(0));
+ std::string db(res.getStringField(1));
+ if (db == i_db)
+ {
+ keys.push_back(key);
+ }
+ res.nextRow();
+ }
+ query = "SELECT PATH, REMOVE FROM IGNORED_FILES WHERE";
+ if(keys.size() > 0)
+ {
+ for (int i=0; i < keys.size(); i++)
+ {
+ query += " ADD_KEY = " + keys[i];
+ query += " AND";
+ }
+ query = query.substr(0,query.size() - 4);
+ }
+ else
+ {
+ query += " ADD_KEY = -1";
+ }
QUERYSYNCDB(query, res);
- while (!res.eof())
+ while (!res.eof())
{
std::string file(res.getStringField(0));
std::string ignore(res.getStringField(1));
const std::string& searchValue,
const std::string& refdb);
// Get the List of indexed files (removed or not)
- void GetList();
+ void GetList(const std::string i_db);
// Test to not if a file is indexed on db or not
bool isIndexed(const std::string filename);
// List of all indexed files
unsigned int nbf = filenames.size();
std::vector<std::string>::const_iterator i;
- mSynchronizer->GetList();
+ mSynchronizer->GetList(mCurrentDB);
for (i=filenames.begin();i!=filenames.end();++i)
{
mSynchronizer->InsertAddOp(directory,rec.str(),"0",mCurrentDB);
std::string addKey=mSynchronizer->GetAttribute("ADD_KEY","ADD_OPS","PATH",directory,mCurrentDB);
mTreeHandler->BeginTransaction();
- mSynchronizer->GetList();
+ mSynchronizer->GetList(mCurrentDB);
AddDirectoryRecursor( directory, recurse, addKey );
int nFiles=GetProgress().GetNumberAddedFiles();
std::map< std::string, std::string> attr;
mTreeHandler->GetTree().GetDescriptor().BuildAttributeMap(attr);
+
mReader.ReadAttributes(filename,attr);
+ //// TO DO Create a function to test if the SOP Instance ID (0008,0018) is not already on DB
+ //// test befor if this attr is present on DB if not don't perform the test!!!
+ //bool bSOPIID = false;
+ //std::map<std::string, std::string>::iterator it_att = attr.begin();
+ //for(; it_att != attr.end(); it_att++)
+ //{
+ // if (it_att->first == "D0008_0018")
+ // {
+ // bSOPIID = mTreeHandler->TestSOPIID(it_attr->second);
+ // break;
+ // }
+ //}
+ //if(bSOPIID)
+ // return;
int lev = mTreeHandler->AddBranch(attr);