41 while (pClassThis != NULL)
43 if (pClassThis == pBaseClass)
return true;
46 else pClassThis = NULL;
64 ASSERTMSG_(pBaseClass != NULL,
format(
"Class %s not registered??",pBaseClass_name) )
72 while (pClassThis != NULL)
74 if (pClassThis == pBaseClass)
return true;
77 else pClassThis = NULL;
90 if (! ptrCreateObject )
92 perror(
"[TRuntimeClassId::createObject] Trying to create an object with not dynamic constructor\n");
98 CObject* ret = (*ptrCreateObject)();
101 catch (std::bad_alloc &)
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
This namespace provides a OS-independent interface to many useful functions: filenames manipulation...
void BASE_IMPEXP registerAllPendingClasses()
Register all pending classes - to be called just before de-serializing an object, for example...
bool derivedFrom(const TRuntimeClassId *pBaseClass) const
const TRuntimeClassId *(* getBaseClass)()
Gets the base class runtime id.
mrpt::utils::CObject * createObject() const
const TRuntimeClassId BASE_IMPEXP * findRegisteredClass(const std::string &className)
Return info about a given class by its name, or NULL if the class is not registered.
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A structure that holds runtime class type information.
The virtual base class of all MRPT classes with a unified RTTI system.
#define ASSERTMSG_(f, __ERROR_MSG)
static mrpt::utils::TRuntimeClassId * _GetBaseClass()