Go to the documentation of this file.
67 CSerializable::Ptr
get(
68 const char* propertyName,
const int64_t& hypothesis_ID)
const;
76 const char* propertyName,
const int64_t& hypothesis_ID,
77 bool allowNullPointer =
true)
const
80 CSerializable::Ptr obj =
get(propertyName, hypothesis_ID);
84 return typename T::Ptr();
89 &T::GetRuntimeClassIdStatic();
90 ASSERT_(class_ID == obj->GetRuntimeClass());
91 return std::dynamic_pointer_cast<T>(obj);
106 const char* propertyName,
const CSerializable::Ptr& obj,
107 const int64_t& hypothesis_ID);
115 const char* propertyName,
const CSerializable::Ptr& obj,
116 const int64_t& hypothesis_ID);
120 void remove(
const char* propertyName,
const int64_t& hypothesis_ID);
124 void removeAll(
const int64_t& hypothesis_ID);
131 const char* propertyName,
const T&
data,
const int64_t& hypothesis_ID)
135 std::string basic_value;
136 basic_value.resize(
sizeof(T));
141 if (m_propertie.ID == hypothesis_ID &&
146 m_propertie.basic_value = basic_value;
153 newPair.
name = std::string(propertyName);
155 newPair.
ID = hypothesis_ID;
159 printf(
"Exception while setting annotation '%s'", propertyName););
169 const char* propertyName, T& out_data,
const int64_t& hypothesis_ID,
170 bool raiseExceptionIfNotFound =
false)
const
176 m_propertie.ID == hypothesis_ID)
178 if (m_propertie.basic_value.size() !=
sizeof(out_data))
181 *
reinterpret_cast<const T*
>(&m_propertie.basic_value[0]);
186 if (raiseExceptionIfNotFound)
196 using iterator = std::vector<TPropertyValueIDTriplet>::iterator;
static struct FontData data
const_iterator begin() const
A structure that holds runtime class type information.
std::shared_ptr< CSerializable > Ptr
bool getElemental(const char *propertyName, T &out_data, const int64_t &hypothesis_ID, bool raiseExceptionIfNotFound=false) const
Gets the value of a property (case insensitive) for the given hypothesis ID, retrieves it as an eleme...
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
T::Ptr getAs(const char *propertyName, const int64_t &hypothesis_ID, bool allowNullPointer=true) const
Returns the value of the property (case insensitive) for some given hypothesis ID checking its class ...
void setMemoryReference(const char *propertyName, const CSerializable::Ptr &obj, const int64_t &hypothesis_ID)
Sets/change the value of the property (case insensitive) for the given hypothesis ID,...
#define MRPT_END_WITH_CLEAN_UP(stuff)
void removeAll(const int64_t &hypothesis_ID)
Remove all the properties for the given hypothesis.
void remove(const char *propertyName, const int64_t &hypothesis_ID)
Remove a given property, if it exists.
#define THROW_EXCEPTION_FMT(_FORMAT_STRING,...)
#define THROW_EXCEPTION(msg)
#define ASSERT_(f)
Defines an assertion mechanism.
void clear()
Clears the list and frees all object's memory.
mrpt::serialization::CSerializable::Ptr value
CSerializable::Ptr getAnyHypothesis(const char *propertyName) const
Returns the value of the property (case insensitive) for the first hypothesis ID found,...
Classes related to the implementation of Hybrid Metric Topological (HMT) SLAM.
std::vector< std::string > getPropertyNames() const
Returns the name of all properties in the list.
const_iterator end() const
CMHPropertiesValuesList & operator=(const CMHPropertiesValuesList &o)
Copy operator.
The virtual base class which provides a unified interface for all persistent objects in MRPT.
An arbitrary list of "annotations", or named attributes, each being an instance of any CSerializable ...
void setElemental(const char *propertyName, const T &data, const int64_t &hypothesis_ID)
Sets/change the value of a property (case insensitive) for the given hypothesis ID,...
CSerializable::Ptr get(const char *propertyName, const int64_t &hypothesis_ID) const
Returns the value of the property (case insensitive) for some given hypothesis ID,...
std::vector< TPropertyValueIDTriplet >::iterator iterator
~CMHPropertiesValuesList() override
Destructor.
CMHPropertiesValuesList()
Default constructor.
Internal triplet for each property in utils::CMHPropertiesValuesList.
void set(const char *propertyName, const CSerializable::Ptr &obj, const int64_t &hypothesis_ID)
Sets/change the value of the property (case insensitive) for the given hypothesis ID,...
std::vector< TPropertyValueIDTriplet >::const_iterator const_iterator
std::vector< TPropertyValueIDTriplet > m_properties
TPropertyValueIDTriplet()=default
bool strCmpI(const std::string &s1, const std::string &s2)
Return true if the two strings are equal (case insensitive)
void memcpy(void *dest, size_t destSize, const void *src, size_t copyCount) noexcept
An OS and compiler independent version of "memcpy".
Page generated by Doxygen 1.8.17 for MRPT 2.0.3 at Fri May 29 13:06:46 UTC 2020 | |