Capabilities2 0.3.0
Loading...
Searching...
No Matches
encap_runner.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <capabilities2_runner/notrigger_action_runner.hpp>
4#include <capabilities2_msgs/action/capability.hpp>
5
7{
8
20template <typename ActionT>
21class EnCapRunner : public NoTriggerActionRunner<ActionT>
22{
23public:
24 EnCapRunner() : NoTriggerActionRunner()
25 {
26 }
27
40 virtual void init_encapsulated_action(rclcpp::Node::SharedPtr node, const runner_opts& run_config,
41 const std::string& action_name, std::function<void(Event&)> print)
42 {
43 // init the base action runner
44 init_action(node, run_config, action_name, print);
45
46 // create an encapsulating action server
47 encap_action_ = rclcpp_action::create_server<capabilities2_msgs::action::Capability>(
48 node_, "~/encap/" + get_provider(),
49 std::bind(&EnCapRunner::handle_goal, this, std::placeholders::_1, std::placeholders::_2),
50 std::bind(&EnCapRunner::handle_cancel, this, std::placeholders::_1),
51 std::bind(&EnCapRunner::handle_accepted, this, std::placeholders::_1));
52 }
53
60 virtual void stop(const std::string& bond_id, const std::string& instance_id = "") override
61 {
62 // stop the encapsulating action server
63 encap_action_->cancel_all_goals();
64 encap_action_.reset();
65
66 // stop the base class
67 ActionRunner::stop(bond_id, instance_id);
68
69 // emit stopped event
70 emit_stopped(bond_id, instance_id, param_on_stopped());
71 }
72
73 // encapsulated action server related functions
80 virtual void handle_goal(const rclcpp_action::GoalUUID& uuid,
81 std::shared_ptr<const capabilities2_msgs::action::Capability::Goal> goal);
82
88 virtual void handle_cancel(
89 const std::shared_ptr<rclcpp_action::ServerGoalHandle<capabilities2_msgs::action::Capability>> goal_handle);
90
96 virtual void handle_accepted(
97 const std::shared_ptr<rclcpp_action::ServerGoalHandle<capabilities2_msgs::action::Capability>> goal_handle);
98
99private:
101 std::shared_ptr<rclcpp_action::Server<capabilities2_msgs::action::Capability>> encap_action_;
102};
103
104} // namespace capabilities2_runner
virtual void stop(const std::string &bond_id, const std::string &instance_id="") override
stop function to cease functionality and shutdown
Definition action_runner.hpp:68
encapsulated capability runner
Definition encap_runner.hpp:22
EnCapRunner()
Definition encap_runner.hpp:24
virtual void handle_cancel(const std::shared_ptr< rclcpp_action::ServerGoalHandle< capabilities2_msgs::action::Capability > > goal_handle)
handle encap action cancel goal
virtual void stop(const std::string &bond_id, const std::string &instance_id="") override
stop the encapsulated action server
Definition encap_runner.hpp:60
virtual void init_encapsulated_action(rclcpp::Node::SharedPtr node, const runner_opts &run_config, const std::string &action_name, std::function< void(Event &)> print)
init encapsulated action
Definition encap_runner.hpp:40
std::shared_ptr< rclcpp_action::Server< capabilities2_msgs::action::Capability > > encap_action_
Definition encap_runner.hpp:101
virtual void handle_accepted(const std::shared_ptr< rclcpp_action::ServerGoalHandle< capabilities2_msgs::action::Capability > > goal_handle)
handle encap action accepted
virtual void handle_goal(const rclcpp_action::GoalUUID &uuid, std::shared_ptr< const capabilities2_msgs::action::Capability::Goal > goal)
handle encap action goal
Definition action_runner.hpp:19
runner options
Definition runner_base.hpp:56