Skip to content

Add acceptable_buffer_backends field in SubscriptionOptionsBase#3098

Open
nvcyc wants to merge 2 commits intorollingfrom
native_buffer/8-rclcpp
Open

Add acceptable_buffer_backends field in SubscriptionOptionsBase#3098
nvcyc wants to merge 2 commits intorollingfrom
native_buffer/8-rclcpp

Conversation

@nvcyc
Copy link

@nvcyc nvcyc commented Mar 16, 2026

Description

This pull request adds the acceptable_buffer_backends subscription option in rclcpp, which corresponds to the subscription field with the same name introduced in rmw in ros2/rmw#416. This option allows subscribers to control which buffer backends they accept, with a backward-compatible default of CPU-only.

This pull request consists of the following key changes:

  • rclcpp (subscription_options.hpp): SubscriptionOptionsBase adds acceptable_buffer_backends (std::string, default "cpu"). to_rcl_subscription_options() copies it into rmw_subscription_options.acceptable_buffer_backends when non-empty.
  • Generic subscription (generic_subscription.hpp): Constructor forces acceptable_buffer_backends to "cpu" ensuring serialized messages received by generic subscriptions are always CPU-based, which will be used by ros2 bag record for direct storage in bag files.

Is this user-facing behavior change?

The default value "cpu" preserves existing behavior -- subscriptions only accept CPU-backed data unless explicitly opting in. This is a new API surface but is additive and backward-compatible. Existing code that does not pass acceptable_buffer_backends will behave identically to before.

Did you use Generative AI?

No.

Additional Information

This PR is part of the broader ROS 2 native buffer feature introduced in this post.
It depends on the subscription field with the same name introduced in rmw in ros2/rmw#416.

Copy link
Contributor

@hidmic hidmic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass

Signed-off-by: CY Chen <cyc@nvidia.com>
@nvcyc nvcyc requested a review from hidmic March 24, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants