Feature request
Feature description
Draft overview and background is ros2/design#282,
Introduce dds contentfiltertopic to ROS, dds specification is DDS v1.4 2.2.2.3.3 ContentFilteredTopic Class. ContentFilteredTopic can be created on parent topic and DataReader only receives the messages that matches with filtering expression and expression parameters. If implementation does not support this feature, it returns not support.
- rmw implementation support.
Implementation considerations
rmw and rcl implementation
ContentFilteredTopic requires parent topic, returning capability for ContentFilteredTopic with rmw_create_subscriotion rmw_subscription_t. So that rclcpp/rcl can tell if the implementation supports it or not.
- Based on parent topic and subscription, it can create ContentFilteredTopic with subtopic name, filtering expression and expression parameters. Then implementation creates ContentFilteredTopic and replace the DataReader.
- Expression parameter can be changed via setter dynamically, also getter should be provided. but filtering expression cannot be changed unless re-creating ContentFilteringTopic.
- Test must be added to make sure ContentFIlteredTopic supported and functions.
rcl and rclcpp
- Action feedback and status to use ContentFilteredTopic.
- Introduce new class for
parameter_events filtering which calls ContentFilteredTopic.
- Filtering in
rcl based when rmw does not support ContentFilteredTopic.
Feature request
Feature description
Draft overview and background is ros2/design#282,
Introduce dds
contentfiltertopictoROS, dds specification is DDS v1.4 2.2.2.3.3 ContentFilteredTopic Class. ContentFilteredTopic can be created on parent topic and DataReader only receives the messages that matches with filtering expression and expression parameters. If implementation does not support this feature, it returnsnot support.expected user for this feature.
Implementation considerations
rmwandrclimplementationContentFilteredTopic requires parent topic, returning capability for ContentFilteredTopic with rmw_create_subscriotion rmw_subscription_t. So that rclcpp/rcl can tell if the implementation supports it or not.rclandrclcppparameter_eventsfiltering which calls ContentFilteredTopic.rclbased when rmw does not support ContentFilteredTopic.