]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOGimmick.cpp
no message
[creaImageIO.git] / src2 / creaImageIOGimmick.cpp
index e54d1bf1e44597fcd5b9d88daa179e4f4694598b..5aa2c105cb4b5985cdc797719bd622403cd3038b 100644 (file)
@@ -4,6 +4,10 @@
 #include <boost/filesystem.hpp>
 #include <boost/algorithm/string.hpp>
 
+#ifndef PATH_MAX // If not defined yet : do it 
+#  define PATH_MAX 2048
+#endif
+
 namespace creaImageIO
 {
 
@@ -39,7 +43,7 @@ namespace creaImageIO
   //==============================================================
   void Gimmick::Initialize()
   {
-         std::string i_nameDB = "Local database";
+       std::string i_nameDB = "Local database";
     // Create the UserSettings dir if does not exist
     CreateUserSettingsDirectory();
     // Sets the current directory to the home dir
@@ -51,7 +55,11 @@ namespace creaImageIO
 
        std::string dbpath = GetLocalDatabasePath();
     // Create or open local database
-       mLocalDatabase = createDB(i_nameDB, mCurrentDirectory + "\\.gimmick\\localdatabase_Descriptor.txt", dbpath);
+       std::string dpath= mCurrentDirectory + "/.gimmick/localdatabase_Descriptor.txt";
+       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;
     
@@ -201,6 +209,7 @@ namespace creaImageIO
   }
   //================================================================
 
+
   //================================================================
   const std::string& Gimmick::GetLocalDatabasePath()
   {
@@ -245,6 +254,28 @@ namespace creaImageIO
            GimmickError("ERROR CREATING '"<<GetUserSettingsDirectory()<<"'");
          }
       }
+
+       std::string setDir=GetUserSettingsDirectory();
+       boost::algorithm::replace_all( setDir,
+                                      INVALID_FILE_SEPARATOR , 
+                                      VALID_FILE_SEPARATOR);
+       setDir+="localdatabase_Descriptor.txt";
+       //if(!boost::filesystem::is_regular_file(setDir))  //JPRX
+       if(!boost::filesystem::is_regular(setDir))
+       {
+               char name[PATH_MAX];
+//EED          int err = GetBinaryDirectory(name, PATH_MAX);
+               crea::System::GetAppPath(name,PATH_MAX);
+               
+               std::string path=name;
+               path=path.substr(0,path.size()-1);
+               path=path.substr(0,path.find_last_of("/"));
+               path+="/data/localdatabase_Descriptor.txt";
+               boost::algorithm::replace_all( path,
+                                               INVALID_FILE_SEPARATOR , 
+                                               VALID_FILE_SEPARATOR);
+               boost::filesystem::copy_file(path,setDir);
+       }
   }
   //========================================================================
 
@@ -371,6 +402,22 @@ namespace creaImageIO
 
   //========================================================================
 
+  void Gimmick::GetAttributes(const std::string& d, 
+         const std::string& filename, 
+         const std::vector<std::string>& params, 
+         std::vector<std::string>& results)
+  {
+         TreeHandler * handler=GetTreeHandler(d);
+         mImageAdder.SetCurrentDatabase(d);
+         mImageAdder.SetTreeHandler(handler);
+         mImageAdder.SetTimestampHandler(mTimestampDatabase);
+         mImageAdder.SetSynchronizer(mSynchronizer);
+         mImageAdder.GetAttributes(params, filename, results);
+  }
+  //========================================================================
+
+  //========================================================================
+
   void Gimmick::UpdateSetting(const std::string& name, const std::string& value)
   {
          mSettings->updateSetting(name,value);