]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOGimmick.cpp
Clean code
[creaImageIO.git] / src / creaImageIOGimmick.cpp
index 3ee74200b5422fecc40150d582903add50253e21..47e5b4f19c6a6e0f854640950056e1fb2027385c 100644 (file)
@@ -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 <creaImageIOGimmick.h>
-#include <creaImageIOSystem.h>
+
 #include <boost/filesystem.hpp>
 #include <boost/algorithm/string.hpp>
 
 #endif
 #include <creaImageIOGimmick.h>
 
+#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 '"<<i_locDB<<"'");
          }
          sqlTreeH->SetAttribute(0,"Name",i_name);
-        }
-        else 
-        {
+        } else {
                /// Open and test it
                
                GimmickDebugMessage(1,"Opening local database '" <<i_locDB<< "' " << std::endl);
@@ -151,8 +173,8 @@ namespace creaImageIO
                                                        ++it)
                {
                        delete it->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<std::string>& filenames)
   {
     GimmickMessage(2,"Adding files to '"<<d<<"'"<<std::endl);
        mImageAdder.SetCurrentDatabase(d);
        mImageAdder.SetTreeHandler(GetTreeHandler(d));
        mImageAdder.SetSynchronizer(mSynchronizer);
@@ -350,9 +371,7 @@ path+= mLocalDescpName;
   void Gimmick::AddDir(const std::string& d, const std::string& f, 
                       bool recurse)
   {
-       GimmickMessage(2,"Adding dir '"<<f<<"' to '"<<d<<"' recurse:"
-                        <<recurse<<std::endl);
-
+       GimmickMessage(2,"Adding dir '"<<f<<"' to '"<<d<<"' recurse:" <<recurse<<std::endl);
        TreeHandler * handler=GetTreeHandler(d);
        mImageAdder.SetCurrentDatabase(d);
        mImageAdder.SetTreeHandler(handler);
@@ -438,17 +457,17 @@ path+= mLocalDescpName;
                   {
                           std::map<std::string, std::string>::iterator it = map_attr.begin();
                           for(; it != map_attr.end(); it++)
+                          {
                                   i_res[it->first] = it->second;
-                  }
-                  else
-                  {
+                          } // for        
+                  } else {
                            std::vector<std::string>::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
   }
 
 
@@ -532,13 +551,24 @@ void Gimmick::fillVectInfos(std::vector<std::string> 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();
+}
+
+}