22 #include "ready_entity.hpp"
23 #include "scheduler.hpp"
24 #include "global_event_id_provider.hpp"
30 namespace cbg_executor
36 : CallbackGroupHandle(scheduler, type)
40 std::function<void(
size_t)> get_ready_callback_for_entity(
41 const rclcpp::SubscriptionBase::WeakPtr & entity)
final;
42 std::function<void(std::function<
void()> executed_callback)> get_ready_callback_for_entity(
43 const rclcpp::TimerBase::WeakPtr & entity)
final;
44 std::function<void(
size_t)> get_ready_callback_for_entity(
45 const rclcpp::ClientBase::WeakPtr & entity)
final;
46 std::function<void(
size_t)> get_ready_callback_for_entity(
47 const rclcpp::ServiceBase::WeakPtr & entity)
final;
48 std::function<void(
size_t,
49 int)> get_ready_callback_for_entity(
const rclcpp::Waitable::WeakPtr & entity)
final;
50 std::function<void(
size_t)> get_ready_callback_for_entity(
53 std::optional<CBGScheduler::ExecutableEntity> get_next_ready_entity();
54 std::optional<CBGScheduler::ExecutableEntity> get_next_ready_entity(
55 GlobalEventIdProvider::MonotonicId max_id);
59 return !ready_entities.empty();
63 std::deque<ReadyEntity> ready_entities;
73 GlobalEventIdProvider::MonotonicId max_id)
final;
76 std::unique_ptr<CallbackGroupHandle> get_handle_for_callback_group(
77 const rclcpp::CallbackGroup::SharedPtr & callback_group)
final;
79 std::vector<std::unique_ptr<FirstInFirstOutCallbackGroupHandle>> callback_group_handles;
CBGScheduler(std::function< void()> sync_function)
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.
bool has_ready_entities() const final