#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
#endif
#include <creaImageIOGimmick.h>
-#include <boost/algorithm/string.hpp>
+
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CreateUserSettingsDirectory();
// Sets the current directory to the home dir
mCurrentDirectory = GetHomeDirectory();
- mSynchronizer= new Synchronizer(GetUserSettingsDirectory()+"Shared/gimmick/");
+ mSynchronizer= new Synchronizer(GetUserSettingsDirectory()+"share/gimmick/");
mSettings = new Settings(mCurrentDirectory);
std::string dbpath = GetLocalDatabasePath();
// Create or open local database
- std::string dpath= mCurrentDirectory + "/.gimmick/Shared/gimmick/" + mLocalDescpName;
+ std::string dpath= mCurrentDirectory + "/.gimmick/share/gimmick/" + mLocalDescpName;
boost::algorithm::replace_all( dpath,
INVALID_FILE_SEPARATOR ,
if (mLocalDatabasePath.size()==0)
{
mLocalDatabasePath = GetUserSettingsDirectory();
- mLocalDatabasePath += "Shared/gimmick/";
+ mLocalDatabasePath += "share/gimmick/";
mLocalDatabasePath += mLocalDBName;
mLocalDatabasePath +=".sqlite3";
boost::algorithm::replace_all( mLocalDatabasePath,
boost::algorithm::replace_all( setDir,
INVALID_FILE_SEPARATOR ,
VALID_FILE_SEPARATOR);
- setDir+="Shared/";
+ setDir+="share/";
boost::filesystem::create_directory( setDir );
setDir+="gimmick/";
boost::filesystem::create_directory( setDir );
// The following stuff works on Linux, NOT CHECKED on Windows // JPR
#if defined(_WIN32)
- path+="/bin/Shared/gimmick/";
+ path+="/bin/share/gimmick/";
#endif
#if defined (LINUX)
}
//========================================================================
+ //========================================================================
+ // 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