Commit 8525ee2
New Intra-Process Communication (#778)
* basic ipc implementation from alsora/new_ipc_proposal
Signed-off-by: alberto <[email protected]>
better use of node_topic create subscription
Signed-off-by: alberto <[email protected]>
added intra process manager test
Signed-off-by: alberto <[email protected]>
fixed ring buffer and added test
Signed-off-by: alberto <[email protected]>
added intra process buffer test
Signed-off-by: alberto <[email protected]>
added intra process buffer test
Signed-off-by: alberto <[email protected]>
Signed-off-by: alberto <[email protected]>
removed intra-process methods from subscription base
Signed-off-by: alberto <[email protected]>
using lock_guard instead of unique_lock, renamed var without camel case
Signed-off-by: alberto <[email protected]>
using unordered set and references in intra process manager
Signed-off-by: alberto <[email protected]>
subscription intra-process does not depend anymore on subscription, but has a copy of the callback
Signed-off-by: alberto <[email protected]>
changed buffer API to use rvo
Signed-off-by: Alberto <[email protected]>
avoid copying shared_ptr
Signed-off-by: alberto <[email protected]>
revert not needed changes to create_subscription
Signed-off-by: alberto <[email protected]>
updated tests according to new buffer APIs
Signed-off-by: alberto <[email protected]>
updated types in ring buffer implementation avoid using uint32_t
Signed-off-by: alberto <[email protected]>
using unique ptr for buffers in subscription_intra_process
Signed-off-by: alberto <[email protected]>
added missing std::move in subscription_intra_process constructor
Signed-off-by: alberto <[email protected]>
use consisting names for ring_buffer_implementation members
Signed-off-by: alberto <[email protected]>
addressing typos, one-liners and similar from ivanpauno review
Signed-off-by: alberto <[email protected]>
moved subscription_intra_process_base to its own files and moved non templated method from derived class
Signed-off-by: alberto <[email protected]>
removed forward declarations, fixed include subscription_intra_process_base
Signed-off-by: alberto <[email protected]>
removed member variable from do_intra_process_publish signature
Signed-off-by: alberto <[email protected]>
declare public before private in intra_process_manager_impl
Signed-off-by: alberto <[email protected]>
made matches_any_intra_process_publishers const
Signed-off-by: alberto <[email protected]>
using const reference in get_all_matching_publishers
Signed-off-by: alberto <[email protected]>
added deleter and alloc templates in intra_process_buffer
Signed-off-by: alberto <[email protected]>
added RCLCPP_WARN to intra_process_manager_impl
Signed-off-by: alberto <[email protected]>
passing context from node to subscription_intra_process
Signed-off-by: alberto <[email protected]>
using allocators in intra_process_manager
Signed-off-by: alberto <[email protected]>
use size_t instead of int in ring buffer indices
Signed-off-by: alberto <[email protected]>
creating buffer inside subscription_intra_process constructor
Signed-off-by: alberto <[email protected]>
fix lint errors
Signed-off-by: alberto <[email protected]>
throw error if trying to dequeue when buffer empty; remove duplicated methods in intra_process_buffer
Signed-off-by: alberto <[email protected]>
added todo for creating an rmw function for checking qos compatibility
Signed-off-by: alberto <[email protected]>
test fixes
Signed-off-by: alberto <[email protected]>
refactored intra_process_manager, removed ipm impl
Signed-off-by: alberto <[email protected]>
added mutex in intra_process_manager add_* methods
Signed-off-by: Soragna, Alberto <[email protected]>
added allocator to intra_process_buffer
Signed-off-by: Soragna, Alberto <[email protected]>
added invalid intra_process qos test for subscription
Signed-off-by: Soragna, Alberto <[email protected]>
throw error if history size is 0 with keep last and ipc
Signed-off-by: Soragna, Alberto <[email protected]>
using allocator when creating unique_ptr from shared_ptr
Signed-off-by: Soragna, Alberto <[email protected]>
adding deleter template argument to intra_process buffer
Signed-off-by: Soragna, Alberto <[email protected]>
fix linter
Signed-off-by: Soragna, Alberto <[email protected]>
throw error with callbackT different from messageT
Signed-off-by: Soragna, Alberto <[email protected]>
updated deleter template argument in subscription factory
Signed-off-by: Soragna, Alberto <[email protected]>
Fix typo in test fixture tear down method name (#787)
Signed-off-by: Jacob Perron <[email protected]>
Add free function for creating service clients (#788)
Equivalent to the free function for creating a service.
Resolves #768
Signed-off-by: Jacob Perron <[email protected]>
Cmake infrastructure for creating components (#784)
*cmake macro to create components for libraries with multiple nodes
Signed-off-by: Siddharth Kucheria <[email protected]>
Allow registering multiple on_parameters_set_callback (#772)
Signed-off-by: ivanpauno <[email protected]>
fix for multiple nodes not being recognized (#790)
Signed-off-by: Siddharth Kucheria <[email protected]>
Remove non-package from ament_target_dependencies() (#793)
Signed-off-by: Shane Loretz <[email protected]>
fix linter issue (#795)
Signed-off-by: Siddharth Kucheria <[email protected]>
Make TimeSource ignore use_sim_time events coming from other nodes. (#799)
Signed-off-by: Michel Hidalgo <[email protected]>
passing deleter template parameter
Signed-off-by: Soragna, Alberto <[email protected]>
small fixes for failing tests
Signed-off-by: Soragna, Alberto <[email protected]>
fixed imports in test_intra_process_manager
Signed-off-by: Soragna, Alberto <[email protected]>
using RCLCPP_SMART_PTR_ALIASES_ONLY and RCLCPP_PUBLIC macros
Signed-off-by: Soragna, Alberto <[email protected]>
added RCLCPP_PUBLIC macros and virtual destructor to sub intra_process base
Signed-off-by: Soragna, Alberto <[email protected]>
added unique_ptr alias to macros
Signed-off-by: Soragna, Alberto <[email protected]>
updated test_intra_process_manager.cpp
Signed-off-by: Soragna, Alberto <[email protected]>
remove mock msgs from rclcpp (#800)
Signed-off-by: Karsten Knese <[email protected]>
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 ament/ament_lint#148
Signed-off-by: Dan Rose <[email protected]>
Fix dedent when first function argument starts with a brace
Signed-off-by: Dan Rose <[email protected]>
Line break with multiline if condition
Remove line breaks where allowed.
Signed-off-by: Dan Rose <[email protected]>
Fixup after rebase
Signed-off-by: Dan Rose <[email protected]>
Fixup again after reverting indent_paren_open_brace
Signed-off-by: Dan Rose <[email protected]>
* Revert comment spacing change, condense some lines
Signed-off-by: Dan Rose <[email protected]>
Adapt to '--ros-args ... [--]'-based ROS args extraction (#816)
* Use --ros-args to deal with node arguments in rclcpp.
Signed-off-by: Michel Hidalgo <[email protected]>
* Document implicit --ros-args flag in NodeOptions::arguments().
Signed-off-by: Michel Hidalgo <[email protected]>
* Add missing size_t to int cast.
Signed-off-by: Michel Hidalgo <[email protected]>
* Only add implicit --ros-args flag if not present already.
Signed-off-by: Michel Hidalgo <[email protected]>
* Add some rclcpp::NodeOptions test coverage.
Signed-off-by: Michel Hidalgo <[email protected]>
* Address peer review comments.
Signed-off-by: Michel Hidalgo <[email protected]>
* Please cpplint and uncrustify.
Signed-off-by: Michel Hidalgo <[email protected]>
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 <[email protected]>
Explain return value of spin_until_future_complete (#792)
Signed-off-by: Dan Rose <[email protected]>
Allow passing logger by const ref (#820)
Signed-off-by: Karsten Knese <[email protected]>
Delete unnecessary call for get_node_by_group (#823)
Signed-off-by: Tomoya.Fujita <[email protected]>
Fix get_node_interfaces functions taking a pointer (#821)
Signed-off-by: ivanpauno <[email protected]>
add callback group as member variable and constructor arg (#811)
Signed-off-by: bpwilcox <[email protected]>
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 <[email protected]>
Crash in callback group pointer vector iterator (#814)
Signed-off-by: Guillaume Autran <[email protected]>
add mutex in add/remove_node and wait_for_work to protect concurrent use/change of memory_strategy_ (#837)
Signed-off-by: Dirk Thomas <[email protected]>
Fix hang with timers in MultiThreadedExecutor (#835) (#836)
Signed-off-by: Todd Malsbary <[email protected]>
Use of -r/--remap flags where appropriate. (#834)
Signed-off-by: Michel Hidalgo <[email protected]>
Force explicit --ros-args in NodeOptions::arguments(). (#845)
Signed-off-by: Michel Hidalgo <[email protected]>
Fail on invalid and unknown ROS specific arguments (#842)
* Fail on invalid and unknown ROS specific arguments.
Signed-off-by: Michel Hidalgo <[email protected]>
* Revert changes to utilities.hpp in rclcpp
Signed-off-by: Michel Hidalgo <[email protected]>
* Fully revert change to utilities.hpp
Signed-off-by: Michel Hidalgo <[email protected]>
Fix typo in deprecated warning. (#848)
"it's" instead of its
Signed-off-by: Luca Della Vedova <[email protected]>
Add throwing parameter name if parameter is not set (#833)
* added throwing parameter name if parameter is not set
Signed-off-by: Alex <[email protected]>
Signed-off-by: ivanpauno <[email protected]>
check valid timer handler 1st to reduce the time window for scan. (#841)
Signed-off-by: Tomoya.Fujita <[email protected]>
remove features and related code which were deprecated in dashing (#852)
Signed-off-by: William Woodall <[email protected]>
reset error message before setting a new one, embed the original one (#854)
Signed-off-by: Dirk Thomas <[email protected]>
restored virtual destructor in publisher_base
Signed-off-by: Soragna, Alberto <[email protected]>
* fixup a few things after rebase
Signed-off-by: William Woodall <[email protected]>
* refactor some API's and get code compiling again
Signed-off-by: William Woodall <[email protected]>
* docs and style changes (whitespace)
Signed-off-by: William Woodall <[email protected]>
* move new intra process internals into experimental namespace
Signed-off-by: William Woodall <[email protected]>
* uncrustify
Signed-off-by: William Woodall <[email protected]>
* fix issues with LoanedMessages after rebase
Signed-off-by: William Woodall <[email protected]>
* more fixups
Signed-off-by: William Woodall <[email protected]>
* readd logic for avoiding in compatible QoS
Signed-off-by: William Woodall <[email protected]>
* avoid an error when intra process is disabled
Signed-off-by: William Woodall <[email protected]>
* change intra process to preserve pointer in cyclic_pipeline
Signed-off-by: William Woodall <[email protected]>
* fix issue matching topics in intra process
Signed-off-by: William Woodall <[email protected]>
* fix some issues with the tests after latest behavior change
Signed-off-by: William Woodall <[email protected]>
* address review feedback
Signed-off-by: William Woodall <[email protected]>
* fix the initialization order
Signed-off-by: William Woodall <[email protected]>
* avoid possible loss of data warning
Signed-off-by: William Woodall <[email protected]>
* more fixes related to initialization
Signed-off-by: William Woodall <[email protected]>
* fix use of custom allocators
Signed-off-by: William Woodall <[email protected]>1 parent 8fd9a0a commit 8525ee2
File tree
47 files changed
+2601
-2636
lines changed- rclcpp_lifecycle/include/rclcpp_lifecycle
- rclcpp
- include/rclcpp
- detail
- experimental
- buffers
- strategies
- src/rclcpp
- node_interfaces
- test
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
47 files changed
+2601
-2636
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
51 | 50 | | |
52 | 51 | | |
53 | 52 | | |
| |||
75 | 74 | | |
76 | 75 | | |
77 | 76 | | |
| 77 | + | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| |||
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
203 | | - | |
204 | | - | |
205 | | - | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| 212 | + | |
212 | 213 | | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
217 | 227 | | |
218 | 228 | | |
219 | 229 | | |
220 | 230 | | |
221 | 231 | | |
| 232 | + | |
222 | 233 | | |
223 | 234 | | |
224 | 235 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
46 | 45 | | |
47 | 46 | | |
48 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
227 | 227 | | |
228 | 228 | | |
229 | 229 | | |
230 | | - | |
| 230 | + | |
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| 75 | + | |
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
| |||
Lines changed: 54 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
305 | 305 | | |
306 | 306 | | |
307 | 307 | | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | 308 | | |
314 | 309 | | |
315 | 310 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
Lines changed: 42 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
0 commit comments