Program: bbtk
Module: $RCSfile: bbtkPackage.cxx,v $
Language: C++
- Date: $Date: 2008/04/22 08:29:09 $
- Version: $Revision: 1.15 $
+ Date: $Date: 2008/06/10 19:19:42 $
+ Version: $Revision: 1.20 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See doc/license.txt or
const std::string& descname)
{
// Try to release descriptor
- bbtkDebugMessage("package",3,"--- Trying to release descriptor '"
- <<descname<<"'"<<bbtkendl);
std::string packname = pack.lock()->GetName();
+ bbtkDebugMessage("package",5,"--- Releasing descriptor '"
+ <<packname<<"::"<<descname<<"'"<<bbtkendl);
+
+
Package::BlackBoxMapType::iterator desc =
pack.lock()->GetBlackBoxMap().find(descname);
if (desc == pack.lock()->GetBlackBoxMap().end())
{
- bbtkDebugMessage("package",3,
+ bbtkDebugMessage("package",5,
" Descriptor has already been released"
<<bbtkendl);
return;
// if it is dead : remove it
if (pdesc.expired())
{
- bbtkDebugMessage("package",2," '"<<packname<<"::"<<descname<<"' Descriptor expired"<<bbtkendl);
+ bbtkDebugMessage("package",2," ==> '"<<packname<<"::"<<descname<<"' Descriptor expired"<<bbtkendl);
if (pack.expired())
{
bbtkDebugMessage("package",2,
- " ... and caused its package death"
+ " ... and caused its package death"
<<bbtkendl);
return;
}
}
else
{
- bbtkDebugMessage("package",3," ... Descriptor still alive ("
+ bbtkDebugMessage("package",5," ... Descriptor still alive ("
<<pdesc.use_count()<<" refs)"
<<bbtkendl);
pack.lock()->GetBlackBoxMap()[descname] = pdesc.lock();
long ndesc = pack.lock()->GetBlackBoxMap().size();
long nrefs = pack.use_count();
- bbtkDebugMessage("package",2," "<<nrefs<<" refs / "
+ bbtkDebugMessage("package",5," "<<nrefs<<" refs / "
<<ndesc<<" descr / dyn="
<<dyn<<std::endl);
// and descallocated (reset) by PACKAGENAMEDeletePackage())
if (nrefs == ndesc + dyn)
{
- bbtkDebugMessage("package",2,
+ bbtkDebugMessage("package",5,
" -> No more external ref : checking descriptors"
<<bbtkendl);
// We must take care that removing refs on descriptors
// Is package still alive ?
if (pack.expired())
{
- bbtkDebugMessage("package",2,"--- Package::Release('"<<
+ bbtkDebugMessage("package",1,"--- Package::Release('"<<
packname
<<"') : package expired during release : bailing out"<<bbtkendl);
break;
}
- bbtkDebugMessage("package",1,"<== Package::Release('"<<
+ bbtkDebugMessage("package",2,"<== Package::Release('"<<
packname<<"')"<<bbtkendl);
if (!pack.expired())
{
}
else
{
- bbtkDebugMessage("package",1," ... Package has been released"
+ bbtkDebugMessage("package",1," ... Package has been released"
<<std::endl);
}
}
std::string packname = pack.lock()->mName;
std::string dname = descr.lock()->GetTypeName();
bbtkDebugMessage("package",3,"==> Package::ReleaseBlackBoxDescriptor('"<<
- packname<<"','"<<dname<<"')"<<bbtkendl);
+ packname<<"','"<<dname<<"') : refs="
+ <<descr.use_count()<<bbtkendl);
long dyn = pack.lock()->mDynamicLibraryHandler ? 1:0;
long ndesc = pack.lock()->GetBlackBoxMap().size();
long nrefs = pack.use_count();
- bbtkDebugMessage("package",3," "<<nrefs<<" refs / "
+ bbtkDebugMessage("package",5," "<<nrefs<<" refs / "
<<ndesc<<" descr / dynamically loaded = "
<<dyn<<std::endl);
// then put it in the static list mReleasedDynamicallyLoadedPackages
UnLoadDynamicLibrary(pack,false);
- bbtkDebugMessage("package",3,"<== Package::ReleaseBlackBoxDescriptor('"<<
- packname<<"','"<<dname<<"')"<<bbtkendl);
+ bbtkDebugMessage("package",4,"<== Package::ReleaseBlackBoxDescriptor('"<<
+ packname<<"','"<<dname<<"'): refs="
+ <<descr.use_count()<<bbtkendl);
/*
if (!pack.expired())
{
bbtkMessage("package",2,
"Could not open shared library [" <<libname<<"]"
<< std::endl);
+ DWORD dwErrorCode = 0;
+ dwErrorCode = GetLastError();
+ bbtkMessage("package",2,
+ "Windows Error: [" << dwErrorCode <<"]"
+ << std::endl);
+
return 0;
}
getvername +=
BBTK_STRINGIFY_SYMBOL(BBTK_GET_PACKAGE_BBTK_VERSION_FUNCTION_NAME);
DLGetPackageBBTKVersionFunction getbbtkversion
- = (DLGetPackageBBTKVersionFunction)(GetProcAdress(handler,
+ = (DLGetPackageBBTKVersionFunction)(GetProcAddress(handler,
getvername.c_str()));
if (!getbbtkversion)
{
// Loads the Package get function
std::string getpackname(package_name);
getpackname += BBTK_STRINGIFY_SYMBOL(BBTK_GET_PACKAGE_FUNCTION_NAME);
- getpack = (DLGetPackageFunction)(GetProcAdress(handler, getpackname.c_str()));
+ getpack = (DLGetPackageFunction)(GetProcAddress(handler, getpackname.c_str()));
if (!getpack)
{
FreeLibrary(handler);
// Loads the Package delete function
std::string delpackname(package_name);
delpackname += BBTK_STRINGIFY_SYMBOL(BBTK_DEL_PACKAGE_FUNCTION_NAME);
- delpack = (DLDeletePackageFunction)(GetProcAdress(handler, delpackname.c_str()));
+ delpack = (DLDeletePackageFunction)(GetProcAddress(handler, delpackname.c_str()));
if (!delpack)
{
FreeLibrary(handler);
p->SetDocURL(doc);
p->SetDocRelativeURL(reldoc);
- bbtkDebugMessage("package",1,"<== Package::CreateFromDynamicLibrary("
+ bbtkDebugMessage("package",2,"<== Package::CreateFromDynamicLibrary("
<<libname<<") .. OK"<<std::endl);
return p;
}
std::string packname = pack.lock()->GetName();
- bbtkDebugMessage("package",3,"==> Package::UnLoadDynamicLibrary('"
+ bbtkDebugMessage("package",5,"==> Package::UnLoadDynamicLibrary('"
<<packname<<"')"
<<std::endl);
if (!pack.lock()->GetBlackBoxMap().empty())
{
- bbtkDebugMessage("package",3," Package not empty ... abort"
+ bbtkDebugMessage("package",5," Package not empty ... abort"
<<std::endl);
return;
/*
if (doit)
{
UnLoad(pack);
- bbtkDebugMessage("package",3," ... dynamic library closed"
+ bbtkDebugMessage("package",5,"==> dynamic library for package '"
+ <<packname<<"' closed"
<<std::endl);
}
else
{
mReleasedDynamicallyLoadedPackages.insert(pack);
- bbtkDebugMessage("package",3,
- " ... package put in the 'to unload' list"
+ bbtkDebugMessage("package",1,"==> package '"<<packname
+ <<"' put in the 'to unload' list"
<<std::endl);
}
- bbtkDebugMessage("package",3,"<== Package::UnLoadDynamicLibrary('"
+ bbtkDebugMessage("package",5,"<== Package::UnLoadDynamicLibrary('"
<<packname<<"')"
<<std::endl);
/// see UnLoadDynamicLibrary and ReleaseBlackBoxDescriptor
void Package::UnLoadReleasedDynamicallyLoadedPackages()
{
- bbtkDebugMessage("package",2,"==> Package::UnLoadReleasedDynamicallyLoadedPackages()"<<std::endl);
+ bbtkDebugMessage("package",5,"==> Package::UnLoadReleasedDynamicallyLoadedPackages()"<<std::endl);
std::set<Package::WeakPointer>::iterator i;
for (i=mReleasedDynamicallyLoadedPackages.begin();
{
if (!i->expired()) UnLoad(*i);
}
- bbtkDebugMessage("package",2,"<== Package::UnLoadReleasedDynamicallyLoadedPackages()"<<std::endl);
+ bbtkDebugMessage("package",5,"<== Package::UnLoadReleasedDynamicallyLoadedPackages()"<<std::endl);
}
//==========================================================================
void Package::UnLoad(Package::WeakPointer pack)
{
std::string packname = pack.lock()->GetName();
- bbtkDebugMessage("package",2,"==> Package::UnLoad("<<packname<<")"<<std::endl);
+ bbtkDebugMessage("package",6,"==> Package::UnLoad("<<packname<<")"<<std::endl);
Package* p = pack.lock().get();
FreeLibrary(h);
#endif
- bbtkDebugMessage("package",2," ... dynamic library unloaded"<<std::endl);
+ bbtkDebugMessage("package",1,"==> dynamic library for package '"
+ <<packname<<"' closed"
+ <<std::endl);
+ bbtkDebugMessage("package",6," ... dynamic library unloaded"<<std::endl);
}
//==========================================================================
std::string name = i->second->GetTypeName();
Utilities::html_format(name);
std::string descr = i->second->GetDescription();
- Utilities::html_format(descr);
+ //Utilities::html_format(descr);
s << "<TR>";
s << "<TD style='vertical-align: top;'>";