19#ifndef FASTDDS_RTPS_COMMON__BINARYPROPERTY_HPP
20#define FASTDDS_RTPS_COMMON__BINARYPROPERTY_HPP
42 : name_(property.name_)
43 , value_(property.value_)
44 , propagate_(property.propagate_)
50 : name_(
std::move(property.name_))
51 , value_(
std::move(property.value_))
52 , propagate_(property.propagate_)
57 const std::string&
name,
58 const std::vector<uint8_t>&
value)
66 std::vector<uint8_t>&&
value)
75 name_ =
property.name_;
76 value_ =
property.value_;
77 propagate_ =
property.propagate_;
84 name_ = std::move(property.name_);
85 value_ = std::move(property.value_);
86 propagate_ =
property.propagate_;
93 return (this->name_ == b.name_) &&
94 (this->value_ == b.value_);
98 const std::string&
name)
106 name_ = std::move(
name);
109 const std::string&
name()
const
120 const std::vector<uint8_t>&
value)
126 std::vector<uint8_t>&&
value)
128 value_ = std::move(
value);
131 const std::vector<uint8_t>&
value()
const
161 std::vector<uint8_t> value_;
174 size_t current_alignment = 0)
178 size_t initial_alignment = current_alignment;
180 current_alignment += 4 + alignment(current_alignment, 4) + binary_property.
name().size() + 1;
181 current_alignment += 4 + alignment(current_alignment, 4) + binary_property.
value().size();
183 return current_alignment - initial_alignment;
193 size_t current_alignment = 0)
195 size_t initial_alignment = current_alignment;
197 current_alignment += 4 + alignment(current_alignment, 4);
198 for (
auto binary_property = binary_properties.begin(); binary_property != binary_properties.end();
201 current_alignment +=
serialized_size(*binary_property, current_alignment);
204 return current_alignment - initial_alignment;
209 inline static size_t alignment(
210 size_t current_alignment,
213 return (dataSize - (current_alignment % dataSize)) & (dataSize - 1);
Definition BinaryProperty.hpp:169
static size_t serialized_size(const BinaryProperty &binary_property, size_t current_alignment=0)
Definition BinaryProperty.hpp:172
static size_t serialized_size(const BinaryPropertySeq &binary_properties, size_t current_alignment=0)
Definition BinaryProperty.hpp:191
Definition BinaryProperty.hpp:32
const std::vector< uint8_t > & value() const
Definition BinaryProperty.hpp:131
std::vector< uint8_t > & value()
Definition BinaryProperty.hpp:136
void name(std::string &&name)
Definition BinaryProperty.hpp:103
BinaryProperty(BinaryProperty &&property)
Definition BinaryProperty.hpp:48
const std::string & name() const
Definition BinaryProperty.hpp:109
BinaryProperty(const BinaryProperty &property)
Definition BinaryProperty.hpp:40
BinaryProperty & operator=(const BinaryProperty &property)
Definition BinaryProperty.hpp:72
bool operator==(const BinaryProperty &b) const
Definition BinaryProperty.hpp:90
BinaryProperty(std::string &&name, std::vector< uint8_t > &&value)
Definition BinaryProperty.hpp:64
std::string & name()
Definition BinaryProperty.hpp:114
bool & propagate()
Definition BinaryProperty.hpp:152
BinaryProperty(const std::string &name, const std::vector< uint8_t > &value)
Definition BinaryProperty.hpp:56
void value(std::vector< uint8_t > &&value)
Definition BinaryProperty.hpp:125
void name(const std::string &name)
Definition BinaryProperty.hpp:97
BinaryProperty()
Definition BinaryProperty.hpp:35
bool propagate() const
Definition BinaryProperty.hpp:147
void propagate(bool propagate)
Definition BinaryProperty.hpp:141
void value(const std::vector< uint8_t > &value)
Definition BinaryProperty.hpp:119
std::vector< BinaryProperty > BinaryPropertySeq
Definition BinaryProperty.hpp:166
Definition EntityId_t.hpp:388