rcl/rcl_action/include/rcl_action/rcl_action.h
Jacob Perron b5039d20d7
Add Action graph API (#411)
* Add action graph API

Builds on top of the rcl graph API.
A list of action names associated with action clients can be constructed by
looking for subscriber topic names that have the suffix "/_action/feedback".
Likewise, action servers are associated with publisher topic names with the same suffix.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Enable multiple rmw action graph API tests

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Use ament_target_dependencies for osrf_testing_tools_cpp

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix lint errors

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Refactor

* Move graph API common implementation to local function
* Refactor tests

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Disable graph tests with OpenSplice

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Include graph.h in rcl_action.h

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Remove duplicate test

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Prefix increment operators

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Rename 'suffix' -> 'identifier'

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Add missing finalize calls and remove redundant branch

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Finalize names and types struct on error

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix bugs in tests

Pass valid names and types struct and update expected error code.

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Add zero allocator tests

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix indentation

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Check if action identifiers are the suffix

Signed-off-by: Jacob Perron <jacob@openrobotics.org>
2019-04-14 07:30:51 -07:00

63 lines
1.9 KiB
C

// Copyright 2018 Open Source Robotics Foundation, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/** \mainpage rcl: Common functionality ROS actions
*
* `rcl_action` provides a pure C implementation of the ROS concept of an \b action.
* It builds on top of the implementation of topics and services in `rcl`.
*
* `rcl_action` consists of functions and structs for the following ROS action entities:
*
* - Action client
* - rcl_action/action_client.h
* - Action server
* - rcl_action/action_server.h
* - Goal handle
* - rcl_action/goal_handle.h
* - Goal state machine
* - rcl_action/goal_state_machine.h
*
* It also has some machinery that is necessary to wait on and act on these entities:
*
* - Wait sets for waiting on actions clients and action servers to be ready
* - rcl_action/wait.h
*
* Some useful abstractions and utilities:
*
* - Return codes and other types
* - rcl_action/types.h
*/
#ifndef RCL_ACTION__RCL_ACTION_H_
#define RCL_ACTION__RCL_ACTION_H_
#ifdef __cplusplus
extern "C"
{
#endif
#include "rcl_action/action_client.h"
#include "rcl_action/action_server.h"
#include "rcl_action/default_qos.h"
#include "rcl_action/goal_handle.h"
#include "rcl_action/goal_state_machine.h"
#include "rcl_action/graph.h"
#include "rcl_action/types.h"
#include "rcl_action/wait.h"
#ifdef __cplusplus
}
#endif
#endif // RCL_ACTION__RCL_ACTION_H_