aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2015-11-25 11:45:33 -0800
committerGravatar yang-g <yangg@google.com>2015-11-25 11:45:33 -0800
commit52705590e463df5e6b852f15866cdfbfcf902fcb (patch)
treee9ac30bc757b13d497aa1441947c62b9c3506201 /src
parenta23f17b1233453334ad137a3aeb338c801b5ada4 (diff)
Add set pointer api to channel_arguments
Diffstat (limited to 'src')
-rw-r--r--src/cpp/common/channel_arguments.cc (renamed from src/cpp/client/channel_arguments.cc)15
-rw-r--r--src/cpp/common/secure_channel_arguments.cc (renamed from src/cpp/client/secure_channel_arguments.cc)0
2 files changed, 14 insertions, 1 deletions
diff --git a/src/cpp/client/channel_arguments.cc b/src/cpp/common/channel_arguments.cc
index 50422d06c9..90cd5136af 100644
--- a/src/cpp/client/channel_arguments.cc
+++ b/src/cpp/common/channel_arguments.cc
@@ -62,7 +62,9 @@ ChannelArguments::ChannelArguments(const ChannelArguments& other)
break;
case GRPC_ARG_POINTER:
ap.value.pointer = a->value.pointer;
- ap.value.pointer.p = a->value.pointer.copy(ap.value.pointer.p);
+ ap.value.pointer.p = a->value.pointer.copy
+ ? a->value.pointer.copy(ap.value.pointer.p)
+ : ap.value.pointer.p;
break;
}
args_.push_back(ap);
@@ -89,6 +91,17 @@ void ChannelArguments::SetInt(const grpc::string& key, int value) {
args_.push_back(arg);
}
+void ChannelArguments::SetPointer(const grpc::string& key, void* value) {
+ grpc_arg arg;
+ arg.type = GRPC_ARG_POINTER;
+ strings_.push_back(key);
+ arg.key = const_cast<char*>(strings_.back().c_str());
+ arg.value.pointer.p = value;
+ arg.value.pointer.copy = nullptr;
+ arg.value.pointer.destroy = nullptr;
+ args_.push_back(arg);
+}
+
void ChannelArguments::SetString(const grpc::string& key,
const grpc::string& value) {
grpc_arg arg;
diff --git a/src/cpp/client/secure_channel_arguments.cc b/src/cpp/common/secure_channel_arguments.cc
index e17d3b58b0..e17d3b58b0 100644
--- a/src/cpp/client/secure_channel_arguments.cc
+++ b/src/cpp/common/secure_channel_arguments.cc