-/*=========================================================================
-
-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
#include <cctype> // std::toupper
+#include <time.h>
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
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;
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) )
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() )
}
{
#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());
++j)
{
if ( ( j->first.mKind ==
- BlackBoxDescriptor::DEFAULT_WIDGET_ADAPTOR) &&
+ BlackBoxDescriptor::DEFAULT_GUI) &&
//(j->first.mTypeIn == typein) &&
(j->first.mTypeOut.GetNature() == typeout.GetNature() )
)
//===================================================================
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);
}
//===================================================================
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";