Add a direct API for rosbag2_transport::Recorder #2221
Merged
+577
−1
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.
Description
This PR adds a direct API for rosbag2_transport::Recorder to enable direct use of the recorder without creating any subscriptions. For instance, from device drivers.
Added direct recorder API add_channel(..) and write_message(..)
Added direct write_message(..) API with recv_timestamp
Added direct
on_messages_lost_in_transport(..)APINote: The
on_messages_lost_in_transport(..)method is expected to be called when messages are lost in the transport layer.Added
get_total_num_messages_lost_in_transport()getter method.Is this user-facing behavior change?
No. However, the new API will become available
Did you use Generative AI?
Yes, I am using GitHub Copilot, GPT-5 in my workflow, mostly to help with writing tests and documentation.
Additional Information
This PR will be difficult to backport since it depends on the non-backportable other PR #2215