Skip to content

Namespace nebula::agnocast_wrapper::detail

Namespace List > nebula > agnocast_wrapper > detail

Public Functions

Type Name
void check_generic_publisher_qos_overriding_options (const rclcpp::QosOverridingOptions & qos_overriding_options, const std::string & topic_name)
void check_generic_subscription_qos_overriding_options (const rclcpp::QosOverridingOptions & qos_overriding_options, const std::string & topic_name)
const rclcpp::QoS & checked_parameters_qos (const rclcpp::QoS & qos)
Return qos unchanged, rejecting the policies the two backends do not agree on.
rclcpp::QoS to_qos (const rmw_qos_profile_t & qos_profile)
auto to_rclcpp_parameters_qos (const rclcpp::QoS & qos)
Spell a QoS the way this rclcpp's AsyncParametersClient takes it: rclcpp::QoS from Jazzy (28+), rmw_qos_profile_t on Humble (16.x). Same gate asROS2Client 's constructor inclient.hpp .

Public Functions Documentation

function check_generic_publisher_qos_overriding_options

inline void nebula::agnocast_wrapper::detail::check_generic_publisher_qos_overriding_options (
    const rclcpp::QosOverridingOptions & qos_overriding_options,
    const std::string & topic_name
) 

rclcpp's create_generic_publisher() only honors event_callbacks, use_default_callbacks and callback_group — it silently drops qos_overriding_options — while Agnocast's GenericPublisher applies it. Declared unconditionally (unlike everything below) so both the Agnocast-enabled AgnocastGenericPublisher/ROS2GenericPublisher constructors further down and the non-Agnocast Node::create_generic_publisher() (see node.hpp) can reject it the same way: otherwise the same caller code would compile and silently ignore qos_overriding_options under ENABLE_AGNOCAST=0 but throw under ENABLE_AGNOCAST=1, the same inconsistency across builds that rejecting it consistently between the two ENABLE_AGNOCAST=1 backends alone does not prevent.


function check_generic_subscription_qos_overriding_options

inline void nebula::agnocast_wrapper::detail::check_generic_subscription_qos_overriding_options (
    const rclcpp::QosOverridingOptions & qos_overriding_options,
    const std::string & topic_name
) 

rclcpp's create_generic_subscription() only honors event_callbacks, use_default_callbacks and callback_group — it silently drops qos_overriding_options — while Agnocast's GenericSubscription applies it. Declared unconditionally (unlike the classes below), mirroring generic_publisher.hpp's check_generic_publisher_qos_overriding_options(): both the Agnocast-enabled AgnocastGenericSubscription/ROS2GenericSubscription constructors further down and the non-Agnocast Node::create_generic_subscription() (see node.hpp) need to reject it the same way, so the same caller code doesn't compile and silently ignore qos_overriding_options under ENABLE_AGNOCAST=0 while throwing under ENABLE_AGNOCAST=1.


function checked_parameters_qos

Return qos unchanged, rejecting the policies the two backends do not agree on.

inline const rclcpp::QoS & nebula::agnocast_wrapper::detail::checked_parameters_qos (
    const rclcpp::QoS & qos
) 

Exception:

  • std::invalid_argument if the durability is transient-local or the reliability is best-effort. rclcpp lets both through and then never matches the service, while Agnocast coerces them away, so rejecting is what makes the two builds agree.

function to_qos

inline rclcpp::QoS nebula::agnocast_wrapper::detail::to_qos (
    const rmw_qos_profile_t & qos_profile
) 

QoS cannot be built from a bare profile; it needs a QoSInitialization to carry the history and depth. Take those from the profile itself rather than through QoSInitialization::from_rmw(), which reports a SYSTEM_DEFAULT or UNKNOWN history as KEEP_LAST and drops the depth of a KEEP_ALL profile. Nothing is normalized here: rclcpp and the Agnocast backend see what the caller passed, and complain about it themselves if it makes no sense.


function to_rclcpp_parameters_qos

Spell a QoS the way this rclcpp's AsyncParametersClient takes it: rclcpp::QoS from Jazzy (28+), rmw_qos_profile_t on Humble (16.x). Same gate asROS2Client 's constructor inclient.hpp .

inline auto nebula::agnocast_wrapper::detail::to_rclcpp_parameters_qos (
    const rclcpp::QoS & qos
) 



The documentation for this class was generated from the following file src/nebula_core/nebula_core_ros/include/nebula_core_ros/agnocast_wrapper/generic_publisher.hpp