CreateUserSettingsDirectory();
// Sets the current directory to the home dir
mCurrentDirectory = GetHomeDirectory();
- mSynchronizer=0;
+ mSynchronizer= new Synchronizer(GetUserSettingsDirectory());
std::string dbpath = GetLocalDatabasePath();
// Create or open local database
- mLocalDatabase = createDB( mCurrentDirectory + "\\.gimmick\\localdatabase_Descriptor.txt", dbpath);
+ mLocalDatabase = createDB(i_nameDB, mCurrentDirectory + "\\.gimmick\\localdatabase_Descriptor.txt", dbpath);
// Add it to the TreeHandlerMap
mTreeHandlerMap[i_nameDB] = mLocalDatabase;
// @param i_location : DB location //
// return : - //
///////////////////////////////////////////////////////////////////////
- void Gimmick::addDB(std::string &i_name, std::string &i_location)
+ void Gimmick::addDB(const std::string &i_name,
+ const std::string &i_location)
{
- mTreeHandlerMap[i_name] = new SQLiteTreeHandler(i_location);
+ if(mTreeHandlerMap.find(i_name) == mTreeHandlerMap.end())
+ {
+ mTreeHandlerMap[i_name] = new SQLiteTreeHandler(i_location);
+ mTreeHandlerMap[i_name]->Open(true);
+ }
}
///////////////////////////////////////////////////////////////////////////
// create a DB from a attributes descriptor file for medical images //
+ // @param i_name : DB name //
// @param i_locDesc : location of descriptor file //
// @param i_locDB : location of DB //
// return : the SQLiteTreeHandler object on DB //
/////////////////////////////////////////////////////////////////////////
- SQLiteTreeHandler *Gimmick::createDB(std::string &i_locDesc, std::string &i_locDB)
+ SQLiteTreeHandler *Gimmick::createDB(const std::string &i_name,
+ const std::string &i_locDesc,
+ const std::string &i_locDB)
{
SQLiteTreeHandler *sqlTreeH = new SQLiteTreeHandler(i_locDB);
// Create or open local database
{
GimmickError("ERROR CREATING '"<<i_locDB<<"'");
}
- sqlTreeH->SetAttribute(0,"Name","i_name");
+ sqlTreeH->SetAttribute(0,"Name",i_name);
}
else
{
//==============================================================
void Gimmick::Finalize()
{
+
// delete SQLiteTreeHandler Object
for( TreeHandlerMapType::const_iterator it = mTreeHandlerMap.begin();
it!= mTreeHandlerMap.end(); ++it)
mImageAdder.SetTreeHandler(GetTreeHandler(d));
mImageAdder.SetTimestampHandler(mTimestampDatabase);
+ mImageAdder.SetSynchronizer(mSynchronizer);
mImageAdder.AddFiles(filenames);
-
+
}
//========================================================================
TreeHandler * handler=GetTreeHandler(d);
mImageAdder.SetTreeHandler(handler);
mImageAdder.SetTimestampHandler(mTimestampDatabase);
- mImageAdder.AddDirectory(f,recurse);
- //Synchronize(true, handler);
-
+ mImageAdder.SetSynchronizer(mSynchronizer);
+ mImageAdder.AddDirectory(f,recurse);
}
//========================================================================
//========================================================================
-
- void Gimmick::Synchronize(bool update, TreeHandler* handler)
+ void Gimmick::RemoveFile(const std::string& d,
+ tree::Node* node)
{
- GimmickMessage(4,"Synchronizing. Update:"<<update<<std::endl);
- if(mSynchronizer==0)
- {
- mSynchronizer=new Synchronizer(handler);
- }
- else
- {
- mSynchronizer->SetTreeHandler(handler);
- }
- mSynchronizer->Synchronize(update);
+ mImageAdder.SetSynchronizer(mSynchronizer);
+ mTimestampDatabase->RemoveNode("PATH",node);
+ mImageAdder.RemoveFile(node);
+ }
+ //========================================================================
+ //========================================================================
+
+ std::string Gimmick::Synchronize(bool repair, bool checkAttributes)
+ {
+ TreeHandler * handler=GetTreeHandler("Local database");
+ mImageAdder.SetTreeHandler(handler);
+ mImageAdder.SetTimestampHandler(mTimestampDatabase);
+ mImageAdder.SetSynchronizer(mSynchronizer);
+ return mImageAdder.Synchronize(repair, checkAttributes);
}
//========================================================================