diff --git a/fuse_core/include/fuse_core/callback_wrapper.hpp b/fuse_core/include/fuse_core/callback_wrapper.hpp index 06fbd1209..59aa6076e 100644 --- a/fuse_core/include/fuse_core/callback_wrapper.hpp +++ b/fuse_core/include/fuse_core/callback_wrapper.hpp @@ -166,7 +166,7 @@ class CallbackAdapter : public rclcpp::Waitable /** * @brief tell the CallbackGroup that this waitable is ready to execute anything */ - bool is_ready(rcl_wait_set_t * wait_set) override; + bool is_ready(rcl_wait_set_t const & wait_set) override; /** @@ -175,11 +175,11 @@ class CallbackAdapter : public rclcpp::Waitable waitable_ptr = std::make_shared(); node->get_node_waitables_interface()->add_waitable(waitable_ptr, (rclcpp::CallbackGroup::SharedPtr) nullptr); */ - void add_to_wait_set(rcl_wait_set_t * wait_set) override; + void add_to_wait_set(rcl_wait_set_t & wait_set) override; std::shared_ptr take_data() override; - void execute(std::shared_ptr & data) override; + void execute(std::shared_ptr const & data) override; void addCallback(const std::shared_ptr & callback); @@ -187,6 +187,12 @@ class CallbackAdapter : public rclcpp::Waitable void removeAllCallbacks(); + void set_on_ready_callback(std::function) override {} + void clear_on_ready_callback() override {} + std::shared_ptr take_data_by_entity_id(size_t) override { + return nullptr; + } + private: rcl_guard_condition_t gc_; //!< guard condition to drive the waitable diff --git a/fuse_core/src/callback_wrapper.cpp b/fuse_core/src/callback_wrapper.cpp index f8a157c9d..454cf6302 100644 --- a/fuse_core/src/callback_wrapper.cpp +++ b/fuse_core/src/callback_wrapper.cpp @@ -59,7 +59,7 @@ size_t CallbackAdapter::get_number_of_ready_guard_conditions() {return 1;} /** * @brief tell the CallbackGroup that this waitable is ready to execute anything */ -bool CallbackAdapter::is_ready(rcl_wait_set_t * wait_set) +bool CallbackAdapter::is_ready(rcl_wait_set_t const & wait_set) { (void) wait_set; return !callback_queue_.empty(); @@ -71,9 +71,9 @@ bool CallbackAdapter::is_ready(rcl_wait_set_t * wait_set) waitable_ptr = std::make_shared(); node->get_node_waitables_interface()->add_waitable(waitable_ptr, (rclcpp::CallbackGroup::SharedPtr) nullptr); */ -void CallbackAdapter::add_to_wait_set(rcl_wait_set_t * wait_set) +void CallbackAdapter::add_to_wait_set(rcl_wait_set_t & wait_set) { - if (RCL_RET_OK != rcl_wait_set_add_guard_condition(wait_set, &gc_, NULL)) { + if (RCL_RET_OK != rcl_wait_set_add_guard_condition(&wait_set, &gc_, NULL)) { RCLCPP_WARN(rclcpp::get_logger("fuse"), "Could not add callback waitable to wait set."); } } @@ -107,7 +107,7 @@ std::shared_ptr CallbackAdapter::take_data() * @brief hook that allows the rclcpp::waitables interface to run the next callback * */ -void CallbackAdapter::execute(std::shared_ptr & data) +void CallbackAdapter::execute(std::shared_ptr const & data) { if (!data) { throw std::runtime_error("'data' is empty");