]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkFactory.cxx
Bug fix in status propagation
[bbtk.git] / kernel / src / bbtkFactory.cxx
index 22c6ad362cf4556c3b0715a2c68041800d40dadc..4d824a9f0c3221da727a2626074d17f6863fcae6 100644 (file)
@@ -1,22 +1,33 @@
-/*=========================================================================
-                                                                                
-Program:   bbtk
-Module:    $RCSfile: bbtkFactory.cxx,v $
-Language:  C++
-
-Date:      $Date: 2008/04/21 11:38:19 $
-Version:   $Revision: 1.34 $
-                                                                                
-
-Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
-l'Image). All rights reserved. See doc/license.txt or
-http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
+/*=========================================================================                                                                               
+  Program:   bbtk
+  Module:    $RCSfile: bbtkFactory.cxx,v $
+  Language:  C++
+  Date:      $Date: 2008/10/17 08:18:13 $
+  Version:   $Revision: 1.40 $
+=========================================================================*/
 
-This software is distributed WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.  See the above copyright notices for more information.
+/* ---------------------------------------------------------------------
+
+* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+*
+*  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.
+* ------------------------------------------------------------------------ */                                                                         
 
-=========================================================================*/
 /**
  *\file
  *\brief  Class bbtk::Factory : can load and unload dynamic libraries containing 
@@ -37,6 +48,7 @@ PURPOSE.  See the above copyright notices for more information.
 
 #include <cctype>    // std::toupper
 
+#include <time.h>
 
 namespace bbtk
 {
@@ -137,7 +149,7 @@ namespace bbtk
   // lastname : string before the last / (if any), or user supplied name
 
     bbtkDebugMessageInc("Kernel",7,"Factory::LoadPackage(\""<<name<<"\")"<<std::endl);
-    bbtkMessage("Debug",1,"Factory::LoadPackage(\""<<name<<"\")"<<std::endl);
+    bbtkMessage("debug",1,"Factory::LoadPackage(\""<<name<<"\")"<<std::endl);
 
     std::vector<std::string> package_paths;
     std::string libname;  // full path library name
@@ -146,8 +158,8 @@ namespace bbtk
     std::string upath;
     pkgname = Utilities::ExtractPackageName(name,upath);
 
-    bbtkMessage("Debug",1,"Package name ["<<pkgname<<"]"<<std::endl);
-    bbtkMessage("Debug",1,"Package path ["<<upath<<"]"<<std::endl);
+    bbtkMessage("debug",1,"Package name ["<<pkgname<<"]"<<std::endl);
+    bbtkMessage("debug",1,"Package path ["<<upath<<"]"<<std::endl);
 
     // no loading package if already loaded
     PackageMapType::iterator iUnload;
@@ -231,7 +243,7 @@ namespace bbtk
 
         libname = Utilities::MakeLibnameFromPath(path, pkgname);
 
-        bbtkMessage("Debug",2,"-> Trying to load [" << libname << "]" <<std::endl);
+        bbtkMessage("debug",2,"-> Trying to load [" << libname << "]" <<std::endl);
 
       // Check if library exists           
         if ( !Utilities::FileExists(libname) )
@@ -250,9 +262,9 @@ namespace bbtk
         ok = DoLoadPackage( libname, pkgname, path);
         if (ok)
         {
-           bbtkMessage("Debug",2,"   OK"<<std::endl);
-           break; // a package was found; we stop iterating
+           bbtkMessage("debug",2,"   OK"<<std::endl);
         }
+       break; // we stop iterating even if error : have to signal it to user
     } //------------------ // end for ( package_paths.begin();i!=package_paths.end() )
 
 }
@@ -267,10 +279,12 @@ namespace bbtk
       {
 #if defined(__GNUC__)
         bbtkError("Could not load package ["<< pkgname
-                  <<"] :" << std::endl << "   " << dlerror());
+                  <<"] :" << std::endl 
+                 << "  Opening "<<libname<<" failed"
+                 << "  Reason: "<< dlerror());
 #elif defined(_WIN32)
         bbtkError("Could not load package ["<<pkgname
-                 <<"] : " << std::endl << "   " <<libname<<" not found");
+                 <<"] :"<< std::endl << "   Error loading " <<libname);
 
     // look how to get the error message on win
     //<<dlerror());
@@ -670,7 +684,7 @@ namespace bbtk
                 ++j)
              {
                if ( ( j->first.mKind ==  
-                      BlackBoxDescriptor::DEFAULT_WIDGET_ADAPTOR) &&
+                      BlackBoxDescriptor::DEFAULT_GUI) &&
                     //(j->first.mTypeIn == typein) &&
                     (j->first.mTypeOut.GetNature() == typeout.GetNature() ) 
                     )
@@ -750,14 +764,14 @@ namespace bbtk
   //===================================================================
   void Factory::CheckPackages() const
   {
-    bbtkMessage("Debug",1,"****** Checking Factory "<<(void*)this
+    bbtkMessage("debug",1,"****** Checking Factory "<<(void*)this
                 <<std::endl);
     PackageMapType::const_iterator i;
     for (i = mPackageMap.begin(); i!=mPackageMap.end(); ++i )
       {
        i->second->CheckBoxes();
       }
-    bbtkMessage("Debug",1,"****** Checking Factory "<<(void*)this
+    bbtkMessage("debug",1,"****** Checking Factory "<<(void*)this
                <<" ... OK"<<std::endl);
   }
   //===================================================================
@@ -1016,7 +1030,7 @@ namespace bbtk
     ptm = gmtime ( &rawtime );
 
     s << "<p><hr>\n";
-    s << "Automatically generated by <b>bbi</b> on "
+    s << "Automatically generated by <b>bbtk</b> on "
       << ptm->tm_mday << "/" << ptm->tm_mon << "/" << ptm->tm_year+1900 
       << " - " << ptm->tm_hour << ":" << ptm->tm_min << " GMT\n";
     s << "</body></html>\n";