diff --git a/observer_agent/grpc_comm/comm_server.cpp b/observer_agent/grpc_comm/comm_server.cpp index 10aad3ebc24f9415804e4beb27d5a48bf3af4fb1..68686dec6fb901cd23f3f3d33d066dc07bef7f06 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; }