* [rclcpp] Add class Waitable
Provides a virtual API for interacting with wait sets.
* [rclcpp] Add node interface for Waitables
* [rclcpp] Implement node interface for Waitables
* [rclcpp] Integrate Waitable entities with executor
* Implement remaining logic for integrating Waitables
* Add visibility macros and other refactoring to Waitable class
* Return zero size for entities in a Waitable by default
* Bugfix: Clear list of waitable handles
* Bugfix: update Waitable handle list based on readiness
* Bugfix: update for loop condition
* Give node a node_waitables_
* Give lifecycle node a node_waitables
Now the functions take an optional output index argument.
Refactored the graph listener usage of rcl_wait_set_add_guard_condition() to take advantage of the new API.
* issue a warning if publishing on a not active publisher
* Adding a logger private member in LifecyclePublisher for avoiding creating a new one echa call
* Providing logging macro signature that accepts std::string
* - RCLCPP_ prefix to macros Add
- New tests added
* - Added doc to the functions and macros
- Functions declared as RCLCPP_PUBLIC
* - Small typo in doc corrected
* Fixed error when compiling with clang
* touch up docs
This fixes the build on MacOS High Sierra and later, and
is the more correct thing to do anyway.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* Don't auto-activate ROS time if clock topic is being published
* Destroy subscription when not needed, avoid re-creating it
* Additional tests
* Always reset pointer
* Initialise sub in initialiser list
* Implement get_parameter_or_set_default.
This is syntactic sugar to allow the user to get a parameter.
If the parameter is already set on the node, it gets the value
of the parameter. If it is not set, then it gets the alternative
value and sets it on the node, ensuring that it exists.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* Review fixes (one sentence per line).
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* Rename get_parameter_or_set_default -> get_parameter_or_set
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
* Add TIME_MAX and DURATION_MAX functions
* Fix Linting Errors
* change funtion name as per coding style
* change function name as per coding style
* Update duration.cpp
* Update time.cpp
* Update test_duration.cpp
* Update time.hpp
* remove extra empty line
* fix indentation to comply with uncrusity 0.67
* fix spacing before opening brackets
* space between reference and variable name in signature
* questionable space between pointer marker and variable name
* Baseline test and force threads to yield.
* Add timer tracking for executor.
* Add locking and test happy-path exit conditions.
* Move logic to multi_threaded_executor
* Address reviewer feedback by reducing scope of set.
* Expand tolerance on testing.
* comment fixup
Otherwise it seemed to me like it would yield twice.