X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkObject.cxx;h=63ae62b71c3571e344afd1d3cd32e995a8ff71d2;hb=cb74ad8d12e03d219df87c69f6caef29afee4cfc;hp=304fa1de856e68e465d65fcc1f4f4ef93bed0986;hpb=f993478d7df1d9688c4ab93c617688c84cf2d424;p=bbtk.git diff --git a/kernel/src/bbtkObject.cxx b/kernel/src/bbtkObject.cxx index 304fa1d..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,6 +223,8 @@ namespace bbtk //======================================================================= StaticInitTime::~StaticInitTime() { + Object::ReleasePackages(); + if (PrintObjectListInfo) { std::cout << std::endl