aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2015-08-25 13:47:51 -0700
committerGravatar yang-g <yangg@google.com>2015-08-25 13:47:51 -0700
commite21908fcee3ffac086575e247be3442860ac7b3a (patch)
treead840f4c90bb4341f3edb8044a523bbe89bcb1fd /src/cpp
parent1eeb21c4df03194654252d1feaee779514ecefad (diff)
impl
Diffstat (limited to 'src/cpp')
-rw-r--r--src/cpp/common/call.cc11
-rw-r--r--src/cpp/server/server.cc11
-rw-r--r--src/cpp/server/server_context.cc7
-rw-r--r--src/cpp/util/string_ref.cc2
4 files changed, 16 insertions, 15 deletions
diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc
index 16aa2c9fb9..5b87c2a806 100644
--- a/src/cpp/common/call.cc
+++ b/src/cpp/common/call.cc
@@ -41,13 +41,14 @@
namespace grpc {
-void FillMetadataMap(grpc_metadata_array* arr,
- std::multimap<grpc::string, grpc::string>* metadata) {
+void FillMetadataMap(
+ grpc_metadata_array* arr,
+ std::multimap<grpc::string_ref, grpc::string_ref>* metadata) {
for (size_t i = 0; i < arr->count; i++) {
// TODO(yangg) handle duplicates?
- metadata->insert(std::pair<grpc::string, grpc::string>(
- arr->metadata[i].key,
- grpc::string(arr->metadata[i].value, arr->metadata[i].value_length)));
+ metadata->insert(std::pair<grpc::string_ref, grpc::string_ref>(
+ arr->metadata[i].key, grpc::string_ref(arr->metadata[i].value,
+ arr->metadata[i].value_length)));
}
grpc_metadata_array_destroy(arr);
grpc_metadata_array_init(arr);
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index 66cd27cc33..bb83c7d887 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -439,11 +439,12 @@ Server::BaseAsyncRequest::~BaseAsyncRequest() {}
bool Server::BaseAsyncRequest::FinalizeResult(void** tag, bool* status) {
if (*status) {
for (size_t i = 0; i < initial_metadata_array_.count; i++) {
- context_->client_metadata_.insert(std::make_pair(
- grpc::string(initial_metadata_array_.metadata[i].key),
- grpc::string(initial_metadata_array_.metadata[i].value,
- initial_metadata_array_.metadata[i].value +
- initial_metadata_array_.metadata[i].value_length)));
+ context_->client_metadata_.insert(
+ std::pair<grpc::string_ref, grpc::string_ref>(
+ initial_metadata_array_.metadata[i].key,
+ grpc::string_ref(
+ initial_metadata_array_.metadata[i].value,
+ initial_metadata_array_.metadata[i].value_length)));
}
}
grpc_metadata_array_destroy(&initial_metadata_array_);
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc
index acc163d6b5..8193e70660 100644
--- a/src/cpp/server/server_context.cc
+++ b/src/cpp/server/server_context.cc
@@ -136,10 +136,9 @@ ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata* metadata,
cq_(nullptr),
sent_initial_metadata_(false) {
for (size_t i = 0; i < metadata_count; i++) {
- client_metadata_.insert(std::make_pair(
- grpc::string(metadata[i].key),
- grpc::string(metadata[i].value,
- metadata[i].value + metadata[i].value_length)));
+ client_metadata_.insert(std::pair<grpc::string_ref, grpc::string_ref>(
+ metadata[i].key,
+ grpc::string_ref(metadata[i].value, metadata[i].value_length)));
}
}
diff --git a/src/cpp/util/string_ref.cc b/src/cpp/util/string_ref.cc
index ff6b7617a3..d9c9019da8 100644
--- a/src/cpp/util/string_ref.cc
+++ b/src/cpp/util/string_ref.cc
@@ -39,7 +39,7 @@
namespace grpc {
-size_t string_ref::npos;
+const size_t string_ref::npos;
string_ref& string_ref::operator=(const string_ref& rhs) {
data_ = rhs.data_;