#include <mrpt/core/safe_pointers.h>
#include <mrpt/core/aligned_allocator.h>
#include <mrpt/typemeta/static_string.h>
#include <vector>
#include <memory>
Go to the source code of this file.
Classes | |
struct | mrpt::rtti::TRuntimeClassId |
A structure that holds runtime class type information. More... | |
struct | mrpt::rtti::IS_CLASS_impl< T > |
struct | mrpt::rtti::CLASSINIT |
Auxiliary structure used for CObject-based RTTI. More... | |
class | mrpt::rtti::CObject |
The virtual base class of all MRPT classes with a unified RTTI system. More... | |
struct | mrpt::ptr_cast< CAST_TO > |
Converts a polymorphic smart pointer Base::Ptr to Derived::Ptr, in a way compatible with MRPT >=1.5.4 and MRPT 2.x series. More... | |
Namespaces | |
mrpt | |
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. | |
mrpt::rtti | |
Functions | |
RTTI classes and functions for polymorphic hierarchies | |
void | mrpt::rtti::registerClass (const mrpt::rtti::TRuntimeClassId *pNewClass) |
Register a class into the MRPT internal list of "CObject" descendents. More... | |
void | mrpt::rtti::registerClassCustomName (const char *customName, const TRuntimeClassId *pNewClass) |
Mostly for internal use within mrpt sources, to handle exceptional cases with multiple serialization names for backward compatibility (CMultiMetricMaps, CImage,...) More... | |
std::vector< const mrpt::rtti::TRuntimeClassId * > | mrpt::rtti::getAllRegisteredClasses () |
Returns a list with all the classes registered in the system through mrpt::rtti::registerClass. More... | |
std::vector< const TRuntimeClassId * > | mrpt::rtti::getAllRegisteredClassesChildrenOf (const TRuntimeClassId *parent_id) |
Like getAllRegisteredClasses(), but filters the list to only include children clases of a given base one. More... | |
const TRuntimeClassId * | mrpt::rtti::findRegisteredClass (const std::string &className) |
Return info about a given class by its name, or nullptr if the class is not registered. More... | |
template<typename T > | |
constexpr const mrpt::rtti::TRuntimeClassId * | mrpt::rtti::CLASS_ID_impl () |
void | mrpt::rtti::registerAllPendingClasses () |
Register all pending classes - to be called just before de-serializing an object, for example. More... | |
mrpt::rtti::CObject * | mrpt::rtti::classFactory (const std::string &className) |
Creates an object given by its registered name. More... | |
mrpt::rtti::CObject::Ptr | mrpt::rtti::classFactoryPtr (const std::string &className) |
Like classFactory() but returns a smart pointer. More... | |
RTTI classes and functions for polymorphic hierarchies | |
#define | CLASS_ID(T) mrpt::rtti::CLASS_ID_impl<T>() |
Access to runtime class ID for a defined class name. More... | |
#define | CLASS_ID_TEMPLATE(class_name, T) mrpt::rtti::CLASS_ID_impl<T>() |
#define | CLASS_ID_NAMESPACE(class_name, namespaceName) mrpt::rtti::CLASS_ID_impl<namespaceName::class_name>() |
#define | IS_CLASS(ptrObj, class_name) mrpt::rtti::IS_CLASS_impl<class_name>::check(ptrObj) |
Evaluates to true if the given pointer to an object (derived from mrpt::rtti::CObject) is of the given class. More... | |
#define | IS_DERIVED(ptrObj, class_name) ((ptrObj)->GetRuntimeClass()->derivedFrom(CLASS_ID(class_name))) |
Evaluates to true if a pointer to an object (derived from mrpt::rtti::CObject) is an instance of the given class OR any of its derived classes. More... | |
#define | DEFINE_MRPT_OBJECT(class_name) |
This declaration must be inserted in all CObject classes definition, within the class declaration. More... | |
#define | IMPLEMENTS_MRPT_OBJECT_ALT_NAME(class_name, base, NameSpace, alt_name) |
This must be inserted in all CObject classes implementation files. More... | |
#define | IMPLEMENTS_MRPT_OBJECT(class_name, base, NameSpace) IMPLEMENTS_MRPT_OBJECT_ALT_NAME(class_name, base, NameSpace, nullptr) |
#define | DEFINE_VIRTUAL_MRPT_OBJECT(class_name) |
This declaration must be inserted in virtual CObject classes definition: More... | |
#define | IMPLEMENTS_VIRTUAL_MRPT_OBJECT(class_name, base_class_name, NameSpace) |
This must be inserted as implementation of some required members for virtual CObject classes: More... | |
void | mrpt::rtti::registerClass (const mrpt::rtti::TRuntimeClassId *pNewClass) |
Register a class into the MRPT internal list of "CObject" descendents. More... | |
void | mrpt::rtti::registerClassCustomName (const char *customName, const TRuntimeClassId *pNewClass) |
Mostly for internal use within mrpt sources, to handle exceptional cases with multiple serialization names for backward compatibility (CMultiMetricMaps, CImage,...) More... | |
std::vector< const mrpt::rtti::TRuntimeClassId * > | mrpt::rtti::getAllRegisteredClasses () |
Returns a list with all the classes registered in the system through mrpt::rtti::registerClass. More... | |
std::vector< const TRuntimeClassId * > | mrpt::rtti::getAllRegisteredClassesChildrenOf (const TRuntimeClassId *parent_id) |
Like getAllRegisteredClasses(), but filters the list to only include children clases of a given base one. More... | |
const TRuntimeClassId * | mrpt::rtti::findRegisteredClass (const std::string &className) |
Return info about a given class by its name, or nullptr if the class is not registered. More... | |
template<typename T > | |
constexpr const mrpt::rtti::TRuntimeClassId * | mrpt::rtti::CLASS_ID_impl () |
void | mrpt::rtti::registerAllPendingClasses () |
Register all pending classes - to be called just before de-serializing an object, for example. More... | |
mrpt::rtti::CObject * | mrpt::rtti::classFactory (const std::string &className) |
Creates an object given by its registered name. More... | |
mrpt::rtti::CObject::Ptr | mrpt::rtti::classFactoryPtr (const std::string &className) |
Like classFactory() but returns a smart pointer. More... | |
#define CLASS_ID | ( | T | ) | mrpt::rtti::CLASS_ID_impl<T>() |
Access to runtime class ID for a defined class name.
#define CLASS_ID_NAMESPACE | ( | class_name, | |
namespaceName | |||
) | mrpt::rtti::CLASS_ID_impl<namespaceName::class_name>() |
#define CLASS_ID_TEMPLATE | ( | class_name, | |
T | |||
) | mrpt::rtti::CLASS_ID_impl<T>() |
#define DEFINE_MRPT_OBJECT | ( | class_name | ) |
This declaration must be inserted in all CObject classes definition, within the class declaration.
#define DEFINE_VIRTUAL_MRPT_OBJECT | ( | class_name | ) |
This declaration must be inserted in virtual CObject classes definition:
#define IMPLEMENTS_MRPT_OBJECT | ( | class_name, | |
base, | |||
NameSpace | |||
) | IMPLEMENTS_MRPT_OBJECT_ALT_NAME(class_name, base, NameSpace, nullptr) |
#define IMPLEMENTS_MRPT_OBJECT_ALT_NAME | ( | class_name, | |
base, | |||
NameSpace, | |||
alt_name | |||
) |
This must be inserted in all CObject classes implementation files.
#define IMPLEMENTS_VIRTUAL_MRPT_OBJECT | ( | class_name, | |
base_class_name, | |||
NameSpace | |||
) |
This must be inserted as implementation of some required members for virtual CObject classes:
#define IS_CLASS | ( | ptrObj, | |
class_name | |||
) | mrpt::rtti::IS_CLASS_impl<class_name>::check(ptrObj) |
Evaluates to true if the given pointer to an object (derived from mrpt::rtti::CObject) is of the given class.
#define IS_DERIVED | ( | ptrObj, | |
class_name | |||
) | ((ptrObj)->GetRuntimeClass()->derivedFrom(CLASS_ID(class_name))) |
Evaluates to true if a pointer to an object (derived from mrpt::rtti::CObject) is an instance of the given class OR any of its derived classes.
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at mié 12 jul 2023 10:03:34 CEST |