]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOGimmick.cpp
*** empty log message ***
[creaImageIO.git] / src2 / creaImageIOGimmick.cpp
index b7cc5f7b5ad1874e36fdd725515fdf2d569a3faa..99dd9d1a0e30e906e88db0530587b88d8399f017 100644 (file)
@@ -1,18 +1,19 @@
 #include <creaImageIOGimmick.h>
 
-#include <creaMessageManager.h>
+#include <creaImageIOSystem.h>
 
 #include <boost/filesystem.hpp>
 #include <boost/algorithm/string.hpp>
 
 namespace creaImageIO
 {
-  
+
+
   //==============================================================
   Gimmick::Gimmick()
+    : mImageAdder(0)
   {    
-    crea::MessageManager::RegisterMessageType("Gimmick!",
-                                             "Gimmick",1);
+    RegisterGimmickMessageTypes();
   }
   //==============================================================
 
@@ -27,55 +28,53 @@ namespace creaImageIO
   
 
   //==============================================================
-  bool Gimmick::Initialize()
+  void Gimmick::Initialize()
   {
     // Create the UserSettings dir if does not exist
-    if (!CreateUserSettingsDirectory()) return false;
+    CreateUserSettingsDirectory();
     // Sets the current directory to the home dir
     mCurrentDirectory =  GetHomeDirectory();
 
     // Create local database handler
     mLocalDatabase = new SQLiteTreeHandler(GetLocalDatabasePath());
+    // Add it to the TreeHandlerMap
+    mTreeHandlerMap["Local database"] = mLocalDatabase;
+
     // Create or open local database
     if (! boost::filesystem::exists( GetLocalDatabasePath() ) )
       {
-       creaMessage("Gimmick!",1,
-                   "[Gimmick!] Local database '"<<GetLocalDatabasePath()<<"' "
-                   << "does not exist : creating it"<<std::endl);
-
+       std::string mess = "Local database '";
+       mess += GetLocalDatabasePath();
+       mess += "' does not exist : creating it";
+       GimmickMessage(1,mess<<std::endl);
+       
        // CREATING DEFAULT DB STRUCTURE
        mLocalDatabase->GetTree().GetDescriptor().CreateDefault();
        
        if ( ! mLocalDatabase->Create(true) )
          {
-           creaMessage("Gimmick!",1,
-                       "[Gimmick!] !! ERROR CREATING '"<<GetLocalDatabasePath()<<"'");
-           return false;
+           GimmickError("ERROR CREATING '"<<GetLocalDatabasePath()<<"'");
          }
+       mLocalDatabase->SetAttribute(0,"Name","Local database");
       }
     else 
       {
        /// Open and test it
-       creaMessage("Gimmick!",1,
-                   "[Gimmick!] Opening local database '"
-                   <<GetLocalDatabasePath()<<"' "
-                   <<std::endl);
+       GimmickMessage(1,"Opening local database '"
+                      <<GetLocalDatabasePath()<<"' "
+                      <<std::endl);
        if ( ! mLocalDatabase->Open(true) )
          {
-           creaMessage("Gimmick!",1,
-                       "[Gimmick!] !! ERROR OPENING '"<<GetLocalDatabasePath()<<"'");
-           return false;
+           GimmickError("ERROR OPENING '"<<GetLocalDatabasePath()<<"'");
          }
        
       }
-    return true;
-
   }
   //================================================================
 
 
   //==============================================================
-  bool Gimmick::Finalize()
+  void Gimmick::Finalize()
   {
     delete mLocalDatabase;
   }
@@ -136,39 +135,86 @@ namespace creaImageIO
   //========================================================================
 
   //========================================================================
-  bool Gimmick::CreateUserSettingsDirectory()
+  void Gimmick::CreateUserSettingsDirectory()
   {
     if (! boost::filesystem::is_directory( GetUserSettingsDirectory() ) )
       {
-       creaMessage("Gimmick!",1,
-                   "[Gimmick!] Directory '"<<GetUserSettingsDirectory()<<"' "
-                   << "does not exist : creating it"<<std::endl);
+       GimmickMessage(1,"Directory '"<<GetUserSettingsDirectory()<<"' "
+                      << "does not exist : creating it"<<std::endl);
        
        if ( ! boost::filesystem::create_directory( GetUserSettingsDirectory() ) )
          {
-           creaMessage("Gimmick!",1,
-                       "[Gimmick!] !! ERROR CREATING '"<<GetUserSettingsDirectory()<<"'");
-           return false;
+           GimmickError("ERROR CREATING '"<<GetUserSettingsDirectory()<<"'");
          }
       }
-    return true;
   }
   //========================================================================
 
 
   //========================================================================
-  /// Sets debug mode
-  void Gimmick::SetDebugMode(bool m)
+  /// Sets message level
+  void Gimmick::SetMessageLevel(int l)
   {
-    if (m) 
-      {
-       crea::MessageManager::SetMessageLevel("Gimmick!",9);
-      }
-    else 
+    SetGimmickMessageLevel(l);
+  }
+  //========================================================================
+
+  //========================================================================
+  /// Sets message level
+  void Gimmick::SetDebugMessageLevel(int l)
+  {
+    SetGimmickDebugMessageLevel(l);
+  }
+  //========================================================================
+
+  //========================================================================
+  /// Add a file to the local database
+  TreeHandler* Gimmick::GetTreeHandler(const std::string& name) const 
+  {  
+    TreeHandlerMapType::const_iterator i;
+    i = GetTreeHandlerMap().find(name);
+    if ( i == GetTreeHandlerMap().end() )
       {
-       crea::MessageManager::SetMessageLevel("Gimmick!",1);
+       GimmickError("TreeHandler '"<<name<<"' does not exist");
       }
+    return i->second;
   }
+
+
+  //========================================================================
+  /// Add the files to the tree handler
+  void Gimmick::AddFiles(const std::string& d, 
+                       const std::vector<std::string>& filenames)
+  {
+    GimmickMessage(2,"Adding files to '"<<d<<"'"<<std::endl);
+    mImageAdder.SetTreeHandler(GetTreeHandler(d));
+    mImageAdder.AddFiles(filenames);
+
+  }
+  //========================================================================
+
   //========================================================================
+  /// Add a dir to the local database
+  void Gimmick::AddDir(const std::string& d, const std::string& f, 
+                      bool recurse)
+  {
+    GimmickMessage(2,"Adding dir '"<<f<<"' to '"<<d<<"' recurse:"
+                  <<recurse<<std::endl);
+
+    mImageAdder.SetTreeHandler(GetTreeHandler(d));
+    mImageAdder.AddDirectory(f,recurse);
+    
+  }
+  //========================================================================
+
+  //========================================================================
+  /// 
+  void Gimmick::Print(const std::string& d)
+  {
+    GetTreeHandler(d)->GetTree().Print();
+  }
+  //========================================================================
+
 
 }