15 #ifndef RCLCPP__QOS_OVERRIDING_OPTIONS_HPP_
16 #define RCLCPP__QOS_OVERRIDING_OPTIONS_HPP_
19 #include <initializer_list>
25 #include "rclcpp/qos.hpp"
26 #include "rclcpp/visibility_control.hpp"
28 #include "rcl_interfaces/msg/set_parameters_result.hpp"
29 #include "rmw/qos_policy_kind.h"
34 enum class RCLCPP_PUBLIC_TYPE QosPolicyKind
36 AvoidRosNamespaceConventions = RMW_QOS_POLICY_AVOID_ROS_NAMESPACE_CONVENTIONS,
37 Deadline = RMW_QOS_POLICY_DEADLINE,
38 Depth = RMW_QOS_POLICY_DEPTH,
39 Durability = RMW_QOS_POLICY_DURABILITY,
40 History = RMW_QOS_POLICY_HISTORY,
41 Lifespan = RMW_QOS_POLICY_LIFESPAN,
42 Liveliness = RMW_QOS_POLICY_LIVELINESS,
43 LivelinessLeaseDuration = RMW_QOS_POLICY_LIVELINESS_LEASE_DURATION,
44 Reliability = RMW_QOS_POLICY_RELIABILITY,
45 Invalid = RMW_QOS_POLICY_INVALID,
50 qos_policy_kind_to_cstr(
const QosPolicyKind & qpk);
54 operator<<(std::ostream & os,
const QosPolicyKind & qpk);
56 using QosCallbackResult = rcl_interfaces::msg::SetParametersResult;
57 using QosCallback = std::function<QosCallbackResult(
const rclcpp::QoS &)>;
116 std::initializer_list<QosPolicyKind> policy_kinds,
117 QosCallback validation_callback =
nullptr,
118 std::string
id = {});
125 const std::vector<QosPolicyKind> &
126 get_policy_kinds()
const;
130 get_validation_callback()
const;
147 std::vector<QosPolicyKind> policy_kinds_;
149 QosCallback validation_callback_;
Encapsulation of Quality of Service settings.
Options that are passed in subscription/publisher constructor to specify QoSConfigurability.
RCLCPP_PUBLIC QosOverridingOptions()=default
Default constructor, no overrides allowed.
static RCLCPP_PUBLIC QosOverridingOptions with_default_policies(QosCallback validation_callback=nullptr, std::string id={})
Construct passing a list of QoS policies and a verification callback.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.
RCLCPP_PUBLIC std::ostream & operator<<(std::ostream &os, const FutureReturnCode &future_return_code)
Stream operator for FutureReturnCode.