X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkPackage.h;h=78d98cc0311ab2d3ec3c32618bfc90710082958f;hb=cb78bcd69448e60826458a803420b751aeca9da6;hp=089dbee65498918ab3c7c829d20a754d994c6b84;hpb=4ad5b5ee44357ad873bc8c43230defb6d0a79879;p=bbtk.git diff --git a/kernel/src/bbtkPackage.h b/kernel/src/bbtkPackage.h index 089dbee..78d98cc 100644 --- a/kernel/src/bbtkPackage.h +++ b/kernel/src/bbtkPackage.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkPackage.h,v $ Language: C++ - Date: $Date: 2008/04/18 12:59:15 $ - Version: $Revision: 1.8 $ + Date: $Date: 2008/07/24 14:37:05 $ + Version: $Revision: 1.10 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See doc/license.txt or @@ -330,11 +330,26 @@ namespace bbtk VERSION, \ BBTK_STRINGIFY_SYMBOL(BBTK_VERSION) \ ); \ + bbtk::Object::InsertInPackageList( NAME ## GetPackagePointer() ); \ return NAME ## GetPackagePointer(); \ } \ BBTK_PACKAGE_EXPORT const std::string& \ - BBTK_CDECL NAME ## GetPackageBBTKVersion () \ + BBTK_CDECL NAME ## GetPackageBBTKVersion () \ { return bbtk::GetVersion(); } \ + class NAME ## PackageAutodestructor \ + { \ + public: \ + NAME ## PackageAutodestructor() {} \ + ~NAME ## PackageAutodestructor() \ + { \ + if (NAME ## GetPackagePointer().use_count()>0) \ + { \ + bbtk::Package::WeakPointer p = NAME ## GetPackagePointer(); \ + bbtk::Package::Release(p); \ + } \ + } \ + }; \ + NAME ## PackageAutodestructor NAME ## PackageAutodestructorInstance; \ } //====================================================================