* refactor init to not be global
Signed-off-by: William Woodall <william@osrfoundation.org>
* style changes
Signed-off-by: William Woodall <william@osrfoundation.org>
* refactor to hide use of C11 atomics in implementation
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix new action tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* use alternative atomic init for Windows support
* updates after rebase
Signed-off-by: William Woodall <william@osrfoundation.org>
* cleanup rmw_init_options before copying
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix two bugs in new init code
* relax validity checks in a few places to facilitate post shutdown cleanup
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixing tests for new API behavior
Signed-off-by: William Woodall <william@osrfoundation.org>
* to allocator -> to allocate
* acutally call rmw_shutdown() and address review comments
Signed-off-by: William Woodall <william@osrfoundation.org>
Added action cancel test
Added action result communication test
Added action status communication test
Added action feedback communication test
Fix wrong return code in action client
* Implement action server init, fini, and is_valid functions
* Add macros for initializing services and publishers
* Implement rcl_action_server_get_default_options()
* Implement rcl_action_accept_new_goal()
* Add function, rcl_action_server_goal_exists(), for checking if goal is already being tracked by an action server
* Add unit tests
* Implement rcl_action_server_get_goal_handles()
* Implement rcl_action_server_get_options()
* Implement rcl_action_server_get_action_name()
* Implement rcl_action_get_goal_status_array()
* Bugfix: reset pointers and size in type finalize functions
Also let finalize functions be called on already finalized objects
* Implement send/take functions for action server services
* Implement action server publishers for feedback and status
* Implement rcl_action_process_cancel_request()
* Add partial communication tests
* Define UUID_SIZE
* Use type-erased pointer for rcl_action_publish_status()
* Implement rcl_action_clear_expired_goals()
Introduce rcl_clock_t to action server implementation.
* Change internal goal handle array to be an array of pointers.
* Add check for invalid action names
* Do heap allocation of temporary array to satisfy MSVC compiler
* Bugfix: finalize node in test tear downs and reset expected errors
* Update documentation
* Update package.xml
* Pass in rcl_clock_t to action server
Rather than initializing internally.
* Do not finalize goal handles in expire function
Instead, leave it up to the caller to finalize goal handles.
Renamed the function to rcl_action_expire_goals.
* [rcl_action] Add function for checking if goal can be transitioned to CANCELING
Add unit tests for the new function rcl_action_goal_handle_is_cancelable(), as well as rcl_action_goal_handle_is_active().
* use new error handling API from rcutils
Signed-off-by: William Woodall <william@osrfoundation.org>
* use semicolons after macros
Signed-off-by: William Woodall <william@osrfoundation.org>
* use new error handling API from rcutils
Signed-off-by: William Woodall <william@osrfoundation.org>
* minimize vertical whitespace
Signed-off-by: William Woodall <william@osrfoundation.org>
* use semicolons after macros
Signed-off-by: William Woodall <william@osrfoundation.org>
* Fix buggy if-conditions in transition functions.
* Bugfix: incease number of states by one
* Cleanup CMakeLists.txt and package.xml
* Move goal state machine implementation details from header to C file
* Create rcl_action package with proposed headers for:
- Action client
- Action server
- Goal handle
- Goal state machine
- Types
* Add rcl_action.h and Doxyfile
* Add functions for adding action clients and action servers to a wait set
* Add default QoS profile for status topic and document default options for action clients/servers
* Include all headers in a .c file for testing compilation