MRPT  2.0.0
List of all members | Classes | Public Member Functions | Protected Attributes
mrpt::hmtslam::CPropertiesValuesList Class Reference

Detailed Description

An arbitrary list of "annotations", or named attributes, each being an instance of any CSerializable object.

A multi-hypotheses version exists in CMHPropertiesValuesList.

See also
CSerializable, CMHPropertiesValuesList, mrpt::system::TParameters

Definition at line 21 of file CPropertiesValuesList.h.

#include <mrpt/hmtslam/CPropertiesValuesList.h>

Inheritance diagram for mrpt::hmtslam::CPropertiesValuesList:

Classes

struct  TPropertyValuePair
 

Public Member Functions

 CPropertiesValuesList ()
 Default constructor. More...
 
 CPropertiesValuesList (const CPropertiesValuesList &o)
 Copy constructor. More...
 
CPropertiesValuesListoperator= (const CPropertiesValuesList &o)
 Copy operator. More...
 
 ~CPropertiesValuesList () override
 Destructor. More...
 
void clear ()
 Clears the list. More...
 
CSerializable::Ptr get (const std::string &propertyName) const
 Returns the value of the property (case insensitive), or nullptr if it does not exist. More...
 
void set (const std::string &propertyName, const CSerializable::Ptr &obj)
 Sets/change the value of the property (case insensitive), making a copy of the object (or setting it to nullptr if it is the passed value) More...
 
size_t size () const
 Returns the number of properties in the list. More...
 
std::vector< std::string > getPropertyNames () const
 Returns the name of all properties in the list. More...
 
virtual mxArraywriteToMatlab () const
 Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More...
 
RTTI classes and functions for polymorphic hierarchies
mrpt::rtti::CObject::Ptr duplicateGetSmartPtr () const
 Makes a deep copy of the object and returns a smart pointer to it. More...
 

Protected Member Functions

CSerializable virtual methods
uint8_t serializeGetVersion () const override
 Must return the current versioning number of the object. More...
 
void serializeTo (mrpt::serialization::CArchive &out) const override
 Pure virtual method for writing (serializing) to an abstract archive. More...
 
void serializeFrom (mrpt::serialization::CArchive &in, uint8_t serial_version) override
 Pure virtual method for reading (deserializing) from an abstract archive. More...
 
CSerializable virtual methods
virtual void serializeTo (CSchemeArchiveBase &out) const
 Virtual method for writing (serializing) to an abstract schema based archive. More...
 
virtual void serializeFrom (CSchemeArchiveBase &in)
 Virtual method for reading (deserializing) from an abstract schema based archive. More...
 

Protected Attributes

std::vector< TPropertyValuePairm_properties
 The properties list: a map between strings and objects. More...
 

RTTI stuff

using Ptr = std::shared_ptr< mrpt::hmtslam ::CPropertiesValuesList >
 
using ConstPtr = std::shared_ptr< const mrpt::hmtslam ::CPropertiesValuesList >
 
using UniquePtr = std::unique_ptr< mrpt::hmtslam ::CPropertiesValuesList >
 
using ConstUniquePtr = std::unique_ptr< const mrpt::hmtslam ::CPropertiesValuesList >
 
static const mrpt::rtti::TRuntimeClassId runtimeClassId
 
static constexpr const char * className = "mrpt::hmtslam" "::" "CPropertiesValuesList"
 
static const mrpt::rtti::TRuntimeClassId_GetBaseClass ()
 
static constexpr auto getClassName ()
 
static const mrpt::rtti::TRuntimeClassIdGetRuntimeClassIdStatic ()
 
static std::shared_ptr< CObjectCreateObject ()
 
template<typename... Args>
static Ptr Create (Args &&... args)
 
template<typename Alloc , typename... Args>
static Ptr CreateAlloc (const Alloc &alloc, Args &&... args)
 
template<typename... Args>
static UniquePtr CreateUnique (Args &&... args)
 
virtual const mrpt::rtti::TRuntimeClassIdGetRuntimeClass () const override
 Returns information about the class of an object in runtime. More...
 
virtual mrpt::rtti::CObjectclone () const override
 Returns a deep copy (clone) of the object, indepently of its class. More...
 

Member Typedef Documentation

◆ ConstPtr

Definition at line 23 of file CPropertiesValuesList.h.

◆ ConstUniquePtr

using mrpt::hmtslam::CPropertiesValuesList::ConstUniquePtr = std::unique_ptr<const mrpt::hmtslam :: CPropertiesValuesList >

Definition at line 23 of file CPropertiesValuesList.h.

◆ Ptr

A type for the associated smart pointer

Definition at line 23 of file CPropertiesValuesList.h.

◆ UniquePtr

using mrpt::hmtslam::CPropertiesValuesList::UniquePtr = std::unique_ptr< mrpt::hmtslam :: CPropertiesValuesList >

Definition at line 23 of file CPropertiesValuesList.h.

Constructor & Destructor Documentation

◆ CPropertiesValuesList() [1/2]

CPropertiesValuesList::CPropertiesValuesList ( )
default

Default constructor.

◆ CPropertiesValuesList() [2/2]

CPropertiesValuesList::CPropertiesValuesList ( const CPropertiesValuesList o)

Copy constructor.

Definition at line 94 of file CPropertiesValuesList.cpp.

References m_properties.

◆ ~CPropertiesValuesList()

CPropertiesValuesList::~CPropertiesValuesList ( )
override

Destructor.

Definition at line 90 of file CPropertiesValuesList.cpp.

References mrpt::containers::clear().

Here is the call graph for this function:

Member Function Documentation

◆ _GetBaseClass()

static const mrpt::rtti::TRuntimeClassId* mrpt::hmtslam::CPropertiesValuesList::_GetBaseClass ( )
staticprotected

◆ clear()

void CPropertiesValuesList::clear ( )

Clears the list.

Definition at line 120 of file CPropertiesValuesList.cpp.

References m_properties, MRPT_END, and MRPT_START.

◆ clone()

virtual mrpt::rtti::CObject* mrpt::hmtslam::CPropertiesValuesList::clone ( ) const
overridevirtual

Returns a deep copy (clone) of the object, indepently of its class.

Implements mrpt::rtti::CObject.

◆ Create()

template<typename... Args>
static Ptr mrpt::hmtslam::CPropertiesValuesList::Create ( Args &&...  args)
inlinestatic

Definition at line 23 of file CPropertiesValuesList.h.

◆ CreateAlloc()

template<typename Alloc , typename... Args>
static Ptr mrpt::hmtslam::CPropertiesValuesList::CreateAlloc ( const Alloc &  alloc,
Args &&...  args 
)
inlinestatic

Definition at line 23 of file CPropertiesValuesList.h.

◆ CreateObject()

static std::shared_ptr<CObject> mrpt::hmtslam::CPropertiesValuesList::CreateObject ( )
static

◆ CreateUnique()

template<typename... Args>
static UniquePtr mrpt::hmtslam::CPropertiesValuesList::CreateUnique ( Args &&...  args)
inlinestatic

Definition at line 23 of file CPropertiesValuesList.h.

◆ duplicateGetSmartPtr()

mrpt::rtti::CObject::Ptr CObject::duplicateGetSmartPtr ( ) const
inlineinherited

Makes a deep copy of the object and returns a smart pointer to it.

Definition at line 204 of file CObject.h.

References mrpt::rtti::CObject::clone().

Referenced by mrpt::obs::CRawlog::insert().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get()

CSerializable::Ptr CPropertiesValuesList::get ( const std::string &  propertyName) const

Returns the value of the property (case insensitive), or nullptr if it does not exist.

Definition at line 130 of file CPropertiesValuesList.cpp.

References mrpt::system::os::_strcmpi(), and m_properties.

Here is the call graph for this function:

◆ getClassName()

static constexpr auto mrpt::hmtslam::CPropertiesValuesList::getClassName ( )
inlinestatic

Definition at line 23 of file CPropertiesValuesList.h.

◆ getPropertyNames()

std::vector< std::string > CPropertiesValuesList::getPropertyNames ( ) const

Returns the name of all properties in the list.

Definition at line 182 of file CPropertiesValuesList.cpp.

References m_properties.

◆ GetRuntimeClass()

virtual const mrpt::rtti::TRuntimeClassId* mrpt::hmtslam::CPropertiesValuesList::GetRuntimeClass ( ) const
overridevirtual

Returns information about the class of an object in runtime.

Reimplemented from mrpt::serialization::CSerializable.

◆ GetRuntimeClassIdStatic()

static const mrpt::rtti::TRuntimeClassId& mrpt::hmtslam::CPropertiesValuesList::GetRuntimeClassIdStatic ( )
static

◆ operator=()

CPropertiesValuesList & CPropertiesValuesList::operator= ( const CPropertiesValuesList o)

Copy operator.

Definition at line 105 of file CPropertiesValuesList.cpp.

References m_properties.

◆ serializeFrom() [1/2]

void CPropertiesValuesList::serializeFrom ( mrpt::serialization::CArchive in,
uint8_t  serial_version 
)
overrideprotectedvirtual

Pure virtual method for reading (deserializing) from an abstract archive.

Users don't call this method directly. Instead, use stream >> object;.

Parameters
inThe input binary stream where the object data must read from.
versionThe version of the object stored in the stream: use this version number in your code to know how to read the incoming data.
Exceptions
std::exceptionOn any I/O error

Implements mrpt::serialization::CSerializable.

Definition at line 46 of file CPropertiesValuesList.cpp.

References mrpt::containers::clear(), and MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION.

Here is the call graph for this function:

◆ serializeFrom() [2/2]

virtual void mrpt::serialization::CSerializable::serializeFrom ( CSchemeArchiveBase in)
inlineprotectedvirtualinherited

Virtual method for reading (deserializing) from an abstract schema based archive.

Definition at line 74 of file CSerializable.h.

References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.

Here is the call graph for this function:

◆ serializeGetVersion()

uint8_t CPropertiesValuesList::serializeGetVersion ( ) const
overrideprotectedvirtual

Must return the current versioning number of the object.

Start in zero for new classes, and increments each time there is a change in the stored format.

Implements mrpt::serialization::CSerializable.

Definition at line 25 of file CPropertiesValuesList.cpp.

◆ serializeTo() [1/2]

void CPropertiesValuesList::serializeTo ( mrpt::serialization::CArchive out) const
overrideprotectedvirtual

Pure virtual method for writing (serializing) to an abstract archive.

Users don't call this method directly. Instead, use stream << object;.

Exceptions
std::exceptionOn any I/O error

Implements mrpt::serialization::CSerializable.

Definition at line 26 of file CPropertiesValuesList.cpp.

References out, and mrpt::math::size().

Here is the call graph for this function:

◆ serializeTo() [2/2]

virtual void mrpt::serialization::CSerializable::serializeTo ( CSchemeArchiveBase out) const
inlineprotectedvirtualinherited

Virtual method for writing (serializing) to an abstract schema based archive.

Definition at line 64 of file CSerializable.h.

References mrpt::serialization::CSerializable::GetRuntimeClass(), and THROW_EXCEPTION.

Here is the call graph for this function:

◆ set()

void CPropertiesValuesList::set ( const std::string &  propertyName,
const CSerializable::Ptr obj 
)

Sets/change the value of the property (case insensitive), making a copy of the object (or setting it to nullptr if it is the passed value)

Definition at line 145 of file CPropertiesValuesList.cpp.

References mrpt::system::os::_strcmpi(), m_properties, MRPT_END_WITH_CLEAN_UP, MRPT_START, mrpt::hmtslam::CPropertiesValuesList::TPropertyValuePair::name, and mrpt::hmtslam::CPropertiesValuesList::TPropertyValuePair::value.

Here is the call graph for this function:

◆ size()

size_t CPropertiesValuesList::size ( ) const

Returns the number of properties in the list.

Definition at line 178 of file CPropertiesValuesList.cpp.

References m_properties.

◆ writeToMatlab()

virtual mxArray* mrpt::serialization::CSerializable::writeToMatlab ( ) const
inlinevirtualinherited

Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class.

Returns
A new mxArray (caller is responsible of memory freeing) or nullptr is class does not support conversion to MATLAB.

Definition at line 90 of file CSerializable.h.

Member Data Documentation

◆ className

constexpr const char* mrpt::hmtslam::CPropertiesValuesList::className = "mrpt::hmtslam" "::" "CPropertiesValuesList"
static

Definition at line 23 of file CPropertiesValuesList.h.

◆ m_properties

std::vector<TPropertyValuePair> mrpt::hmtslam::CPropertiesValuesList::m_properties
protected

The properties list: a map between strings and objects.

Definition at line 32 of file CPropertiesValuesList.h.

Referenced by clear(), CPropertiesValuesList(), get(), getPropertyNames(), operator=(), set(), and size().

◆ runtimeClassId

const mrpt::rtti::TRuntimeClassId mrpt::hmtslam::CPropertiesValuesList::runtimeClassId
staticprotected

Definition at line 23 of file CPropertiesValuesList.h.




Page generated by Doxygen 1.8.14 for MRPT 2.0.0 Git: b38439d21 Tue Mar 31 19:58:06 2020 +0200 at miƩ abr 1 00:50:30 CEST 2020