#include <bbtkObject.h>
Public Member Functions | |
Deleter () | |
virtual | ~Deleter () |
virtual void | operator() (Object *p) |
Objects deleter. | |
virtual int | Delete (Object *p) |
Public Attributes | |
WeakPointer | mPointer |
Definition at line 78 of file bbtkObject.h.
bbtk::Object::Deleter::Deleter | ( | ) | [inline] |
Reimplemented in bbtk::BlackBox::Deleter.
Definition at line 80 of file bbtkObject.h.
00080 : mPointer() {}
virtual bbtk::Object::Deleter::~Deleter | ( | ) | [inline, virtual] |
virtual int bbtk::Object::Deleter::Delete | ( | Object * | p | ) | [inline, virtual] |
Reimplemented in bbtk::BlackBox::Deleter.
Definition at line 83 of file bbtkObject.h.
Referenced by operator()().
void bbtk::Object::Deleter::operator() | ( | Object * | p | ) | [virtual] |
Objects deleter.
Definition at line 194 of file bbtkObject.cxx.
References bbtkDebugMessage, bbtkWarning, Delete(), bbtk::Object::GetObjectName(), mPointer, and bbtk::Object::RemoveFromObjectList().
00195 { 00196 std::string name = p->GetObjectName(); 00197 #ifdef BBTK_COMPILE_DEBUG_MESSAGES 00198 void* adr = (void*)p; 00199 bbtkDebugMessage("object",1,"##> Object::Deleter : deleting \"" 00200 <<name<<"\" ["<<adr<<"]"<<std::endl); 00201 #endif 00202 int remaining = this->Delete(p); 00203 if (remaining == 0) 00204 { 00205 Object::RemoveFromObjectList(mPointer); 00206 bbtkDebugMessage("object",2,"<## Object::Deleter : \""<<name<<"\" [" 00207 <<adr<<"] deleted"<<std::endl); 00208 } 00209 else 00210 { 00211 bbtkWarning("##### Object::Deleter \""<<name<<"\" failed !!! " 00212 << remaining << " reference(s) still around..." 00213 <<std::endl); 00214 } 00215 }