]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOGimmick.cpp
no message
[creaImageIO.git] / src2 / creaImageIOGimmick.cpp
index 5ec96f8120c5c0e1bcb8f4fb69d7a9015fdfbcec..eb1a91e2e4c391e506496451320b028c9f84d6ba 100644 (file)
@@ -8,16 +8,12 @@
 #ifndef PATH_MAX // If not defined yet : do it 
 #  define PATH_MAX 2048
 #endif
-
-#ifdef _RELWITHDEBINFO
-#define new DEBUG_NEW
-#endif
-
-
+#include <creaImageIOGimmick.h>
 #ifdef _DEBUG
 #define new DEBUG_NEW
 #endif
 
+
 namespace creaImageIO
 {
   //==============================================================
@@ -36,6 +32,7 @@ namespace creaImageIO
   //==============================================================
   Gimmick::~Gimmick()
   {
+
         if(mSettings!=0)
          {
                mSettings->writeSettingsFile();
@@ -59,27 +56,38 @@ namespace creaImageIO
   //==============================================================
   void Gimmick::Initialize()
   {
+printf("EED Gimmick::Initialize 1\n");   
        std::string i_nameDB = mLocalDBName;
     // Create the UserSettings dir if does not exist
+printf("EED Gimmick::Initialize 1 A\n");         
     CreateUserSettingsDirectory();
+printf("EED Gimmick::Initialize 1 B\n");         
     // Sets the current directory to the home dir
     mCurrentDirectory =  GetHomeDirectory();
+         printf("EED Gimmick::Initialize 1 C\n");        
     mSynchronizer= new Synchronizer(GetUserSettingsDirectory()+"Shared/gimmick/");
+         printf("EED Gimmick::Initialize 1 D\n");        
 
     mSettings  = new Settings(mCurrentDirectory);
        
+         printf("EED Gimmick::Initialize 1.1\n");        
     std::string dbpath = GetLocalDatabasePath();
+
     // Create or open local database
     std::string dpath= mCurrentDirectory + "/.gimmick/Shared/gimmick/" + mLocalDescpName;
+       
     boost::algorithm::replace_all( dpath,
                                   INVALID_FILE_SEPARATOR , 
                                   VALID_FILE_SEPARATOR);
+         printf("EED Gimmick::Initialize 1.2\n");        
     mLocalDatabase = createDB(i_nameDB, dpath, dbpath);
+         printf("EED Gimmick::Initialize 1.3\n");        
     // Add it to the TreeHandlerMap
     mTreeHandlerMap[i_nameDB] = mLocalDatabase;
     
     //Add additional DB from user Settings
     addDBSettings();   
+         printf("EED Gimmick::Initialize 2\n");          
   }
 
    ///////////////////////////////////////////////////////////////////////
@@ -130,7 +138,8 @@ namespace creaImageIO
         else 
         {
                /// Open and test it
-               GimmickMessage(1,"Opening local database '" <<i_locDB<< "' " << std::endl);
+               
+               GimmickDebugMessage(1,"Opening local database '" <<i_locDB<< "' " << std::endl);
                if ( !sqlTreeH->Open(true) )
                {
                        GimmickError("ERROR OPENING '"<<i_locDB<<"'");
@@ -201,7 +210,9 @@ namespace creaImageIO
     if (mLocalDatabasePath.size()==0) 
       {
        mLocalDatabasePath = GetUserSettingsDirectory();
-       mLocalDatabasePath += "Shared/gimmick/local_database.sqlite3";
+       mLocalDatabasePath += "Shared/gimmick/";
+       mLocalDatabasePath += mLocalDBName;
+       mLocalDatabasePath +=".sqlite3";
        boost::algorithm::replace_all( mLocalDatabasePath,
                                       INVALID_FILE_SEPARATOR , 
                                       VALID_FILE_SEPARATOR);
@@ -214,19 +225,44 @@ namespace creaImageIO
   //========================================================================
   void Gimmick::CreateUserSettingsDirectory()
   {
+         
+printf("EED Gimmick::CreateUserSettingsDirectory 1\n");
+        // std::string st("C:/Documents and Settings/cervenansky/.gimmick/");
+        //     boost::algorithm::replace_all( st, 
+               //                     INVALID_FILE_SEPARATOR , 
+               //                     VALID_FILE_SEPARATOR);
+               //const boost::filesystem::path mpath(st);
+//C:\Documents and Settings\cervenansky\.gimmick");
+         //if ( !boost::filesystem::exists( path ) )             return ;
+        //  boost::filesystem::directory_iterator end_itr; // default construction yields past-the-end
+        //  for ( boost::filesystem::directory_iterator itr( path );  itr != end_itr;  ++itr )
+        // {
+               //// If is directory & recurse : do recurse
+               //      if ( boost::filesystem::is_directory(itr->status()) )
+               //      return;
+        //  }
+
          //JCP settings dir 02/10/2009
          const std::string settingsdirectory = GetUserSettingsDirectory();
-         bool isdir = boost::filesystem::is_directory( settingsdirectory );
+               //boost::algorithm::replace_all( mUserSettingsDirectory, 
+                               //       INVALID_FILE_SEPARATOR , 
+                               //       VALID_FILE_SEPARATOR);
+;//("E:\frederic");
+                 //("C:\\Documents and Settings\\cervenansky\\.gimmick\\"); // settingsdirectory );
+               bool isdir = false;
+          isdir = boost::filesystem::is_directory(settingsdirectory); // settingsdirectory );
     if (! isdir )
       {
        GimmickMessage(1,"Directory '"<<GetUserSettingsDirectory()<<"' "
-                      << "does not exist : creating it"<<std::endl);
+                      << "does not exist : creating it"<<std::endl);
        
+printf("EED Gimmick::CreateUserSettingsDirectory 2\n");
        if ( ! boost::filesystem::create_directory( GetUserSettingsDirectory() ) )
          {
            GimmickError("ERROR CREATING '"<<GetUserSettingsDirectory()<<"'");
          }
       }
+printf("EED Gimmick::CreateUserSettingsDirectory 3\n");
 
        std::string setDir=GetUserSettingsDirectory();
        boost::algorithm::replace_all( setDir,
@@ -237,11 +273,11 @@ namespace creaImageIO
        setDir+="gimmick/";
        boost::filesystem::create_directory( setDir );
        setDir+=mLocalDescpName;
+printf("EED Gimmick::CreateUserSettingsDirectory 5\n");
 
        if(!boost::filesystem::is_regular(setDir))
        {
                char name[PATH_MAX];
-//EED          int err = GetBinaryDirectory(name, PATH_MAX);
                crea::System::GetAppPath(name,PATH_MAX);
                std::cout<<name<<std::endl;
                
@@ -253,19 +289,34 @@ namespace creaImageIO
 // The following stuff works on Linux, NOT CHECKED on Windows // JPR
                
 #if defined(_WIN32)            
-               path+="/bin/Shared/gimmick/";
-               path+=mLocalDescpName;
-#else          
-               path+="/Shared/gimmick/";
-               path+= mLocalDescpName;
-#endif         
+               path+="/bin/share/gimmick/";
+               printf("EED Gimmick::CreateUserSettingsDirectory 01xxx\n");             
+#endif
+
+#if defined (LINUX)
+               path+="/../share/gimmick/";
+               printf("EED Gimmick::CreateUserSettingsDirectory 03xxx\n");             
+#endif 
+#if defined(__APPLE__)
+               path+="/../../../../share/gimmick/";
+               printf("EED Gimmick::CreateUserSettingsDirectory 02xxx\n");             
+#endif 
+
+
+path+= mLocalDescpName;
+               
                std::cout <<"From: " << path   <<std::endl;
                std::cout <<"To: "   << setDir <<std::endl;
                boost::algorithm::replace_all(  path,
                                                INVALID_FILE_SEPARATOR , 
                                                VALID_FILE_SEPARATOR);
+printf("EED Gimmick::CreateUserSettingsDirectory 5.1 %s >>>  %s \n", path.c_str(), setDir.c_str() );
+printf("EED Gimmick::CreateUserSettingsDirectory 5.1.1 %s \n", mLocalDescpName.c_str() );
                boost::filesystem::copy_file(path,setDir);
+printf("EED Gimmick::CreateUserSettingsDirectory 5.2\n");
        }
+printf("EED Gimmick::CreateUserSettingsDirectory 6\n");
+         
   }
   //========================================================================