#include <creaImageIOGimmick.h>
-
#include <creaImageIOSystem.h>
#include <boost/filesystem.hpp>
#include <boost/algorithm/string.hpp>
+
//#include "io.h"
#ifndef PATH_MAX // If not defined yet : do it
# define PATH_MAX 2048
}
//========================================================================
+ //========================================================================
+ // get attributes values from database for a given file from database
+ //========================================================================
+ void Gimmick::GetAttributes(const std::string filename, std::map<std::string, std::string> &i_res, OutputAttr i_attr)
+ {
+ if (i_attr.inside.size() > 0)
+ {
+ std::map<std::string, std::string> map_attr;
+ TreeHandler * handler=GetTreeHandler(i_attr.db);
+ handler->getAllAttributes(filename, map_attr);
+ if(i_attr.inside.front() == "ALL") // we take all values
+ {
+ std::map<std::string, std::string>::iterator it = map_attr.begin();
+ for(; it != map_attr.end(); it++)
+ i_res[it->first] = it->second;
+ }
+ else
+ {
+ std::vector<std::string>::iterator it = i_attr.inside.begin();
+ for(; it != i_attr.inside.end(); it++)
+ i_res[(*it)] = map_attr[(*it)];
+ }
+ }
+
+
+ }
+
+
//========================================================================
void Gimmick::UpdateSetting(const std::string& name, const std::string& value)
addDB(name, it_path->c_str());
}
}
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Fill attributes structure with attributes present in database (inside vector
+// and not present (outside)
+///////////////////////////////////////////////////////////////////////////////
+void Gimmick::fillVectInfos(std::vector<std::string> i_attr, OutputAttr &infos)
+{
+ //test if a tag is present in Database descriptor
+ TreeHandler * handler=GetTreeHandler(infos.db);
+ mImageAdder.SetTreeHandler(handler);
+ std::vector<std::string>::const_iterator it = i_attr.begin();
+ for (;it != i_attr.end(); it++)
+ {
+ if( mImageAdder.isAttributeExist((*it)) != "" ) // in DB
+ {
+ infos.inside.push_back((*it));
+ }
+ else
+ {
+ infos.outside.push_back((*it)); // Need to scan again the files
+ }
+ }
}
+
+}
\ No newline at end of file