Now supports callbacks for the goal response and result.
This also makes it easier to incorporate action clients in composable nodes since we don't have to rely on waiting on futures.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* match renamed action types
* fix action type casting
* rename type/field to use correct term
* rename custom GoalID type to avoid naming collision, update types using unique_identifier_msgs
* remove obsolete comments
* change signature of set_succeeded / set_canceled
* change signature of on_terminal_state_(uuid_, result_msg);set_succeeded / set_canceled
* change signature of set_aborted
* change signature of publish_feedback
* update another test
* add wait_for_action_server() for action clients
Signed-off-by: William Woodall <william@osrfoundation.org>
* Handle negative timeouts in wait_for_service() and wait_for_action_server() methods.
* Fix uncrustify errors.
* Ignore take failure on services for connext
* Commiting to back up work, does not function
* Can call user callback when goal request received
* fini action server in destructor
* rename user callback virtual functions
* handle_execute test passes
* Remove out of date comment
* Refactor execute into three functions
* Remove unused file
* Add failing cancel test
* Cancel test passes
* Remove out of date comments
* Make sure server publishes status when accepting a goal
* Send status when goals transition to cancelling
* Refactored sending goal request to its own function
* Refactor cancel request into it's own function
* Comment with remaining tests
* Executing and terminal state statuses
* publish feedback works
* server sends result to clients that request it
* Remove out of date comment
* Add ServerGoalHandle::is_active()
* Cleanup when goals expire
* Can pass in action server options
* cpplint and uncrustify fixes
* Fix clang warnings
* Copy rcl goal handle
* Fix clang warning
* Use intermediate value to avoid left shift on 32bit integer
* RCLCPP_ACTION_PUBLIC everwhere
* Change callback parameter from C type to C++
* Add accessors for request and uuid
* Feedback must include goal id
* Document Server<> and ServerBase<>
* handle_execute -> handle_accepted
* Test deferred execution
* only publish feedback if goal is executing
* Documentation for ServerGoalHandle
* document msg parameters
* remove unnecessary fini
* notify_goal_done only takes server
* Use unique_indentifier_msgs
* create_server accepts group and removes waitable
* uncrustify
* Use weak ptr to avoid crash if goal handle lives longer than server
* Handle goal callback const message
* Goal handle doesn't have server pointer anymore
* Lock goal_handles_ on Server<>
* rcl_action_server_t protected with mutex
* ServerBase results protected with mutex
* protect rcl goal handle with mutex
* is_cancel_request -> is_canceling
* Add missing include
* use GoalID and change uuid -> goal_id
* Keep rcl goal handle alive until it expires on server
* uncrustify
* Move UUID hash
* Log messages in server
* ACTION -> ActionT
* Cancel abandoned goal handles
* Add convert() for C and C++ goal id
* Remove unused variable
* Constant reference
* Move variable declaration down
* is_ready if goal expired
* map[] default constructs if it doesn't exist
* Use rcl_action_get_goal_status_array()
* Array -> GoalID
* Use reentrant mutex for everything
* comment
* scope exit to fini cancel response
* using GoalID
* WIP
* Removed async_cancel from action ClintGoalHandle API
* Added status handler to action client goal handler
* Added result handler to action client goal handler
* Identation fix
* Added get/set for action client goal handler
* Changed action client goal handler attrs from rcl to cpp versions
* Added check methods to action client goal handler
* Removed rcl_client pointer from action client goal handler
* Added basic waitable interface to action client
* Updated waitable execute from action client
* Added throw for rcl calls in action client
* Removed duplicated ready flags from action client
* Minor fix
* Added header to action ClientBaseImpl execute
* Mich's update to action client interface
* Added trailing suffix to client pimpl attrs
* Towards a consistent action client
* Misc fixes for the action client
* Yet more misc fixes for the action client
* Few more fixes and shortcuts to deal with missing type support.
* Fixed lint errors in action headers and client
* Fixes to action client internal workflow.
* Misc fixes to get client example to build
* More misck client fixes
* Remove debug print
* replace logging with throw_from_rcl_error
* Wrap result object given by client to user
* Fix a couple bugs trying to cancel goals
* Use unique_indentifier_msgs
* create_client accepts group and removes waitable
* Uncrustify fixes
* [rclcpp_action] Adds tests for action client.
* [WIP] Failing action client tests.
* [rclcpp_action] Action client tests passing.
* Spin both executors to make tests pass on my machine
* Feedback callback uses shared pointer
* comment about why make_result_aware is called
* Client documentation
* Execute one thing at a time
* Return nullptr instead of throwing RejectedGoalError
* ClientGoalHandle worries about feedback awareness
* cpplint + uncrustify
* Use node logging interface
* ACTION -> ActionT
* Make ClientBase constructor protected
* Return types on different line
* Avoid passing const reference to temporary
* Child logger rclcpp_action
* Child logger rclcpp_action
* possible windows fixes
* remove excess space
* swap argument order
* Misc test additions
* Windows independent_bits_engine can't do uint8_t
* Windows link issues