Go to the documentation of this file.
27 uint32_t i, n = (uint32_t)m_properties.size();
31 for (i = 0; i < n; i++)
34 out << m_properties[i].name.c_str();
37 isNull = !m_properties[i].value;
40 if (!isNull)
out << *m_properties[i].value;
43 out << m_properties[i].ID;
62 m_properties.resize(n);
63 for (i = 0; i < n; i++)
66 in >> m_properties[i].name;
72 m_properties[i].value.reset();
74 in >> m_properties[i].value;
77 in >> m_properties[i].ID;
100 m_properties.clear();
108 const char* propertyName,
const int64_t& hypothesis_ID)
const
110 std::vector<TPropertyValueIDTriplet>::const_iterator it;
111 for (it = m_properties.begin(); it != m_properties.end(); ++it)
113 it->ID == hypothesis_ID)
116 for (it = m_properties.begin(); it != m_properties.end(); ++it)
117 if (!
os::_strcmpi(propertyName, it->name.c_str()) && it->ID == 0)
128 const char* propertyName)
const
130 for (
const auto& m_propertie : m_properties)
132 if (!
os::_strcmpi(propertyName, m_propertie.name.c_str()))
133 return m_propertie.value;
144 const int64_t& hypothesis_ID)
148 for (
auto& m_propertie : m_properties)
150 if (m_propertie.ID == hypothesis_ID &&
155 m_propertie.value.reset(
dynamic_cast<CSerializable*
>(obj->clone()));
165 newPair.
name = std::string(propertyName);
167 newPair.
ID = hypothesis_ID;
168 m_properties.push_back(newPair);
171 printf(
"Exception while setting annotation '%s'", propertyName););
179 const int64_t& hypothesis_ID)
183 for (
auto& m_propertie : m_properties)
185 if (m_propertie.ID == hypothesis_ID &&
189 m_propertie.value = obj;
196 newPair.
name = std::string(propertyName);
198 newPair.
ID = hypothesis_ID;
199 m_properties.push_back(newPair);
202 printf(
"Exception while setting annotation '%s'", propertyName););
210 std::vector<std::string> ret;
212 for (
const auto& m_propertie : m_properties)
215 for (
auto& itS : ret)
217 if (itS == m_propertie.name)
223 if (isNew) ret.push_back(m_propertie.name);
233 const char* propertyName,
const int64_t& hypothesis_ID)
235 for (
auto it = m_properties.begin(); it != m_properties.end();)
237 it->ID == hypothesis_ID)
238 it = m_properties.erase(it);
248 for (
auto it = m_properties.begin(); it != m_properties.end();)
249 if (it->ID == hypothesis_ID)
250 it = m_properties.erase(it);
260 : m_properties(o.m_properties)
263 m_propertie.value.reset(
273 if (
this == &o)
return *
this;
278 m_propertie.value.reset(
void clear()
Clear the contents of this container.
std::shared_ptr< CSerializable > Ptr
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.
mrpt::vision::TStereoCalibResults out
void remove(const char *propertyName, const int64_t &hypothesis_ID)
Remove a given property, if it exists.
void clear()
Clears the list and frees all object's memory.
mrpt::serialization::CSerializable::Ptr value
Virtual base class for "archives": classes abstracting I/O streams.
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.
void serializeTo(mrpt::serialization::CArchive &out) const override
Pure virtual method for writing (serializing) to an abstract archive.
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 serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Pure virtual method for reading (deserializing) from an abstract archive.
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
To be added to all CSerializable-classes implementation files.
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,...
~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 > m_properties
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
int _strcmpi(const char *str1, const char *str2) noexcept
An OS-independent version of strcmpi.
Page generated by Doxygen 1.8.17 for MRPT 2.0.3 at Fri May 15 23:51:15 UTC 2020 | |