diff options
author | 2015-02-12 22:51:38 -0800 | |
---|---|---|
committer | 2015-02-12 22:51:38 -0800 | |
commit | 0c7aafaa0caf7b9fb3dfabb35f4270033b4ad164 (patch) | |
tree | e2f271e7b0002ff6e6bfffc94342501e670927b5 | |
parent | c17e861aa06cfe2a75159192cdb90b425801aa5f (diff) |
change AddRecvMessage signature
-rw-r--r-- | include/grpc++/impl/call.h | 4 | ||||
-rw-r--r-- | include/grpc++/stream.h | 31 | ||||
-rw-r--r-- | src/cpp/client/client_unary_call.cc | 7 | ||||
-rw-r--r-- | src/cpp/common/call.cc | 15 |
4 files changed, 24 insertions, 33 deletions
diff --git a/include/grpc++/impl/call.h b/include/grpc++/impl/call.h index 7aa22ee7c2..af1c710098 100644 --- a/include/grpc++/impl/call.h +++ b/include/grpc++/impl/call.h @@ -68,7 +68,7 @@ class CallOpBuffer : public CompletionQueueTag { void AddRecvInitialMetadata( std::multimap<grpc::string, grpc::string> *metadata); void AddSendMessage(const google::protobuf::Message &message); - void AddRecvMessage(google::protobuf::Message *message, bool* got_message); + void AddRecvMessage(google::protobuf::Message *message); void AddClientSendClose(); void AddClientRecvStatus(std::multimap<grpc::string, grpc::string> *metadata, Status *status); @@ -84,6 +84,7 @@ class CallOpBuffer : public CompletionQueueTag { // Called by completion queue just prior to returning from Next() or Pluck() void FinalizeResult(void **tag, bool *status) override; + bool got_message = false; private: void *return_tag_ = nullptr; // Send initial metadata @@ -98,7 +99,6 @@ class CallOpBuffer : public CompletionQueueTag { grpc_byte_buffer* send_message_buf_ = nullptr; // Recv message google::protobuf::Message* recv_message_ = nullptr; - bool* got_message_ = nullptr; grpc_byte_buffer* recv_message_buf_ = nullptr; // Client send close bool client_send_close_ = false; diff --git a/include/grpc++/stream.h b/include/grpc++/stream.h index 6f2441ff92..ecc28f6216 100644 --- a/include/grpc++/stream.h +++ b/include/grpc++/stream.h @@ -119,10 +119,9 @@ class ClientReader final : public ClientStreamingInterface, buf.AddRecvInitialMetadata(&context_->recv_initial_metadata_); context_->initial_metadata_received_ = true; } - bool got_message; - buf.AddRecvMessage(msg, &got_message); + buf.AddRecvMessage(msg); call_.PerformOps(&buf); - return cq_.Pluck(&buf) && got_message; + return cq_.Pluck(&buf) && buf.got_message; } virtual Status Finish() override { @@ -174,11 +173,10 @@ class ClientWriter final : public ClientStreamingInterface, virtual Status Finish() override { CallOpBuffer buf; Status status; - bool got_message; - buf.AddRecvMessage(response_, &got_message); + buf.AddRecvMessage(response_); buf.AddClientRecvStatus(&context_->trailing_metadata_, &status); call_.PerformOps(&buf); - GPR_ASSERT(cq_.Pluck(&buf) && got_message); + GPR_ASSERT(cq_.Pluck(&buf) && buf.got_message); return status; } @@ -225,10 +223,9 @@ class ClientReaderWriter final : public ClientStreamingInterface, buf.AddRecvInitialMetadata(&context_->recv_initial_metadata_); context_->initial_metadata_received_ = true; } - bool got_message; - buf.AddRecvMessage(msg, &got_message); + buf.AddRecvMessage(msg); call_.PerformOps(&buf); - return cq_.Pluck(&buf) && got_message; + return cq_.Pluck(&buf) && buf.got_message; } virtual bool Write(const W& msg) override { @@ -277,10 +274,9 @@ class ServerReader final : public ReaderInterface<R> { virtual bool Read(R* msg) override { CallOpBuffer buf; - bool got_message; - buf.AddRecvMessage(msg, &got_message); + buf.AddRecvMessage(msg); call_->PerformOps(&buf); - return call_->cq()->Pluck(&buf) && got_message; + return call_->cq()->Pluck(&buf) && buf.got_message; } private: @@ -338,10 +334,9 @@ class ServerReaderWriter final : public WriterInterface<W>, virtual bool Read(R* msg) override { CallOpBuffer buf; - bool got_message; - buf.AddRecvMessage(msg, &got_message); + buf.AddRecvMessage(msg); call_->PerformOps(&buf); - return call_->cq()->Pluck(&buf) && got_message; + return call_->cq()->Pluck(&buf) && buf.got_message; } virtual bool Write(const W& msg) override { @@ -420,7 +415,7 @@ class ClientAsyncReader final : public ClientAsyncStreamingInterface, read_buf_.AddRecvInitialMetadata(&context_->recv_initial_metadata_); context_->initial_metadata_received_ = true; } - read_buf_.AddRecvMessage(msg, nullptr); + read_buf_.AddRecvMessage(msg); call_.PerformOps(&read_buf_); } @@ -484,7 +479,7 @@ class ClientAsyncWriter final : public ClientAsyncStreamingInterface, finish_buf_.AddRecvInitialMetadata(&context_->recv_initial_metadata_); context_->initial_metadata_received_ = true; } - finish_buf_.AddRecvMessage(response_, nullptr); + finish_buf_.AddRecvMessage(response_); finish_buf_.AddClientRecvStatus(&context_->trailing_metadata_, status); call_.PerformOps(&finish_buf_); } @@ -529,7 +524,7 @@ class ClientAsyncReaderWriter final : public ClientAsyncStreamingInterface, read_buf_.AddRecvInitialMetadata(&context_->recv_initial_metadata_); context_->initial_metadata_received_ = true; } - read_buf_.AddRecvMessage(msg, nullptr); + read_buf_.AddRecvMessage(msg); call_.PerformOps(&read_buf_); } diff --git a/src/cpp/client/client_unary_call.cc b/src/cpp/client/client_unary_call.cc index 69f0b77d7b..d68d7a9242 100644 --- a/src/cpp/client/client_unary_call.cc +++ b/src/cpp/client/client_unary_call.cc @@ -53,12 +53,11 @@ Status BlockingUnaryCall(ChannelInterface *channel, const RpcMethod &method, buf.AddSendInitialMetadata(context); buf.AddSendMessage(request); buf.AddRecvInitialMetadata(&context->recv_initial_metadata_); - bool got_message; - buf.AddRecvMessage(result, &got_message); + buf.AddRecvMessage(result); buf.AddClientSendClose(); buf.AddClientRecvStatus(&context->trailing_metadata_, &status); call.PerformOps(&buf); - GPR_ASSERT(cq.Pluck(&buf) && (got_message || !status.IsOk())); + GPR_ASSERT(cq.Pluck(&buf) && (buf.got_message || !status.IsOk())); return status; } @@ -81,7 +80,7 @@ void AsyncUnaryCall(ChannelInterface *channel, const RpcMethod &method, buf->AddSendInitialMetadata(context); buf->AddSendMessage(request); buf->AddRecvInitialMetadata(&context->recv_initial_metadata_); - buf->AddRecvMessage(result, nullptr); + buf->AddRecvMessage(result); buf->AddClientSendClose(); buf->AddClientRecvStatus(&context->trailing_metadata_, status); call.PerformOps(buf); diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc index 3f9b4852b9..fe8859de94 100644 --- a/src/cpp/common/call.cc +++ b/src/cpp/common/call.cc @@ -57,7 +57,7 @@ void CallOpBuffer::Reset(void* next_return_tag) { } recv_message_ = nullptr; - got_message_ = nullptr; + got_message = false; if (recv_message_buf_) { grpc_byte_buffer_destroy(recv_message_buf_); recv_message_buf_ = nullptr; @@ -142,9 +142,8 @@ void CallOpBuffer::AddSendMessage(const google::protobuf::Message& message) { send_message_ = &message; } -void CallOpBuffer::AddRecvMessage(google::protobuf::Message *message, bool* got_message) { +void CallOpBuffer::AddRecvMessage(google::protobuf::Message *message) { recv_message_ = message; - got_message_ = got_message; } void CallOpBuffer::AddClientSendClose() { @@ -256,16 +255,14 @@ void CallOpBuffer::FinalizeResult(void **tag, bool *status) { // Parse received message if any. if (recv_message_) { if (recv_message_buf_) { - if (got_message_) { - *got_message_ = true; - } + got_message = true; *status = DeserializeProto(recv_message_buf_, recv_message_); grpc_byte_buffer_destroy(recv_message_buf_); recv_message_buf_ = nullptr; } else { - if (got_message_) { - *got_message_ = false; - } + // Read failed + got_message = false; + *status = false; } } // Parse received status. |