From ebe526960d88f85706862213901820e98bbee047 Mon Sep 17 00:00:00 2001 From: qiujiacai Date: Mon, 16 Oct 2023 23:47:41 +0800 Subject: [PATCH] add error handling to better handle possible errors in gRPC calls --- observer_agent/grpc_comm/comm_server.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/observer_agent/grpc_comm/comm_server.cpp b/observer_agent/grpc_comm/comm_server.cpp index 10aad3e..3f64fbc 100644 --- a/observer_agent/grpc_comm/comm_server.cpp +++ b/observer_agent/grpc_comm/comm_server.cpp @@ -39,7 +39,10 @@ class PubSubServiceImpl final : public SubManager::Service { // ToDo: add extra check or feature code Message msg; msg.set_text("topic: " + std::to_string(cli_topic) + " Subscribe success!"); - writer->Write(msg); + if (!writer->Write(msg)) { + std::cerr << "Failed to write the initial message" << std::endl; + return grpc::Status(grpc::StatusCode::INTERNAL, "Failed to write the message"); + } // ToDo: set some condition to break loop while (1) {} @@ -55,7 +58,10 @@ class PubSubServiceImpl final : public SubManager::Service { for (auto& subscriber : subscribers_[cli_topic]) { Message msg; msg.set_text(cli_data); - subscriber->Write(msg); + if (!subscriber->Write(msg)) { + std::cerr << "Failed to write to a subscriber" << std::endl; + return grpc::Status(grpc::StatusCode::INTERNAL, "Failed to write the message"); + } } } return grpc::Status::OK; -- Gitee