]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkPackage.cxx
Merge branch 'wt-version'
[bbtk.git] / kernel / src / bbtkPackage.cxx
index 66465e9813e2bb200a50e611848ad8c3d3e2cc88..91cdb518372b220f124b1de33af8dc5c22c8912a 100644 (file)
@@ -1,33 +1,40 @@
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  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.
+ # ------------------------------------------------------------------------ */
+
+
 
 /*=========================================================================                                                                               
   Program:   bbtk
   Module:    $RCSfile: bbtkPackage.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/09/12 14:52:25 $
-  Version:   $Revision: 1.35 $
+  Date:      $Date: 2012/11/16 08:49:01 $
+  Version:   $Revision: 1.37 $
 =========================================================================*/
 
-/* ---------------------------------------------------------------------
-
-* 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
@@ -78,8 +85,10 @@ namespace bbtk
     mDescription(description),
     mVersion(version)
   {
+
     bbtkDebugMessage("object",2,"==> Package('"<<name<<"',...)"
                     <<bbtkendl);
+
     std::string default_doc_dir = ConfigurationFile::GetInstance().Get_default_temp_dir();
     char c = default_doc_dir.c_str()[strlen(default_doc_dir.c_str())-1];
     std::string url = default_doc_dir; 
@@ -349,11 +358,8 @@ namespace bbtk
   /// to test that a dyn lib is a valid bbtk package lib
   /// NB : The BBTK version exported from the library 
   ///      is tested against the current bbtk version
-  DynamicLibraryHandler Package::OpenDynamicLibrary
-  ( const std::string& libname,
-    const std::string& package_name,
-    DLGetPackageFunction& getpack,
-    DLDeletePackageFunction& delpack)
+  DynamicLibraryHandler Package::OpenDynamicLibrary( const std::string& libname,const std::string& package_name,
+                                                                                                        DLGetPackageFunction& getpack, DLDeletePackageFunction& delpack)
   {
     bbtkDebugMessage("package",3,"==> Package::OpenDynamicLibrary("
                     <<libname<<")"<<std::endl);
@@ -366,8 +372,8 @@ namespace bbtk
          
     if (!handler)
       {
-       bbtkMessage("package",2,
-                   "Could not open shared library [" <<libname<<"] : "
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading could not open shared library [" <<libname<<"] : "
                    <<dlerror() << std::endl);
        return 0;
       }
@@ -376,15 +382,13 @@ namespace bbtk
 
     // Loads the Package bbtk version function 
     std::string getvername(package_name);
-    getvername += 
-      BBTK_STRINGIFY_SYMBOL(BBTK_GET_PACKAGE_BBTK_VERSION_FUNCTION_NAME);
-    DLGetPackageBBTKVersionFunction getbbtkversion 
-      = (DLGetPackageBBTKVersionFunction)(dlsym(handler,getvername.c_str()));
+    getvername += BBTK_STRINGIFY_SYMBOL(BBTK_GET_PACKAGE_BBTK_VERSION_FUNCTION_NAME);
+    DLGetPackageBBTKVersionFunction getbbtkversion  = (DLGetPackageBBTKVersionFunction)(dlsym(handler,getvername.c_str()));
     if (!getbbtkversion)
       {
        bbtkDebugMessage("package",3,"***"<<std::endl);
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading shared library ["<<libname
                    <<"] is not a valid bbtk package."
                    <<" Symbol ["<<getvername<<"] :"<<dlerror()<< std::endl);
        dlclose(handler);
@@ -394,14 +398,16 @@ namespace bbtk
     bbtkDebugMessage("package",3,"* Symbol ["<<getvername
                     <<"] found"<<std::endl);
     // version matches ?
+
     if (getbbtkversion() != bbtk::GetVersion())
       {
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading: "<<package_name
+                       <<" - Shared library ["<<libname
                    <<"] was build with bbtk version "
                    <<getbbtkversion()
                    <<" but the current program runs with version "
-                   <<bbtk::GetVersion()<<" : cannot load it"<<std::endl);
+                   <<bbtk::GetVersion()<<" : cannot load it. You have to recompile your BBTK-Package."<<std::endl);
        dlclose(handler);
        return 0;
        
@@ -414,8 +420,8 @@ namespace bbtk
     getpack = (DLGetPackageFunction)(dlsym(handler, getpackname.c_str()));
     if (!getpack)
       {
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading shared library ["<<libname
                    <<"] is not a valid bbtk package."
                    <<" Symbol ["<<getpackname<<"] :"<<dlerror()<< std::endl);
        dlclose(handler);
@@ -430,8 +436,8 @@ namespace bbtk
     delpack = (DLDeletePackageFunction)(dlsym(handler, delpackname.c_str()));
     if (!delpack)
       {
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading shared library ["<<libname
                    <<"] is not a valid bbtk package."
                    <<" Symbol ["<<delpackname<<"] :"<<dlerror()<< std::endl);
        dlclose(handler);
@@ -447,8 +453,8 @@ namespace bbtk
     handler = LoadLibrary(libname.c_str());
     if (!handler)
       {
-       bbtkMessage("package",2,
-                   "Could not open shared library [" <<libname<<"]"
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR..  could not open shared library [" <<libname<<"]"
                    << std::endl);
        DWORD dwErrorCode = 0;
        dwErrorCode = GetLastError();
@@ -461,16 +467,14 @@ namespace bbtk
     
     // Loads the Package bbtk version function 
     std::string getvername(package_name);
-    getvername += 
-      BBTK_STRINGIFY_SYMBOL(BBTK_GET_PACKAGE_BBTK_VERSION_FUNCTION_NAME);
-    DLGetPackageBBTKVersionFunction getbbtkversion 
-      = (DLGetPackageBBTKVersionFunction)(GetProcAddress(handler,
-                                                       getvername.c_str()));
+    getvername += BBTK_STRINGIFY_SYMBOL(BBTK_GET_PACKAGE_BBTK_VERSION_FUNCTION_NAME);
+    DLGetPackageBBTKVersionFunction getbbtkversion = (DLGetPackageBBTKVersionFunction)(GetProcAddress(handler, getvername.c_str()));
+         
     if (!getbbtkversion)
       {
        FreeLibrary(handler);
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading shared library ["<<libname
                    <<"] is not a valid bbtk package."
                    <<" Symbol ["<<getbbtkversion<<"] not found"<< std::endl);
        return 0;
@@ -479,15 +483,15 @@ namespace bbtk
     // version matches ?
     if (getbbtkversion() != bbtk::GetVersion())
       {
-       FreeLibrary(handler);
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
-                   <<"] was build with bbtk version "
-                   <<getbbtkversion()
-                   <<" but the current program runs with version "
-                   <<bbtk::GetVersion()<<" : cannot load it"<<std::endl);
-       return 0;
-       
+                 FreeLibrary(handler);
+                 bbtkMessage("package",0,
+                               "BBTK ..ERROR.. loading: "<<package_name
+                               <<" - Shared library ["<<libname
+                               <<"] was build with bbtk version "
+                               <<getbbtkversion()
+                               <<" but the current program runs with version "
+                               <<bbtk::GetVersion()<<" : cannot load it. You have to recompile your BBTK-Package."<<std::endl);
+                 return 0;
       }
 
      // Loads the Package get function
@@ -497,8 +501,8 @@ namespace bbtk
     if (!getpack)
       {
        FreeLibrary(handler);
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading shared library ["<<libname
                    <<"] is not a valid bbtk package."
                    <<" Symbol ["<<getpackname<<"] not found"<< std::endl);
        return 0;
@@ -511,8 +515,8 @@ namespace bbtk
     if (!delpack)
       {
        FreeLibrary(handler);
-       bbtkMessage("package",2,
-                   "Shared library ["<<libname
+       bbtkMessage("package",0,
+                   "BBTK ..ERROR.. loading shared library ["<<libname
                    <<"] is not a valid bbtk package."
                    <<" Symbol ["<<delpackname<<"] not found"<< std::endl);
        return 0;
@@ -677,7 +681,6 @@ namespace bbtk
   }
   //==========================================================================
 
-//ups4 EED borrame
        bool Package::ifBoxExist( std::string type)     
     {
                bool ok=false;
@@ -1404,10 +1407,21 @@ namespace bbtk
     return s;
   }
   //==========================================================================
-  
+  void  Package::GetBoxesInside(NodeTreeC& tree, int cont) 
+  {
+               DescriptorMapType::const_iterator i;
+               std::cout<<"*********a********"<<std::endl;
+               for (i=mDescriptorMap.begin(); i!=mDescriptorMap.end(); ++i) 
+               {
+                       i->second->GetBoxesInside(tree, cont);
+                       std::cout<<"*****************"<<std::endl;
+               }    
+  }
+       //==========================================================================
   //==========================================================================
   std::set<Package::WeakPointer> 
   Package::mReleasedDynamicallyLoadedPackages;
   //==========================================================================
+
 }