From 31e74790669c025482ce7ad371e3feb009a1366c Mon Sep 17 00:00:00 2001 From: qiujiacai Date: Mon, 16 Oct 2023 09:53:48 +0800 Subject: [PATCH] add error handling to better handle possible errors in gRPC calls --- observer_agent/grpc_comm/comm_server.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/observer_agent/grpc_comm/comm_server.cpp b/observer_agent/grpc_comm/comm_server.cpp index 10aad3e..68686de 100644 --- a/observer_agent/grpc_comm/comm_server.cpp +++ b/observer_agent/grpc_comm/comm_server.cpp @@ -39,7 +39,11 @@ 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) {} @@ -53,10 +57,14 @@ class PubSubServiceImpl final : public SubManager::Service { if (subscribers_.find(cli_topic) != subscribers_.end()) { for (auto& subscriber : subscribers_[cli_topic]) { - Message msg; - msg.set_text(cli_data); - subscriber->Write(msg); - } + Message msg; + msg.set_text(cli_data); + + if (!subscriber->Write(msg)) { + std::cerr << "Failed to write to a subscriber" << std::endl; + } + + } } return grpc::Status::OK; } -- Gitee