Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rmw listener apis #44

Merged
merged 7 commits into from
Feb 24, 2022
Merged

Conversation

irobot-ros
Copy link
Contributor

This PR adds stub implementations for the RMW listener APIs.
See design and Discourse post.

FYI @wjwwood

This PR connects to

Mauro Passerino and others added 2 commits April 23, 2021 16:47
Add stubs for setting listener callbacks
Copy link
Collaborator

@asorbini asorbini left a comment

Choose a reason for hiding this comment

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

Hi @irobot-ros, thank you for this contribution!

The code looks good functionally, but I'd like to request some minor refactoring to make it more consistent in style with the rest of the implementation:

  • Use UNUSED_ARG(var); instead of (void)var;
  • Use RMW_CONNEXT_LOG_ERROR_SET("...") (no semicolon) instead of RMW_SET_ERROR_MSG("...");
  • Introduce a new source file in rmw_connextdds_common/src/common, e.g. rmw_listener.cpp, with a common implementation of all new API functions:
    • rmw_api_connextdds_event_set_callback()
    • rmw_api_connextdds_service_set_on_new_request_callback()
    • rmw_api_connextdds_client_set_on_new_response_callback()
    • rmw_api_connextdds_subscription_set_on_new_message_callback()
  • Refactor functions in rmw_api_impl_ndds.cpp and rmw_api_impl_rtime.cpp to delegate to the common functions, similarly to other functions in those files.

@asorbini asorbini added the humble PR scheduled for the H-turtle label Apr 27, 2021
Mauro Passerino and others added 2 commits April 27, 2021 09:36
Copy link
Collaborator

@asorbini asorbini left a comment

Choose a reason for hiding this comment

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

@mauropasse thank you for addressing the comments, and apologies for forgetting about this PR.

As is, it looks ready to merge as soon as ros2/rmw#286 goes in.

@wjwwood wjwwood merged commit f57e64e into ros2:master Feb 24, 2022
asorbini pushed a commit that referenced this pull request Mar 19, 2022
* Add stubs for setting listener callbacks

Signed-off-by: Mauro Passerino <[email protected]>

* Address PR suggestions

Signed-off-by: Mauro Passerino <[email protected]>

* Fix linter issues

Signed-off-by: Mauro Passerino <[email protected]>

Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>
fujitatomoya added a commit that referenced this pull request Mar 22, 2022
* Add support for user-specified content filters.

Signed-off-by: Andrea Sorbini <[email protected]>

* - Resolve memory leak of custom content-filter resources
- Add missing package dependencies for rti_connext_dds_custom_sql_filter
- Clean up all participants upon factory finalization
- Reset context state upon finalization (rmw_connextddsmicro)
Signed-off-by: Andrea Sorbini <[email protected]>

* Assume non-null options argument
Signed-off-by: Andrea Sorbini <[email protected]>

* - Return error when retrieving content-filter from a subscription that doesn't have one.
- Rename internal functions related to content-filters
Signed-off-by: Andrea Sorbini <[email protected]>

* Fix compilation error, oops.
Signed-off-by: Andrea Sorbini <[email protected]>

* - Define RMW_CONNEXT_DEBUG when building Debug libraries.
- Make sure participant is enabled before deleting contained entities when using Connext debug libraries.
Signed-off-by: Andrea Sorbini <[email protected]>

* Resolve memory leak for finalization on error.
Signed-off-by: Andrea Sorbini <[email protected]>

* Rename content filter public API.
Signed-off-by: Andrea Sorbini <[email protected]>

* Add client/service QoS getters (#67)

Signed-off-by: Mauro Passerino <[email protected]>

* Changelogs

Signed-off-by: Ivan Santiago Paunovic <[email protected]>

* 0.8.1

* Fix cpplint errors (#69)

* Use static_cast instead of C-style cast

Fixes cpplint error.

Signed-off-by: Jacob Perron <[email protected]>

* Update NOLINT category

Relates to ament/ament_lint#324

Signed-off-by: Jacob Perron <[email protected]>

* 0.8.2

Signed-off-by: Audrow Nash <[email protected]>

* Update rti-connext-dds dependency to 6.0.1. (#71)

Now that this package is available in the ROS bootstrap repository for Ubuntu Focal and Jammy we can bump the expected dependency version.

* 0.8.3

* Add rmw listener apis (#44)

* Add stubs for setting listener callbacks

Signed-off-by: Mauro Passerino <[email protected]>

* Address PR suggestions

Signed-off-by: Mauro Passerino <[email protected]>

* Fix linter issues

Signed-off-by: Mauro Passerino <[email protected]>

Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>

* Changelog. (#73)

Signed-off-by: Chris Lalancette <[email protected]>

* 0.9.0

* add stub for content filtered topic

Signed-off-by: Chen Lihui <[email protected]>

* * Rebased branch asorbini/cft on top of 0.9.0.
* Resolved CFT finalization issues on error.
* Verified and cleaned up build for rmw_connextddsmicro.
Signed-off-by: Andrea Sorbini <[email protected]>

* Move custom SQL filter to rmw_connextdds_common
Signed-off-by: Andrea Sorbini <[email protected]>

* Try to resolve linking error on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Optionally disable writer-side CFT optimizations to support Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* No need to declare private CFT function on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* remove stub implementation for ContentFilteredTopic.

Signed-off-by: Tomoya Fujita <[email protected]>

* address cpplint error.

Signed-off-by: Tomoya Fujita <[email protected]>

* Avoid conversion warnings on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Use strtol instead of sscanf to avoid warnings on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Avoid finalizing participants if factory is not available.
Signed-off-by: Andrea Sorbini <[email protected]>

Co-authored-by: mauropasse <[email protected]>
Co-authored-by: Ivan Santiago Paunovic <[email protected]>
Co-authored-by: Jacob Perron <[email protected]>
Co-authored-by: Audrow Nash <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: iRobot ROS <[email protected]>
Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>
Co-authored-by: Chen Lihui <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>
cwecht pushed a commit to cwecht/rmw_connextdds that referenced this pull request Mar 16, 2023
* Add support for user-specified content filters.

Signed-off-by: Andrea Sorbini <[email protected]>

* - Resolve memory leak of custom content-filter resources
- Add missing package dependencies for rti_connext_dds_custom_sql_filter
- Clean up all participants upon factory finalization
- Reset context state upon finalization (rmw_connextddsmicro)
Signed-off-by: Andrea Sorbini <[email protected]>

* Assume non-null options argument
Signed-off-by: Andrea Sorbini <[email protected]>

* - Return error when retrieving content-filter from a subscription that doesn't have one.
- Rename internal functions related to content-filters
Signed-off-by: Andrea Sorbini <[email protected]>

* Fix compilation error, oops.
Signed-off-by: Andrea Sorbini <[email protected]>

* - Define RMW_CONNEXT_DEBUG when building Debug libraries.
- Make sure participant is enabled before deleting contained entities when using Connext debug libraries.
Signed-off-by: Andrea Sorbini <[email protected]>

* Resolve memory leak for finalization on error.
Signed-off-by: Andrea Sorbini <[email protected]>

* Rename content filter public API.
Signed-off-by: Andrea Sorbini <[email protected]>

* Add client/service QoS getters (ros2#67)

Signed-off-by: Mauro Passerino <[email protected]>

* Changelogs

Signed-off-by: Ivan Santiago Paunovic <[email protected]>

* 0.8.1

* Fix cpplint errors (ros2#69)

* Use static_cast instead of C-style cast

Fixes cpplint error.

Signed-off-by: Jacob Perron <[email protected]>

* Update NOLINT category

Relates to ament/ament_lint#324

Signed-off-by: Jacob Perron <[email protected]>

* 0.8.2

Signed-off-by: Audrow Nash <[email protected]>

* Update rti-connext-dds dependency to 6.0.1. (ros2#71)

Now that this package is available in the ROS bootstrap repository for Ubuntu Focal and Jammy we can bump the expected dependency version.

* 0.8.3

* Add rmw listener apis (ros2#44)

* Add stubs for setting listener callbacks

Signed-off-by: Mauro Passerino <[email protected]>

* Address PR suggestions

Signed-off-by: Mauro Passerino <[email protected]>

* Fix linter issues

Signed-off-by: Mauro Passerino <[email protected]>

Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>

* Changelog. (ros2#73)

Signed-off-by: Chris Lalancette <[email protected]>

* 0.9.0

* add stub for content filtered topic

Signed-off-by: Chen Lihui <[email protected]>

* * Rebased branch asorbini/cft on top of 0.9.0.
* Resolved CFT finalization issues on error.
* Verified and cleaned up build for rmw_connextddsmicro.
Signed-off-by: Andrea Sorbini <[email protected]>

* Move custom SQL filter to rmw_connextdds_common
Signed-off-by: Andrea Sorbini <[email protected]>

* Try to resolve linking error on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Optionally disable writer-side CFT optimizations to support Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* No need to declare private CFT function on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* remove stub implementation for ContentFilteredTopic.

Signed-off-by: Tomoya Fujita <[email protected]>

* address cpplint error.

Signed-off-by: Tomoya Fujita <[email protected]>

* Avoid conversion warnings on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Use strtol instead of sscanf to avoid warnings on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Avoid finalizing participants if factory is not available.
Signed-off-by: Andrea Sorbini <[email protected]>

Co-authored-by: mauropasse <[email protected]>
Co-authored-by: Ivan Santiago Paunovic <[email protected]>
Co-authored-by: Jacob Perron <[email protected]>
Co-authored-by: Audrow Nash <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: iRobot ROS <[email protected]>
Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>
Co-authored-by: Chen Lihui <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>
asorbini added a commit that referenced this pull request Mar 30, 2023
* Add sequence numbers to message info structure (#74)

* Fill reception_sequence_number/publication_sequence_number in all rmw_take_*_with_info() functions

Signed-off-by: Ivan Santiago Paunovic <[email protected]>

* Add rmw_feature_supported()

Signed-off-by: Ivan Santiago Paunovic <[email protected]>

* add stub for content filtered topic (#77)

* add stub for content filtered topic

Signed-off-by: Chen Lihui <[email protected]>

* Add support for user-specified content filters (#68)

* Add support for user-specified content filters.

Signed-off-by: Andrea Sorbini <[email protected]>

* - Resolve memory leak of custom content-filter resources
- Add missing package dependencies for rti_connext_dds_custom_sql_filter
- Clean up all participants upon factory finalization
- Reset context state upon finalization (rmw_connextddsmicro)
Signed-off-by: Andrea Sorbini <[email protected]>

* Assume non-null options argument
Signed-off-by: Andrea Sorbini <[email protected]>

* - Return error when retrieving content-filter from a subscription that doesn't have one.
- Rename internal functions related to content-filters
Signed-off-by: Andrea Sorbini <[email protected]>

* Fix compilation error, oops.
Signed-off-by: Andrea Sorbini <[email protected]>

* - Define RMW_CONNEXT_DEBUG when building Debug libraries.
- Make sure participant is enabled before deleting contained entities when using Connext debug libraries.
Signed-off-by: Andrea Sorbini <[email protected]>

* Resolve memory leak for finalization on error.
Signed-off-by: Andrea Sorbini <[email protected]>

* Rename content filter public API.
Signed-off-by: Andrea Sorbini <[email protected]>

* Add client/service QoS getters (#67)

Signed-off-by: Mauro Passerino <[email protected]>

* Changelogs

Signed-off-by: Ivan Santiago Paunovic <[email protected]>

* 0.8.1

* Fix cpplint errors (#69)

* Use static_cast instead of C-style cast

Fixes cpplint error.

Signed-off-by: Jacob Perron <[email protected]>

* Update NOLINT category

Relates to ament/ament_lint#324

Signed-off-by: Jacob Perron <[email protected]>

* 0.8.2

Signed-off-by: Audrow Nash <[email protected]>

* Update rti-connext-dds dependency to 6.0.1. (#71)

Now that this package is available in the ROS bootstrap repository for Ubuntu Focal and Jammy we can bump the expected dependency version.

* 0.8.3

* Add rmw listener apis (#44)

* Add stubs for setting listener callbacks

Signed-off-by: Mauro Passerino <[email protected]>

* Address PR suggestions

Signed-off-by: Mauro Passerino <[email protected]>

* Fix linter issues

Signed-off-by: Mauro Passerino <[email protected]>

Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>

* Changelog. (#73)

Signed-off-by: Chris Lalancette <[email protected]>

* 0.9.0

* add stub for content filtered topic

Signed-off-by: Chen Lihui <[email protected]>

* * Rebased branch asorbini/cft on top of 0.9.0.
* Resolved CFT finalization issues on error.
* Verified and cleaned up build for rmw_connextddsmicro.
Signed-off-by: Andrea Sorbini <[email protected]>

* Move custom SQL filter to rmw_connextdds_common
Signed-off-by: Andrea Sorbini <[email protected]>

* Try to resolve linking error on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Optionally disable writer-side CFT optimizations to support Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* No need to declare private CFT function on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* remove stub implementation for ContentFilteredTopic.

Signed-off-by: Tomoya Fujita <[email protected]>

* address cpplint error.

Signed-off-by: Tomoya Fujita <[email protected]>

* Avoid conversion warnings on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Use strtol instead of sscanf to avoid warnings on Windows.
Signed-off-by: Andrea Sorbini <[email protected]>

* Avoid finalizing participants if factory is not available.
Signed-off-by: Andrea Sorbini <[email protected]>

Co-authored-by: mauropasse <[email protected]>
Co-authored-by: Ivan Santiago Paunovic <[email protected]>
Co-authored-by: Jacob Perron <[email protected]>
Co-authored-by: Audrow Nash <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: iRobot ROS <[email protected]>
Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>
Co-authored-by: Chen Lihui <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>

* 0.10.0

Signed-off-by: Audrow Nash <[email protected]>

* Update launch_testing_ros output filter prefixes for Connext6 (#80)

Signed-off-by: Ivan Santiago Paunovic <[email protected]>

* Properly initialize CDR stream before using it for filtering (#81)

Signed-off-by: Andrea Sorbini <[email protected]>

* Exclude missing sample info fields when building rmw_connextddsmicro (#79)

* Exclude missing sample info fields when building micro.
* Report features individually for each RMW implementation.
* Return special value for unsupported sequence numbers.

Signed-off-by: Andrea Sorbini <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>

* 0.11.0

Signed-off-by: Audrow Nash <[email protected]>

* Resolve build error with RTI Connext DDS 5.3.1 (#82)

Signed-off-by: Andrea Sorbini <[email protected]>

* Changelog.

Signed-off-by: Chris Lalancette <[email protected]>

* 0.11.1

* Use destinct callbacks for each event type

---------

Signed-off-by: Ivan Santiago Paunovic <[email protected]>
Signed-off-by: Chen Lihui <[email protected]>
Signed-off-by: Audrow Nash <[email protected]>
Signed-off-by: Andrea Sorbini <[email protected]>
Signed-off-by: Chris Lalancette <[email protected]>
Co-authored-by: Ivan Santiago Paunovic <[email protected]>
Co-authored-by: Chen Lihui <[email protected]>
Co-authored-by: Andrea Sorbini <[email protected]>
Co-authored-by: mauropasse <[email protected]>
Co-authored-by: Jacob Perron <[email protected]>
Co-authored-by: Audrow Nash <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: Steven! Ragnarök <[email protected]>
Co-authored-by: iRobot ROS <[email protected]>
Co-authored-by: Mauro Passerino <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>
Co-authored-by: Tomoya Fujita <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
humble PR scheduled for the H-turtle
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants