rclcpp  master
C++ ROS Client Library API
Classes | Namespaces | Macros | Functions
qos_parameters.hpp File Reference
#include <algorithm>
#include <array>
#include <functional>
#include <initializer_list>
#include <map>
#include <string>
#include <type_traits>
#include <vector>
#include "rcl_interfaces/msg/parameter_descriptor.hpp"
#include "rcpputils/pointer_traits.hpp"
#include "rmw/qos_string_conversions.h"
#include "rclcpp/duration.hpp"
#include "rclcpp/node_interfaces/get_node_parameters_interface.hpp"
#include "rclcpp/node_interfaces/node_parameters_interface.hpp"
#include "rclcpp/qos_overriding_options.hpp"
Include dependency graph for qos_parameters.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  rclcpp::detail::PublisherQosParametersTraits
 
struct  rclcpp::detail::SubscriptionQosParametersTraits
 

Namespaces

 rclcpp
 This header provides the get_node_base_interface() template function.
 
 rclcpp::detail
 

Macros

#define RCLCPP_DETAIL_APPLY_QOS_OVERRIDE_FROM_PARAMETER_STRING(kind_lower, kind_upper, parameter_value, rclcpp_qos)
 

Functions

inline ::rclcpp::ParameterValue rclcpp::detail::get_default_qos_param_value (rclcpp::QosPolicyKind policy, const rclcpp::QoS &qos)
 
void rclcpp::detail::apply_qos_override (rclcpp::QosPolicyKind policy, rclcpp::ParameterValue value, rclcpp::QoS &qos)
 
rclcpp::ParameterValue rclcpp::detail::declare_parameter_or_get (rclcpp::node_interfaces::NodeParametersInterface &parameters_interface, const std::string &param_name, rclcpp::ParameterValue param_value, rcl_interfaces::msg::ParameterDescriptor descriptor)
 
template<typename NodeT , typename EntityQosParametersTraits >
std::enable_if_t< rclcpp::node_interfaces::has_node_parameters_interface< decltype(std::declval< typename rcpputils::remove_pointer< NodeT >::type >))>::value||std::is_same< typename std::decay_t< NodeT >, rclcpp::node_interfaces::NodeParametersInterface::SharedPtr >::value, rclcpp::QoSrclcpp::detail::declare_qos_parameters (const ::rclcpp::QosOverridingOptions &options, NodeT &node, const std::string &topic_name, const ::rclcpp::QoS &default_qos, EntityQosParametersTraits)
 
int64_t rclcpp::detail::rmw_duration_to_int64_t (rmw_time_t rmw_duration)
 Convert rmw_time_t to int64_t that can be used as a parameter value. More...
 
const char * rclcpp::detail::check_if_stringified_policy_is_null (const char *policy_value_stringified, QosPolicyKind kind)
 

Macro Definition Documentation

◆ RCLCPP_DETAIL_APPLY_QOS_OVERRIDE_FROM_PARAMETER_STRING

#define RCLCPP_DETAIL_APPLY_QOS_OVERRIDE_FROM_PARAMETER_STRING (   kind_lower,
  kind_upper,
  parameter_value,
  rclcpp_qos 
)
Value:
do { \
auto policy_string = (parameter_value).get<std::string>(); \
auto policy_value = rmw_qos_ ## kind_lower ## _policy_from_str(policy_string.c_str()); \
if (RMW_QOS_POLICY_ ## kind_upper ## _UNKNOWN == policy_value) { \
throw std::invalid_argument{"unknown QoS policy " #kind_lower " value: " + policy_string}; \
} \
((rclcpp_qos).kind_lower)(policy_value); \
} while (0)
std::invalid_argument