📄 pcomponent.cxx
字号:
/* * * C++ Portable Types Library (PTypes) * Version 1.7.5 Released 9-Mar-2003 * * Copyright (c) 2001, 2002, 2003 Hovik Melikyan * * http://www.melikyan.com/ptypes/ * http://ptypes.sourceforge.net/ * */#include "ptypes.h"#include "pasync.h"PTYPES_BEGINcomponent::component() : unknown(), refcount(0), freelist(nil), typeinfo(nil) {}component::~component() { if (freelist != nil) { for (int i = 0; i < length(*freelist); i++) { component* p = pcomponent((*freelist)[i]); p->freenotify(this); } delete freelist; freelist = nil; }}void component::freenotify(component*) {}void component::addnotification(component* obj) { if (freelist == nil) freelist = new objlist(); add(*freelist, obj);}void component::delnotification(component* obj) { int i = -1; if (freelist != nil) { i = indexof(*freelist, obj); if (i >= 0) { del(*freelist, i); if (length(*freelist) == 0) { delete freelist; freelist = nil; } } } if (i == -1) fatal(CRIT_FIRST + 1, "delnotification() failed: no such object");}int component::classid(){ return CLASS_UNDEFINED;}component* addref(component* c){ if (c != nil) pincrement(&c->refcount); return c;}bool release(component* c){ if (c != nil) { if (pdecrement(&c->refcount) == 0) delete c; else return false; } return true;}PTYPES_END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -