5#include <rclcpp/rclcpp.hpp>
6#include <capabilities2_msgs/msg/capability_event_stamped.hpp>
14 PublishedEvent(rclcpp::Publisher<capabilities2_msgs::msg::CapabilityEventStamped>::SharedPtr event_pub)
24 void emit(
const std::string& connection_id,
const uint8_t& event_code,
25 const capabilities2_msgs::msg::Capability& source,
const capabilities2_msgs::msg::Capability& target,
29 size_t first_pos = connection_id.find(
'/');
30 size_t second_pos = connection_id.find(
'/', first_pos + 1);
32 std::string instance_id = (second_pos != std::string::npos) ? connection_id.substr(first_pos + 1, second_pos - first_pos - 1) :
"";
34 capabilities2_msgs::msg::CapabilityEventStamped event_msg;
35 event_msg.header.stamp = rclcpp::Clock().now();
36 event_msg.event.trigger_id = instance_id;
37 event_msg.event.code.code = event_code;
38 event_msg.event.connection.source = source;
39 event_msg.event.connection.target = target;
55 capabilities2_msgs::msg::CapabilityEventStamped event_msg;
56 event_msg.header.stamp = rclcpp::Clock().now();
57 event_msg.event.connection.source.capability =
"capabilities2_server";
58 event_msg.event.connection.source.provider =
"capabilities2_server";
59 event_msg.event.code.code = capabilities2_msgs::msg::CapabilityEventCode::SERVER_READY;
60 event_msg.event.description = msg;
72 capabilities2_msgs::msg::CapabilityEventStamped event_msg;
73 event_msg.header.stamp = rclcpp::Clock().now();
74 event_msg.event.connection.source.capability =
"capabilities2_server";
75 event_msg.event.connection.source.provider =
"capabilities2_server";
76 event_msg.event.code.code = capabilities2_msgs::msg::CapabilityEventCode::LAUNCHED;
77 event_msg.event.description =
"Process launched with PID: " + pid;
89 capabilities2_msgs::msg::CapabilityEventStamped event_msg;
90 event_msg.header.stamp = rclcpp::Clock().now();
91 event_msg.event.connection.source.capability =
"capabilities2_server";
92 event_msg.event.connection.source.provider =
"capabilities2_server";
93 event_msg.event.code.code = capabilities2_msgs::msg::CapabilityEventCode::TERMINATED;
94 event_msg.event.description =
"Process terminated with PID: " + pid;
101 capabilities2_msgs::msg::CapabilityEventStamped event_msg;
102 event_msg.header.stamp = rclcpp::Clock().now();
103 event_msg.event.connection.source.capability =
"capabilities2_server";
104 event_msg.event.connection.source.provider =
"capabilities2_server";
105 event_msg.event.code.code = capabilities2_msgs::msg::CapabilityEventCode::TRIGGERED;
106 event_msg.event.description =
"Triggered event with ID: " + trigger_id;
111 void on_connected(
const std::string& source,
const std::string& target)
113 capabilities2_msgs::msg::CapabilityEventStamped event_msg;
114 event_msg.header.stamp = rclcpp::Clock().now();
115 event_msg.event.connection.source.capability =
"capabilities2_server";
116 event_msg.event.connection.source.provider =
"capabilities2_server";
117 event_msg.event.code.code = capabilities2_msgs::msg::CapabilityEventCode::CONNECTED;
118 event_msg.event.description =
"Connected event from " + source +
" to " + target;
125 capabilities2_msgs::msg::CapabilityEventStamped event_msg;
126 event_msg.header.stamp = rclcpp::Clock().now();
127 event_msg.event.connection.source.capability =
"capabilities2_server";
128 event_msg.event.connection.source.provider =
"capabilities2_server";
129 event_msg.event.code.code = capabilities2_msgs::msg::CapabilityEventCode::DISCONNECTED;
130 event_msg.event.description =
"Disconnected event from " + source +
" to " + target;
137 rclcpp::Publisher<capabilities2_msgs::msg::CapabilityEventStamped>::SharedPtr
event_pub_;
event base class
Definition event_base.hpp:43
std::function< void(const access_id_t &, const capability_str_t &, const target_instance_id_t &, parameter_t)> event_callback_t
Definition event_base.hpp:49
virtual void emit(const std::string &connection_id, const uint8_t &event_code, const capabilities2_msgs::msg::Capability &source, const capabilities2_msgs::msg::Capability &target, event_callback_t callback)
emit an event
Definition event_base.hpp:71
Definition published_event.hpp:12
PublishedEvent(rclcpp::Publisher< capabilities2_msgs::msg::CapabilityEventStamped >::SharedPtr event_pub)
Definition published_event.hpp:14
void on_disconnected(const std::string &source, const std::string &target)
on disconnected event from server
Definition published_event.hpp:123
void emit(const std::string &connection_id, const uint8_t &event_code, const capabilities2_msgs::msg::Capability &source, const capabilities2_msgs::msg::Capability &target, EventBase::event_callback_t callback) override
see EventBase::emit, specialised to publish events
Definition published_event.hpp:24
void on_triggered(const std::string &trigger_id)
on triggered event from server
Definition published_event.hpp:99
~PublishedEvent()=default
void on_process_launched(const std::string &pid)
on process launched event
Definition published_event.hpp:70
void on_process_terminated(const std::string &pid)
on process terminated event
Definition published_event.hpp:87
rclcpp::Publisher< capabilities2_msgs::msg::CapabilityEventStamped >::SharedPtr event_pub_
Definition published_event.hpp:137
void on_server_ready(const std::string &msg)
on server ready event
Definition published_event.hpp:53
void on_connected(const std::string &source, const std::string &target)
on connected event from server
Definition published_event.hpp:111
Definition event_base.hpp:14