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_argumentif 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