25const Object::ClassInfo Object::m_classInfo =
30const Object::ClassInfo* Object::classInfo()
const
37 return String(classInfo()->pszClassName);
40bool Object::isKindOf(
const Object::ClassInfo* pClassInfo)
const
42 const ClassInfo* pChildInfo = classInfo();
45 if (pChildInfo == pClassInfo)
48 pChildInfo = pChildInfo->pBaseClassInfo;
56 return classInfo() == pClassInfo;
132static String __getDemangledTypeName(
const std::type_info& info)
134 const char* demangled =
NULL;
138 const char* _p = strchr(info.name(),
' ');
140 while(*_p ==
' ') _p++;
144 demangled = info.name();
146#elif defined(__GNUC__)
151 demangled = __cxxabiv1::__cxa_demangle(info.name(),
buf, &
n, &status);
165 return __getDemangledTypeName(
typeInfo());
198void Object::dump(
Writer& out)
const
200 out << L
"\n==========================\n"
202 << L
"\n--------------------------\n";
206#if __DCL_HAVE_ALLOC_DEBUG
209void* Object::operator
new(
219 return DCLDebugMalloc(
222 DCL_ALLOC_NEW_OBJECT,
228void* Object::operator
new[](
238 return DCLDebugMalloc(
241 DCL_ALLOC_NEW_OBJECT_ARRAY,
247void Object::operator
delete(
256 DCL_ALLOC_DELETE_OBJECT,
262void Object::operator
delete[](
271 DCL_ALLOC_DELETE_OBJECT_ARRAY,
278void* Object::operator
new(size_t)
284void* Object::operator
new[](size_t)
291void Object::operator
delete(
void* _p)
293 Object::operator
delete(_p,
true,
NULL, 0);
296void Object::operator
delete[](
void* _p)
298 Object::operator
delete[](_p,
true,
NULL, 0);
#define __countof(array, type)
#define CLASSINFO(class_name)
#define __DCL_ASSERT_EX(expr, msg)
void CharsetConvertException *size_t n
static String decode(const char *_mbs, size_t _mbslen=(size_t) -1)
virtual const std::type_info & typeInfo() const
virtual String toString() const
bool isInstanceOf(const std::type_info &typeinfo) const