The function was previously documented as being deprecated, but this change adds compiler warnings if it is used.
Ignore compiler warnings where the function is being tested and change to the preferred usage elsewhere.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Fix for a build error on 32-bit Windows. Member functions use the
__thiscall convention by default which is incompatible with __cdecl.
Signed-off-by: Sean Kelly <sean@seankelly.dev>
* Assigning make_shared result to variables in test
Signed-off-by: Stephen Brawner <brawner@gmail.com>
* PR fixup
Signed-off-by: Stephen Brawner <brawner@gmail.com>
Otherwise, rclcpp_components_register_node() fails if used from a fat archive.
Related to https://github.com/ros2/ros2/issues/606.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* New README
* dashing to eloquent for api docs
* remove "accepted"
Co-Authored-By: Chris Lalancette <clalancette@openrobotics.org>
* components > APIs
Co-Authored-By: Chris Lalancette <clalancette@openrobotics.org>
* Add disable_rosout into NodeOptions.
Signed-off-by: Barry Xu <Barry.Xu@sony.com>
* Update comments
Signed-off-by: Barry Xu <Barry.Xu@sony.com>
* keep implementation consistency by using enable_rosout name
Signed-off-by: Barry Xu <Barry.Xu@sony.com>
* fix error comment
Signed-off-by: Barry Xu <Barry.Xu@sony.com>
* add test case for node options
Signed-off-by: Barry Xu <Barry.Xu@sony.com>
* fix source about copy value and reset rcl_node_options, add more test cases
Signed-off-by: Barry Xu <Barry.Xu@sony.com>
To prevent the Executor::spin_some() method for potentially running
indefinitely long.
Distribution Statement A; OPSEC #2893
Signed-off-by: Roger Strain <rstrain@swri.org>
Whenever a call is made to `rclcpp_action::Client::wait_for_action_server`
a weak pointer to an Event object gets added to the graph_event_ vector
of the NodeGraph interface. This vector will be cleared on a node graph
change event, but if no such event occurs the weak pointer will be stuck
in the vector. Furthermore, if client code issues repeated calls to
`wait_for_action_server` the vector will keep growing.
The fix moves the Event object creation right after the early return from
`wait_for_action_server` so that the Event object is not created in the
case that the server is known to be present and therefore there is no
need to wait for a node graph change event to occur.
Signed-off-by: Adrian Stere <astere@clearpath.ai>
* Put subscription callback tracepoints in intraprocess subscription too
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
* Add missing tracetools header
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
* Move Subscription tracepoints back to outside of intra-process condition
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
* Revert API change by adding new tracepoint as an intermediate
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
* refactor template logic around feature combinations
Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
* add support for STREAM logging macros
Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
* Remove duplicate tests
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Expand test timeout to 240 seconds for Connext
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* fix up documentation for zero copy api
Signed-off-by: Karsten Knese <karsten@openrobotics.org>
* rename loan_message to borrow_loaned_message
Signed-off-by: Karsten Knese <karsten@openrobotics.org>
* use return_loaned_message_from
Signed-off-by: Karsten Knese <karsten@openrobotics.org>
* basic ipc implementation from alsora/new_ipc_proposal
Signed-off-by: alberto <alberto.soragna@gmail.com>
better use of node_topic create subscription
Signed-off-by: alberto <alberto.soragna@gmail.com>
added intra process manager test
Signed-off-by: alberto <alberto.soragna@gmail.com>
fixed ring buffer and added test
Signed-off-by: alberto <alberto.soragna@gmail.com>
added intra process buffer test
Signed-off-by: alberto <alberto.soragna@gmail.com>
added intra process buffer test
Signed-off-by: alberto <alberto.soragna@gmail.com>
Signed-off-by: alberto <alberto.soragna@gmail.com>
removed intra-process methods from subscription base
Signed-off-by: alberto <alberto.soragna@gmail.com>
using lock_guard instead of unique_lock, renamed var without camel case
Signed-off-by: alberto <alberto.soragna@gmail.com>
using unordered set and references in intra process manager
Signed-off-by: alberto <alberto.soragna@gmail.com>
subscription intra-process does not depend anymore on subscription, but has a copy of the callback
Signed-off-by: alberto <alberto.soragna@gmail.com>
changed buffer API to use rvo
Signed-off-by: Alberto <alberto.soragna@gmail.com>
avoid copying shared_ptr
Signed-off-by: alberto <alberto.soragna@gmail.com>
revert not needed changes to create_subscription
Signed-off-by: alberto <alberto.soragna@gmail.com>
updated tests according to new buffer APIs
Signed-off-by: alberto <alberto.soragna@gmail.com>
updated types in ring buffer implementation avoid using uint32_t
Signed-off-by: alberto <alberto.soragna@gmail.com>
using unique ptr for buffers in subscription_intra_process
Signed-off-by: alberto <alberto.soragna@gmail.com>
added missing std::move in subscription_intra_process constructor
Signed-off-by: alberto <alberto.soragna@gmail.com>
use consisting names for ring_buffer_implementation members
Signed-off-by: alberto <alberto.soragna@gmail.com>
addressing typos, one-liners and similar from ivanpauno review
Signed-off-by: alberto <alberto.soragna@gmail.com>
moved subscription_intra_process_base to its own files and moved non templated method from derived class
Signed-off-by: alberto <alberto.soragna@gmail.com>
removed forward declarations, fixed include subscription_intra_process_base
Signed-off-by: alberto <alberto.soragna@gmail.com>
removed member variable from do_intra_process_publish signature
Signed-off-by: alberto <alberto.soragna@gmail.com>
declare public before private in intra_process_manager_impl
Signed-off-by: alberto <alberto.soragna@gmail.com>
made matches_any_intra_process_publishers const
Signed-off-by: alberto <alberto.soragna@gmail.com>
using const reference in get_all_matching_publishers
Signed-off-by: alberto <alberto.soragna@gmail.com>
added deleter and alloc templates in intra_process_buffer
Signed-off-by: alberto <alberto.soragna@gmail.com>
added RCLCPP_WARN to intra_process_manager_impl
Signed-off-by: alberto <alberto.soragna@gmail.com>
passing context from node to subscription_intra_process
Signed-off-by: alberto <alberto.soragna@gmail.com>
using allocators in intra_process_manager
Signed-off-by: alberto <alberto.soragna@gmail.com>
use size_t instead of int in ring buffer indices
Signed-off-by: alberto <alberto.soragna@gmail.com>
creating buffer inside subscription_intra_process constructor
Signed-off-by: alberto <alberto.soragna@gmail.com>
fix lint errors
Signed-off-by: alberto <alberto.soragna@gmail.com>
throw error if trying to dequeue when buffer empty; remove duplicated methods in intra_process_buffer
Signed-off-by: alberto <alberto.soragna@gmail.com>
added todo for creating an rmw function for checking qos compatibility
Signed-off-by: alberto <alberto.soragna@gmail.com>
test fixes
Signed-off-by: alberto <alberto.soragna@gmail.com>
refactored intra_process_manager, removed ipm impl
Signed-off-by: alberto <alberto.soragna@gmail.com>
added mutex in intra_process_manager add_* methods
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
added allocator to intra_process_buffer
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
added invalid intra_process qos test for subscription
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
throw error if history size is 0 with keep last and ipc
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
using allocator when creating unique_ptr from shared_ptr
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
adding deleter template argument to intra_process buffer
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
fix linter
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
throw error with callbackT different from messageT
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
updated deleter template argument in subscription factory
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
Fix typo in test fixture tear down method name (#787)
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Add free function for creating service clients (#788)
Equivalent to the free function for creating a service.
Resolves#768
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Cmake infrastructure for creating components (#784)
*cmake macro to create components for libraries with multiple nodes
Signed-off-by: Siddharth Kucheria <kucheria@usc.edu>
Allow registering multiple on_parameters_set_callback (#772)
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
fix for multiple nodes not being recognized (#790)
Signed-off-by: Siddharth Kucheria <kucheria@usc.edu>
Remove non-package from ament_target_dependencies() (#793)
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
fix linter issue (#795)
Signed-off-by: Siddharth Kucheria <kucheria@usc.edu>
Make TimeSource ignore use_sim_time events coming from other nodes. (#799)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
passing deleter template parameter
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
small fixes for failing tests
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
fixed imports in test_intra_process_manager
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
using RCLCPP_SMART_PTR_ALIASES_ONLY and RCLCPP_PUBLIC macros
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
added RCLCPP_PUBLIC macros and virtual destructor to sub intra_process base
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
added unique_ptr alias to macros
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
updated test_intra_process_manager.cpp
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
remove mock msgs from rclcpp (#800)
Signed-off-by: Karsten Knese <karsten@openrobotics.org>
Add line break after first open paren in multiline function call (#785)
* Add line break after first open paren in multiline function call
as per developer guide:
https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#open-versus-cuddled-braces
see https://github.com/ament/ament_lint/pull/148
Signed-off-by: Dan Rose <dan@digilabs.io>
Fix dedent when first function argument starts with a brace
Signed-off-by: Dan Rose <dan@digilabs.io>
Line break with multiline if condition
Remove line breaks where allowed.
Signed-off-by: Dan Rose <dan@digilabs.io>
Fixup after rebase
Signed-off-by: Dan Rose <dan@digilabs.io>
Fixup again after reverting indent_paren_open_brace
Signed-off-by: Dan Rose <dan@digilabs.io>
* Revert comment spacing change, condense some lines
Signed-off-by: Dan Rose <dan@digilabs.io>
Adapt to '--ros-args ... [--]'-based ROS args extraction (#816)
* Use --ros-args to deal with node arguments in rclcpp.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Document implicit --ros-args flag in NodeOptions::arguments().
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Add missing size_t to int cast.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Only add implicit --ros-args flag if not present already.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Add some rclcpp::NodeOptions test coverage.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Address peer review comments.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Please cpplint and uncrustify.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
Guard against making multiple result requests for a goal handle (#808)
This fixes a runtime error caused by a race condition when making consecutive requests for the
result.
Specifically, this happens if the user provides a result callback when sending a goal and then
calls async_get_result shortly after.
Resolves#783
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Explain return value of spin_until_future_complete (#792)
Signed-off-by: Dan Rose <dan@digilabs.io>
Allow passing logger by const ref (#820)
Signed-off-by: Karsten Knese <karsten@openrobotics.org>
Delete unnecessary call for get_node_by_group (#823)
Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com>
Fix get_node_interfaces functions taking a pointer (#821)
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
add callback group as member variable and constructor arg (#811)
Signed-off-by: bpwilcox <bpwilcox@eng.ucsd.edu>
remove callback group as member variable
Wrap documentation examples in code blocks (#830)
This makes the code examples easier to read in the generated documentation.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Crash in callback group pointer vector iterator (#814)
Signed-off-by: Guillaume Autran <gautran@clearpath.ai>
add mutex in add/remove_node and wait_for_work to protect concurrent use/change of memory_strategy_ (#837)
Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
Fix hang with timers in MultiThreadedExecutor (#835) (#836)
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Use of -r/--remap flags where appropriate. (#834)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
Force explicit --ros-args in NodeOptions::arguments(). (#845)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
Fail on invalid and unknown ROS specific arguments (#842)
* Fail on invalid and unknown ROS specific arguments.
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Revert changes to utilities.hpp in rclcpp
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
* Fully revert change to utilities.hpp
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
Fix typo in deprecated warning. (#848)
"it's" instead of its
Signed-off-by: Luca Della Vedova <luca@openrobotics.org>
Add throwing parameter name if parameter is not set (#833)
* added throwing parameter name if parameter is not set
Signed-off-by: Alex <cvbn127@gmail.com>
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
check valid timer handler 1st to reduce the time window for scan. (#841)
Signed-off-by: Tomoya.Fujita <Tomoya.Fujita@sony.com>
remove features and related code which were deprecated in dashing (#852)
Signed-off-by: William Woodall <william@osrfoundation.org>
reset error message before setting a new one, embed the original one (#854)
Signed-off-by: Dirk Thomas <dirk-thomas@users.noreply.github.com>
restored virtual destructor in publisher_base
Signed-off-by: Soragna, Alberto <alberto.soragna@gmail.com>
* fixup a few things after rebase
Signed-off-by: William Woodall <william@osrfoundation.org>
* refactor some API's and get code compiling again
Signed-off-by: William Woodall <william@osrfoundation.org>
* docs and style changes (whitespace)
Signed-off-by: William Woodall <william@osrfoundation.org>
* move new intra process internals into experimental namespace
Signed-off-by: William Woodall <william@osrfoundation.org>
* uncrustify
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix issues with LoanedMessages after rebase
Signed-off-by: William Woodall <william@osrfoundation.org>
* more fixups
Signed-off-by: William Woodall <william@osrfoundation.org>
* readd logic for avoiding in compatible QoS
Signed-off-by: William Woodall <william@osrfoundation.org>
* avoid an error when intra process is disabled
Signed-off-by: William Woodall <william@osrfoundation.org>
* change intra process to preserve pointer in cyclic_pipeline
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix issue matching topics in intra process
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix some issues with the tests after latest behavior change
Signed-off-by: William Woodall <william@osrfoundation.org>
* address review feedback
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix the initialization order
Signed-off-by: William Woodall <william@osrfoundation.org>
* avoid possible loss of data warning
Signed-off-by: William Woodall <william@osrfoundation.org>
* more fixes related to initialization
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix use of custom allocators
Signed-off-by: William Woodall <william@osrfoundation.org>
As documented in rcl_action, a return code of RCL_RET_ACTION_CLIENT_TAKE_FAILED does not mean that
an error occurred.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>