59#ifdef VLINK_SUPPORT_DDSR
64#include <shared_mutex>
95 explicit DdsrConf(
const std::string& _topic, int32_t _domain = 0, int32_t _depth = 0,
const std::string& _qos =
"");
104 explicit DdsrConf(
const std::string& _topic, int32_t _domain,
const PropertiesMap& _qos_ext);
112 [[nodiscard]]
bool operator==(
const DdsrConf& conf)
const noexcept;
120 [[nodiscard]]
bool operator!=(
const DdsrConf& conf)
const noexcept;
127 [[nodiscard]]
TransportType get_transport_type()
const override;
141 static void register_qos(
const std::string& name,
const Qos& qos);
144 static void register_qos_internal(
const std::string& name,
const Qos& qos);
146 static const Qos& find_qos(
const std::string& name);
148 friend class DdsrFactory;
149 static std::map<std::string, Qos> qos_map_;
150 static std::shared_mutex mtx_;
151 static constexpr const char* kRespSuffix{
"___resp"};
152#ifndef VLINK_ENABLE_C_INTERFACE
163inline DdsrConf::DdsrConf(
const std::string& _topic, int32_t _domain, int32_t _depth,
const std::string& _qos)
164 : topic(_topic), domain(_domain), depth(_depth), qos(_qos) {}
166inline DdsrConf::DdsrConf(
const std::string& _topic, int32_t _domain,
const PropertiesMap& _qos_ext)
167 : topic(_topic), domain(_domain), qos_ext(_qos_ext) {}
169inline bool DdsrConf::operator==(
const DdsrConf& conf)
const noexcept {
170 return topic == conf.topic && domain == conf.domain && depth == conf.depth && qos == conf.qos &&
171 qos_ext == conf.qos_ext;
174inline bool DdsrConf::operator!=(
const DdsrConf& conf)
const noexcept {
return !(*
this == conf); }
176inline TransportType DdsrConf::get_transport_type()
const {
return TransportType::kDdsr; }
Abstract transport configuration base class and associated helper macros.
#define VLINK_CONF_IMPL(classname)
Standard boilerplate for concrete Conf subclass declarations.
Definition conf.h:227
#define VLINK_DECLARE_GLOBAL_PROPERTY()
Declares per-transport global state: thread count and property storage.
Definition conf.h:292
#define VLINK_ALLOW_IMPL_TYPE(type)
Declares a static constexpr bitmask of supported ImplType values.
Definition conf.h:268
#define VLINK_EXPORT
Definition macros.h:85
TransportType
Enumeration of all supported transport backends.
Definition types.h:107
Quality of Service (QoS) policy aggregate for VLink publishers and subscribers.
Abstract base class for VLink transport configuration objects.
Definition conf.h:83