Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion rclcpp/include/rclcpp/client.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <memory>
#include <utility>

#include <rmw/error_handling.h>
#include <rmw/rmw.h>

#include <rclcpp/macros.hpp>
Expand Down Expand Up @@ -134,7 +135,14 @@ class Client : public ClientBase
{
int64_t sequence_number;
// TODO(wjwwood): Check the return code.
rmw_send_request(get_client_handle(), request.get(), &sequence_number);
rmw_ret_t status = rmw_send_request(get_client_handle(), request.get(), &sequence_number);
if (status != RMW_RET_OK) {
// *INDENT-OFF* (prevent uncrustify from making unecessary indents here)
throw std::runtime_error(
std::string("failed to send request: ") +
(rmw_get_error_string() ? rmw_get_error_string() : ""));
// *INDENT-ON*
}

SharedPromise call_promise = std::make_shared<Promise>();
SharedFuture f(call_promise->get_future());
Expand Down
12 changes: 7 additions & 5 deletions rclcpp/include/rclcpp/executor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,9 @@ class Executor
subscription->handle_message(message);
}
} else {
std::cout << "[rclcpp::error] take failed for subscription on topic: " <<
subscription->get_topic_name() << std::endl;
fprintf(stderr, "[rclcpp::error] take failed for subscription on topic '%s': %s\n",
subscription->get_topic_name().c_str(),
rmw_get_error_string() ? rmw_get_error_string() : "");
}
}

Expand Down Expand Up @@ -191,8 +192,8 @@ class Executor
service->handle_request(request_header, request);
}
} else {
std::cout << "[rclcpp::error] take failed for service on service: " <<
service->get_service_name() << std::endl;
fprintf(stderr, "[rclcpp::error] take failed for service '%s': %s\n",
service->get_service_name().c_str(), rmw_get_error_string() ? rmw_get_error_string() : "");
}
}

Expand All @@ -211,7 +212,8 @@ class Executor
if (taken) {
client->handle_response(request_header, response);
} else {
std::cout << "[rclcpp::error] take failed for service on client" << std::endl;
fprintf(stderr, "[rclcpp::error] take failed for service on client: %s\n",
rmw_get_error_string() ? rmw_get_error_string() : "");
}
}

Expand Down
10 changes: 9 additions & 1 deletion rclcpp/include/rclcpp/publisher.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

#include <memory>

#include <rmw/error_handling.h>
#include <rmw/rmw.h>

#include <rclcpp/macros.hpp>
Expand Down Expand Up @@ -46,7 +47,14 @@ class Publisher
void
publish(std::shared_ptr<MessageT> & msg)
{
rmw_publish(publisher_handle_, msg.get());
rmw_ret_t status = rmw_publish(publisher_handle_, msg.get());
if (status != RMW_RET_OK) {
// *INDENT-OFF* (prevent uncrustify from making unecessary indents here)
throw std::runtime_error(
std::string("failed to publish message: ") +
(rmw_get_error_string() ? rmw_get_error_string() : ""));
// *INDENT-ON*
}
}

private:
Expand Down
10 changes: 9 additions & 1 deletion rclcpp/include/rclcpp/service.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <memory>
#include <string>

#include <rmw/error_handling.h>
#include <rmw/rmw.h>

#include <rclcpp/macros.hpp>
Expand Down Expand Up @@ -141,7 +142,14 @@ class Service : public ServiceBase
std::shared_ptr<rmw_request_id_t> & req_id,
std::shared_ptr<typename ServiceT::Response> & response)
{
rmw_send_response(get_service_handle(), req_id.get(), response.get());
rmw_ret_t status = rmw_send_response(get_service_handle(), req_id.get(), response.get());
if (status != RMW_RET_OK) {
// *INDENT-OFF* (prevent uncrustify from making unecessary indents here)
throw std::runtime_error(
std::string("failed to send response: ") +
(rmw_get_error_string() ? rmw_get_error_string() : ""));
// *INDENT-ON*
}
}

private:
Expand Down