15 #ifndef RCLCPP__EXPERIMENTAL__EXECUTORS__EVENTS_EXECUTOR__EVENTS_QUEUE_HPP_
16 #define RCLCPP__EXPERIMENTAL__EXECUTORS__EVENTS_EXECUTOR__EVENTS_QUEUE_HPP_
20 #include "rclcpp/macros.hpp"
21 #include "rclcpp/visibility_control.hpp"
23 #include "rclcpp/experimental/executors/events_executor/events_executor_event_types.hpp"
27 namespace experimental
75 std::chrono::nanoseconds timeout = std::chrono::nanoseconds::max()) = 0;
This abstract class can be used to implement different types of queues where ExecutorEvent can be sto...
virtual RCLCPP_PUBLIC bool dequeue(rclcpp::experimental::executors::ExecutorEvent &event, std::chrono::nanoseconds timeout=std::chrono::nanoseconds::max())=0
Extracts an event from the queue, eventually waiting until timeout if none is available.
virtual RCLCPP_PUBLIC size_t size() const =0
Returns the number of elements in the queue.
virtual RCLCPP_PUBLIC ~EventsQueue()=default
Destruct the object.
virtual RCLCPP_PUBLIC bool empty() const =0
Test whether queue is empty.
virtual RCLCPP_PUBLIC void enqueue(const rclcpp::experimental::executors::ExecutorEvent &event)=0
push event into the queue
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.