Skip to content

Commit 0476592

Browse files
committed
Fix CallbackWrapper class for the Rolling release
* change to get building with latest rclcpp * implement pure virtual waitable functions as in ros2/system_tests#548 * uncrustify fixes Author: Henry Moore <[email protected]>
1 parent ff41ec0 commit 0476592

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

fuse_core/include/fuse_core/callback_wrapper.hpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ class CallbackAdapter : public rclcpp::Waitable
166166
/**
167167
* @brief tell the CallbackGroup that this waitable is ready to execute anything
168168
*/
169-
bool is_ready(rcl_wait_set_t * wait_set) override;
169+
bool is_ready(rcl_wait_set_t const & wait_set) override;
170170

171171

172172
/**
@@ -175,18 +175,25 @@ class CallbackAdapter : public rclcpp::Waitable
175175
waitable_ptr = std::make_shared<CallbackWrapper>();
176176
node->get_node_waitables_interface()->add_waitable(waitable_ptr, (rclcpp::CallbackGroup::SharedPtr) nullptr);
177177
*/
178-
void add_to_wait_set(rcl_wait_set_t * wait_set) override;
178+
void add_to_wait_set(rcl_wait_set_t & wait_set) override;
179179

180180
std::shared_ptr<void> take_data() override;
181181

182-
void execute(std::shared_ptr<void> & data) override;
182+
void execute(std::shared_ptr<void> const & data) override;
183183

184184
void addCallback(const std::shared_ptr<CallbackWrapperBase> & callback);
185185

186186
void addCallback(std::shared_ptr<CallbackWrapperBase> && callback);
187187

188188
void removeAllCallbacks();
189189

190+
void set_on_ready_callback(std::function<void(size_t, int)>) override {}
191+
void clear_on_ready_callback() override {}
192+
std::shared_ptr<void> take_data_by_entity_id(size_t) override
193+
{
194+
return nullptr;
195+
}
196+
190197
private:
191198
rcl_guard_condition_t gc_; //!< guard condition to drive the waitable
192199

fuse_core/src/callback_wrapper.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ size_t CallbackAdapter::get_number_of_ready_guard_conditions() {return 1;}
5959
/**
6060
* @brief tell the CallbackGroup that this waitable is ready to execute anything
6161
*/
62-
bool CallbackAdapter::is_ready(rcl_wait_set_t * wait_set)
62+
bool CallbackAdapter::is_ready(rcl_wait_set_t const & wait_set)
6363
{
6464
(void) wait_set;
6565
return !callback_queue_.empty();
@@ -71,9 +71,9 @@ bool CallbackAdapter::is_ready(rcl_wait_set_t * wait_set)
7171
waitable_ptr = std::make_shared<CallbackAdapter>();
7272
node->get_node_waitables_interface()->add_waitable(waitable_ptr, (rclcpp::CallbackGroup::SharedPtr) nullptr);
7373
*/
74-
void CallbackAdapter::add_to_wait_set(rcl_wait_set_t * wait_set)
74+
void CallbackAdapter::add_to_wait_set(rcl_wait_set_t & wait_set)
7575
{
76-
if (RCL_RET_OK != rcl_wait_set_add_guard_condition(wait_set, &gc_, NULL)) {
76+
if (RCL_RET_OK != rcl_wait_set_add_guard_condition(&wait_set, &gc_, NULL)) {
7777
RCLCPP_WARN(rclcpp::get_logger("fuse"), "Could not add callback waitable to wait set.");
7878
}
7979
}
@@ -107,7 +107,7 @@ std::shared_ptr<void> CallbackAdapter::take_data()
107107
* @brief hook that allows the rclcpp::waitables interface to run the next callback
108108
*
109109
*/
110-
void CallbackAdapter::execute(std::shared_ptr<void> & data)
110+
void CallbackAdapter::execute(std::shared_ptr<void> const & data)
111111
{
112112
if (!data) {
113113
throw std::runtime_error("'data' is empty");

0 commit comments

Comments
 (0)