Skip to content
Snippets Groups Projects
Commit c42d844d authored by yang-g's avatar yang-g
Browse files

Let ServerContext own the initial_metadata array for sync calls

parent 25bbef63
Branches
Tags
No related merge requests found
...@@ -213,8 +213,7 @@ class ServerContext { ...@@ -213,8 +213,7 @@ class ServerContext {
void BeginCompletionOp(Call* call); void BeginCompletionOp(Call* call);
ServerContext(gpr_timespec deadline, grpc_metadata* metadata, ServerContext(gpr_timespec deadline, grpc_metadata_array* arr);
size_t metadata_count);
void set_call(grpc_call* call) { call_ = call; } void set_call(grpc_call* call) { call_ = call; }
......
...@@ -189,8 +189,7 @@ class Server::SyncRequest final : public CompletionQueueTag { ...@@ -189,8 +189,7 @@ class Server::SyncRequest final : public CompletionQueueTag {
explicit CallData(Server* server, SyncRequest* mrd) explicit CallData(Server* server, SyncRequest* mrd)
: cq_(mrd->cq_), : cq_(mrd->cq_),
call_(mrd->call_, server, &cq_, server->max_receive_message_size()), call_(mrd->call_, server, &cq_, server->max_receive_message_size()),
ctx_(mrd->deadline_, mrd->request_metadata_.metadata, ctx_(mrd->deadline_, &mrd->request_metadata_),
mrd->request_metadata_.count),
has_request_payload_(mrd->has_request_payload_), has_request_payload_(mrd->has_request_payload_),
request_payload_(mrd->request_payload_), request_payload_(mrd->request_payload_),
method_(mrd->method_) { method_(mrd->method_) {
......
...@@ -33,7 +33,9 @@ ...@@ -33,7 +33,9 @@
#include <grpc++/server_context.h> #include <grpc++/server_context.h>
#include <algorithm>
#include <mutex> #include <mutex>
#include <utility>
#include <grpc++/completion_queue.h> #include <grpc++/completion_queue.h>
#include <grpc++/impl/call.h> #include <grpc++/impl/call.h>
...@@ -133,8 +135,7 @@ ServerContext::ServerContext() ...@@ -133,8 +135,7 @@ ServerContext::ServerContext()
sent_initial_metadata_(false), sent_initial_metadata_(false),
compression_level_set_(false) {} compression_level_set_(false) {}
ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata* metadata, ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata_array* arr)
size_t metadata_count)
: completion_op_(nullptr), : completion_op_(nullptr),
has_notify_when_done_tag_(false), has_notify_when_done_tag_(false),
async_notify_when_done_tag_(nullptr), async_notify_when_done_tag_(nullptr),
...@@ -143,12 +144,8 @@ ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata* metadata, ...@@ -143,12 +144,8 @@ ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata* metadata,
cq_(nullptr), cq_(nullptr),
sent_initial_metadata_(false), sent_initial_metadata_(false),
compression_level_set_(false) { compression_level_set_(false) {
for (size_t i = 0; i < metadata_count; i++) { std::swap(*client_metadata_.arr(), *arr);
client_metadata_.map()->insert( client_metadata_.FillMap();
std::pair<grpc::string_ref, grpc::string_ref>(
StringRefFromSlice(&metadata[i].key),
StringRefFromSlice(&metadata[i].value)));
}
} }
ServerContext::~ServerContext() { ServerContext::~ServerContext() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment