From 23822932262c5a3eb9404be59d5512fe4c88f18d Mon Sep 17 00:00:00 2001 From: Yang Gao Date: Wed, 11 Feb 2015 13:59:25 -0800 Subject: [PATCH] Make it compile --- include/grpc++/impl/call.h | 3 ++- include/grpc++/stream.h | 12 ++++++------ src/cpp/client/client_unary_call.cc | 2 +- src/cpp/common/call.cc | 9 +++++---- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/include/grpc++/impl/call.h b/include/grpc++/impl/call.h index 8fed305ac64..5922e2581a9 100644 --- a/include/grpc++/impl/call.h +++ b/include/grpc++/impl/call.h @@ -85,6 +85,7 @@ class CallOpBuffer final : public CompletionQueueTag { private: void *return_tag_ = nullptr; // Send initial metadata + bool send_initial_metadata_ = false; size_t initial_metadata_count_ = 0; grpc_metadata* initial_metadata_ = nullptr; // Recv initial metadta @@ -106,7 +107,7 @@ class CallOpBuffer final : public CompletionQueueTag { char *status_details_ = nullptr; size_t status_details_capacity_ = 0; // Server send status - Status* send_status_ = nullptr; + const Status* send_status_ = nullptr; size_t trailing_metadata_count_ = 0; grpc_metadata *trailing_metadata_ = nullptr; }; diff --git a/include/grpc++/stream.h b/include/grpc++/stream.h index 57ca86ad706..85a7261fb92 100644 --- a/include/grpc++/stream.h +++ b/include/grpc++/stream.h @@ -105,7 +105,7 @@ class ClientReader final : public ClientStreamingInterface, virtual Status Finish() override { CallOpBuffer buf; Status status; - buf.AddClientRecvStatus(&status); + buf.AddClientRecvStatus(nullptr, &status); // TODO metadata call_.PerformOps(&buf); GPR_ASSERT(cq_.Pluck(&buf)); return status; @@ -146,7 +146,7 @@ class ClientWriter final : public ClientStreamingInterface, CallOpBuffer buf; Status status; buf.AddRecvMessage(response_); - buf.AddClientRecvStatus(&status); + buf.AddClientRecvStatus(nullptr, &status); // TODO metadata call_.PerformOps(&buf); GPR_ASSERT(cq_.Pluck(&buf)); return status; @@ -193,7 +193,7 @@ class ClientReaderWriter final : public ClientStreamingInterface, virtual Status Finish() override { CallOpBuffer buf; Status status; - buf.AddClientRecvStatus(&status); + buf.AddClientRecvStatus(nullptr, &status); // TODO metadata call_.PerformOps(&buf); GPR_ASSERT(cq_.Pluck(&buf)); return status; @@ -312,7 +312,7 @@ class ClientAsyncReader final : public ClientAsyncStreamingInterface, virtual void Finish(Status* status, void* tag) override { finish_buf_.Reset(tag); - finish_buf_.AddClientRecvStatus(status); + finish_buf_.AddClientRecvStatus(nullptr, status); // TODO metadata call_.PerformOps(&finish_buf_); } @@ -350,7 +350,7 @@ class ClientAsyncWriter final : public ClientAsyncStreamingInterface, virtual void Finish(Status* status, void* tag) override { finish_buf_.Reset(tag); finish_buf_.AddRecvMessage(response_); - finish_buf_.AddClientRecvStatus(status); + finish_buf_.AddClientRecvStatus(nullptr, status); // TODO metadata call_.PerformOps(&finish_buf_); } @@ -393,7 +393,7 @@ class ClientAsyncReaderWriter final : public ClientAsyncStreamingInterface, virtual void Finish(Status* status, void* tag) override { finish_buf_.Reset(tag); - finish_buf_.AddClientRecvStatus(status); + finish_buf_.AddClientRecvStatus(nullptr, status); // TODO metadata call_.PerformOps(&finish_buf_); } diff --git a/src/cpp/client/client_unary_call.cc b/src/cpp/client/client_unary_call.cc index 73be3cff8c1..68253986124 100644 --- a/src/cpp/client/client_unary_call.cc +++ b/src/cpp/client/client_unary_call.cc @@ -52,7 +52,7 @@ Status BlockingUnaryCall(ChannelInterface *channel, const RpcMethod &method, buf.AddSendMessage(request); buf.AddRecvMessage(result); buf.AddClientSendClose(); - buf.AddClientRecvStatus(&status); + buf.AddClientRecvStatus(nullptr, &status); // TODO metadata call.PerformOps(&buf); cq.Pluck(&buf); return status; diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc index 607958df89f..765baa06cae 100644 --- a/src/cpp/common/call.cc +++ b/src/cpp/common/call.cc @@ -43,6 +43,7 @@ namespace grpc { void CallOpBuffer::Reset(void* next_return_tag) { return_tag_ = next_return_tag; + send_initial_metadata_ = false; initial_metadata_count_ = 0; gpr_free(initial_metadata_); @@ -106,7 +107,7 @@ void FillMetadataMap(grpc_metadata_array* arr, arr->metadata[i].key, {arr->metadata[i].value, arr->metadata[i].value_length})); } grpc_metadata_array_destroy(arr); - grpc_metadata_array_init(&recv_trailing_metadata_arr_); + grpc_metadata_array_init(arr); } } // namespace @@ -114,7 +115,7 @@ void CallOpBuffer::AddSendInitialMetadata( std::multimap* metadata) { send_initial_metadata_ = true; initial_metadata_count_ = metadata->size(); - initial_metadata_ = FillMetadata(metadata); + initial_metadata_ = FillMetadataArray(metadata); } void CallOpBuffer::AddSendInitialMetadata(ClientContext *ctx) { @@ -142,7 +143,7 @@ void CallOpBuffer::AddClientRecvStatus( void CallOpBuffer::AddServerSendStatus( std::multimap* metadata, const Status& status) { trailing_metadata_count_ = metadata->size(); - trailing_metadata_ = FillMetadata(metadata); + trailing_metadata_ = FillMetadataArray(metadata); send_status_ = &status; } @@ -219,7 +220,7 @@ void CallOpBuffer::FinalizeResult(void **tag, bool *status) { *tag = return_tag_; // Process received initial metadata if (recv_initial_metadata_) { - FillMetadataMap(&recv_initial_metadata_, recv_initial_metadata_); + FillMetadataMap(&recv_initial_metadata_arr_, recv_initial_metadata_); } // Parse received message if any. if (recv_message_ && recv_message_buf_) {