#include <bbtkBlackBox.h>
Public Member Functions | |
Deleter () | |
void | Delete (Object *p) |
virtual void | operator() (Object *p) |
Objects deleter. | |
Public Attributes | |
WeakPointer | mPointer |
Definition at line 398 of file bbtkBlackBox.h.
bbtk::BlackBox::Deleter::Deleter | ( | ) |
void bbtk::BlackBox::Deleter::Delete | ( | Object * | p | ) | [virtual] |
Reimplemented from bbtk::Object::Deleter.
Definition at line 62 of file bbtkBlackBox.cxx.
References bbtk::BlackBox::bbDelete(), bbtk::BlackBox::bbGetDescriptor(), bbtkDebugMessage, bbtkInternalError, and bbtk::Object::GetObjectName().
00063 { 00064 BlackBox* b = dynamic_cast<BlackBox*>(p); 00065 if (!b) 00066 { 00067 bbtkInternalError("BlackBox::Deleter::Delete("<<p->GetObjectName() 00068 <<"["<<p<<"]) : " 00069 <<"dynamic cast to BlackBox* failed !"); 00070 } 00071 std::string name = p->GetObjectName();//b->bbGetNameWithParent(); 00072 bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<<name<<"\")"<<std::endl); 00073 00074 00075 BlackBoxDescriptor::WeakPointer desc = b->bbGetDescriptor(); 00076 bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<<name<<"\") : deleting black box"<<std::endl); 00077 00078 b->bbDelete(); 00079 00080 bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<<name<<"\") : releasing descriptor ["<<desc.lock()<<"]"<<std::endl); 00081 00082 if (!desc.expired()) 00083 { 00084 Package::WeakPointer pack = desc.lock()->GetPackage(); 00085 if (!pack.expired()) 00086 { 00087 Package::ReleaseBlackBoxDescriptor(pack,desc); 00088 } 00089 else 00090 { 00091 bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<<name<<"\") : descriptor package expired (was not held by a package and the box was the last instance)"<<std::endl); 00092 } 00093 } 00094 else 00095 { 00096 bbtkDebugMessage("object",2,"##> BlackBox::Deleter(\""<<name<<"\") : descriptor expired : nothing to do (was not held by a package or the box is a complex black box prototype)"<<std::endl); 00097 } 00098 bbtkDebugMessage("object",2,"<## BlackBox::Deleter(\""<<name<<"\")"<<std::endl); 00099 }
void bbtk::Object::Deleter::operator() | ( | Object * | p | ) | [virtual, inherited] |
Objects deleter.
Definition at line 194 of file bbtkObject.cxx.
References bbtkDebugMessage, bbtk::Object::Deleter::Delete(), bbtk::Object::GetObjectName(), and bbtk::Object::Deleter::mPointer.
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 Object::RemoveFromObjectList(mPointer); 00203 this->Delete(p); 00204 bbtkDebugMessage("object",2,"<## Object::Deleter : \""<<name<<"\" [" 00205 <<adr<<"] deleted"<<std::endl); 00206 }
WeakPointer bbtk::Object::Deleter::mPointer [inherited] |