X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOGimmick.cpp;h=47e5b4f19c6a6e0f854640950056e1fb2027385c;hb=refs%2Fheads%2Fvtk8itk5wx3-macos;hp=5c7b07fd4fb9e36f366c64b8fef7176e69c73b34;hpb=2e07001ca19daa5e58e0af4a6e5ebfbe75de91c5;p=creaImageIO.git diff --git a/src/creaImageIOGimmick.cpp b/src/creaImageIOGimmick.cpp index 5c7b07f..47e5b4f 100644 --- a/src/creaImageIOGimmick.cpp +++ b/src/creaImageIOGimmick.cpp @@ -1,6 +1,32 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ +*/ #include -#include + #include #include @@ -10,6 +36,10 @@ #endif #include +#if defined(_WIN32) +#pragma warning(disable: 4996) +#endif + #ifdef _DEBUG #define new DEBUG_NEW #endif @@ -22,10 +52,10 @@ namespace creaImageIO : mImageAdder(0) { RegisterGimmickMessageTypes(); - mSettings=0; - mSynchronizer=0; + mSettings = NULL; + mSynchronizer = NULL; mLocalDescpName = "localdatabase_Descriptor.dscp"; - mLocalDBName = "Local database"; + mLocalDBName = "Local database"; } //============================================================== @@ -33,13 +63,12 @@ namespace creaImageIO //============================================================== Gimmick::~Gimmick() { - - if(mSettings!=0) + if(mSettings!=NULL) { mSettings->writeSettingsFile(); delete mSettings; } - if(mSynchronizer!=0) + if(mSynchronizer!=NULL) { delete mSynchronizer; } @@ -49,8 +78,8 @@ namespace creaImageIO //============================================================== void Gimmick::Initialize(const std::string i_namedescp, const std::string i_namedb) { - mLocalDescpName = i_namedescp; - mLocalDBName = i_namedb; + mLocalDescpName = i_namedescp; + mLocalDBName = i_namedb; Initialize(); } @@ -62,22 +91,17 @@ namespace creaImageIO CreateUserSettingsDirectory(); // Sets the current directory to the home dir mCurrentDirectory = GetHomeDirectory(); - mSynchronizer= new Synchronizer(GetUserSettingsDirectory()+"share/gimmick/"); - + mSynchronizer= new Synchronizer( GetUserSettingsDirectory()+"share/creaImageIO/" ); mSettings = new Settings(mCurrentDirectory); - std::string dbpath = GetLocalDatabasePath(); - // Create or open local database - std::string dpath= mCurrentDirectory + "/.gimmick/share/gimmick/" + mLocalDescpName; - + std::string dpath= mCurrentDirectory + "/.creaImageIO/share/creaImageIO/" + mLocalDescpName; boost::algorithm::replace_all( dpath, INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR); mLocalDatabase = createDB(i_nameDB, dpath, dbpath); // Add it to the TreeHandlerMap mTreeHandlerMap[i_nameDB] = mLocalDatabase; - //Add additional DB from user Settings addDBSettings(); } @@ -126,9 +150,7 @@ namespace creaImageIO GimmickError("ERROR CREATING '"<SetAttribute(0,"Name",i_name); - } - else - { + } else { /// Open and test it GimmickDebugMessage(1,"Opening local database '" <second; - } - } + } // for + } // if } //============================================================== @@ -172,10 +194,10 @@ namespace creaImageIO { if (mHomeDirectory.size()==0) { -#if defined(__GNUC__) - mHomeDirectory = getenv("HOME"); -#elif defined(_WIN32) +#if defined(_WIN32) mHomeDirectory = getenv("USERPROFILE"); +#elif defined(__GNUC__) + mHomeDirectory = getenv("HOME"); #endif } return mHomeDirectory; @@ -186,7 +208,7 @@ namespace creaImageIO if (mUserSettingsDirectory.size()==0) { mUserSettingsDirectory = GetHomeDirectory(); - mUserSettingsDirectory += "/.gimmick/"; + mUserSettingsDirectory += "/.creaImageIO/"; boost::algorithm::replace_all( mUserSettingsDirectory, INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR); @@ -202,7 +224,7 @@ namespace creaImageIO if (mLocalDatabasePath.size()==0) { mLocalDatabasePath = GetUserSettingsDirectory(); - mLocalDatabasePath += "share/gimmick/"; + mLocalDatabasePath += "share/creaImageIO/"; mLocalDatabasePath += mLocalDBName; mLocalDatabasePath +=".sqlite3"; boost::algorithm::replace_all( mLocalDatabasePath, @@ -259,7 +281,7 @@ namespace creaImageIO VALID_FILE_SEPARATOR); setDir+="share/"; boost::filesystem::create_directory( setDir ); - setDir+="gimmick/"; + setDir+="creaImageIO/"; boost::filesystem::create_directory( setDir ); setDir+=mLocalDescpName; @@ -277,14 +299,14 @@ namespace creaImageIO // The following stuff works on Linux, NOT CHECKED on Windows // JPR #if defined(_WIN32) - path+="/bin/share/gimmick/"; + path+="/bin/share/creaImageIO/"; #endif #if defined (LINUX) - path+="/../share/gimmick/"; + path+="/../share/creaImageIO/"; #endif #if defined(__APPLE__) - path+="/../../../../share/gimmick/"; + path+="/../../../../share/creaImageIO/"; #endif @@ -337,7 +359,6 @@ path+= mLocalDescpName; const std::vector& filenames) { GimmickMessage(2,"Adding files to '"<::iterator it = map_attr.begin(); for(; it != map_attr.end(); it++) + { i_res[it->first] = it->second; - } - else - { + } // for + } else { std::vector::iterator it = i_attr.inside.begin(); - for(; it != i_attr.inside.end(); it++) + for(; it != i_attr.inside.end(); it++) + { i_res[(*it)] = map_attr[(*it)]; - } - } + } // for + } // if ALL + } // if size } @@ -530,13 +551,24 @@ void Gimmick::fillVectInfos(std::vector i_attr, OutputAttr &infos) { if( mImageAdder.isAttributeExist((*it)) != "" ) // in DB { +printf("EED Gimmick::fillVectInfos inside %s\n",(*it).c_str()); infos.inside.push_back((*it)); - } - else - { + } else { infos.outside.push_back((*it)); // Need to scan again the files - } - } +printf("EED Gimmick::fillVectInfos outside %s\n",(*it).c_str()); + } // if + } // for } -} \ No newline at end of file +const std::string Gimmick::getSummary() +{ + const AddProgress& p = GetAddProgress(); + std::stringstream mess; + mess << "Dirs \tscanned\t: " << p.GetNumberScannedDirs() << "\n"; + mess << "Files\tscanned\t: " << p.GetNumberScannedFiles() << "\n"; + mess << "Files\thandled\t: " << p.GetNumberHandledFiles() << "\n\n"; + mess << "Files\tadded \t: " << p.GetNumberAddedFiles() << "\n\n"; + return mess.str(); +} + +}