X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkObject.cxx;h=63ae62b71c3571e344afd1d3cd32e995a8ff71d2;hb=e6b2de923e0e69c303c7d18fb8a5c1970541bb3a;hp=8066f7e610665d5f552e717020d16c950f14b45d;hpb=caba246bb51787dac9357d9244052dba34c77840;p=bbtk.git diff --git a/kernel/src/bbtkObject.cxx b/kernel/src/bbtkObject.cxx index 8066f7e..63ae62b 100644 --- a/kernel/src/bbtkObject.cxx +++ b/kernel/src/bbtkObject.cxx @@ -1,5 +1,6 @@ #include "bbtkObject.h" #include "bbtkMessageManager.h" +#include "bbtkPackage.h" namespace bbtk { @@ -7,6 +8,7 @@ namespace bbtk //======================================================================= Object::ObjectListType Object::mgObjectList; + Object::ObjectListType Object::mgPackageList; //======================================================================= //======================================================================= @@ -32,6 +34,16 @@ namespace bbtk } //======================================================================= + //======================================================================= + void Object::InsertInPackageList(Pointer p) + { + bbtkDebugMessage("object",9,"##> Object::InsertInPackageList(\"" + <GetObjectName()<<"\" ["< w(p); + mgPackageList.insert(w); + } + //======================================================================= + //======================================================================= void Object::RemoveFromObjectList(WeakPointer p) @@ -164,7 +176,38 @@ namespace bbtk + //======================================================================= + void Object::ReleasePackages() + { + bbtkDebugMessage("object",1,"##> Object::ReleasePackages()"<use_count() != 0) + { + bbtkDebugMessage("object",1,"##> Releasing package '"<< + i->lock()->GetThisPointer()->GetName() + <<"'"<lock()); + Package::WeakPointer w(i->lock()->GetThisPointer()); + Package::Release(w); + /* + if (p->GetObjectName().find(name) != std::string::npos ) + { + std::cout << n << "/" << mgObjectList.size() << " "; + PrintObjectInfo(p); + m += p->GetObjectSize(); + n++; + } + */ + } + } + } + //======================================================================= @@ -180,27 +223,34 @@ namespace bbtk //======================================================================= StaticInitTime::~StaticInitTime() { + Object::ReleasePackages(); + if (PrintObjectListInfo) { std::cout << std::endl - << "***************** main ended *******************" + << "************************** main ended *******************" << std::endl << std::endl; Object::PrintObjectListInfo(""); } if (Object::GetObjectsCount()>0) { std::cout << std::endl; - std::cout << "**************************** WARNING ********************" - <