diff --git a/observer_agent/grpc_comm/comm_server.cpp b/observer_agent/grpc_comm/comm_server.cpp index 10aad3ebc24f9415804e4beb27d5a48bf3af4fb1..f61a46d2424f2d2c3055152cef31b6ad0c755d83 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) {} @@ -53,10 +56,12 @@ 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; }