Draft: Lifecycle support via rclcpp::NodeInterfaces #351
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, only a proof of concept, but intended to fix #108 when finished. To keep things simple I started by adding the NodeInterfaces everywhere via pass-by-value, however, changing this in the future should be fairly straightforward.
Corresponding (unfinished) adaptions for the image_transport_plugin repository can be found here, these are currently limited to the compressed image transport.
Before progressing further, I would suggest discussing how the two repository situation with
image_common
andimage_transport_plugins
is handled best. Switching to node interfaces within the message filters repository (ros2/message_filters#113) required ensuring backwards compatibility with deprecation warnings.Unfortunately, the
rclcpp::Node
pointer is part of the plugin interface and thus represents an important link between both repositories. Consequently, I am unsure whether backwards compatibility can be ensured here as well.