Add set pointer api to channel_arguments

pull/4207/head
yang-g 9 years ago
parent a23f17b123
commit 52705590e4
  1. 6
      BUILD
  2. 12
      Makefile
  3. 6
      build.yaml
  4. 5
      include/grpc++/support/channel_arguments.h
  5. 15
      src/cpp/common/channel_arguments.cc
  6. 0
      src/cpp/common/secure_channel_arguments.cc
  7. 16
      test/cpp/common/channel_arguments_test.cc
  8. 4
      tools/doxygen/Doxyfile.c++.internal
  9. 8
      tools/run_tests/sources_and_headers.json
  10. 4
      vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
  11. 6
      vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
  12. 8
      vsprojects/vcxproj/grpc++/grpc++.vcxproj
  13. 12
      vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
  14. 4
      vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
  15. 6
      vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
  16. 2
      vsprojects/vcxproj/test/channel_arguments_test/channel_arguments_test.vcxproj
  17. 8
      vsprojects/vcxproj/test/channel_arguments_test/channel_arguments_test.vcxproj.filters

@ -736,14 +736,13 @@ cc_library(
"src/cpp/server/dynamic_thread_pool.h",
"src/cpp/server/fixed_size_thread_pool.h",
"src/cpp/server/thread_pool_interface.h",
"src/cpp/client/secure_channel_arguments.cc",
"src/cpp/client/secure_credentials.cc",
"src/cpp/common/auth_property_iterator.cc",
"src/cpp/common/secure_auth_context.cc",
"src/cpp/common/secure_channel_arguments.cc",
"src/cpp/common/secure_create_auth_context.cc",
"src/cpp/server/secure_server_credentials.cc",
"src/cpp/client/channel.cc",
"src/cpp/client/channel_arguments.cc",
"src/cpp/client/client_context.cc",
"src/cpp/client/create_channel.cc",
"src/cpp/client/create_channel_internal.cc",
@ -751,6 +750,7 @@ cc_library(
"src/cpp/client/generic_stub.cc",
"src/cpp/client/insecure_credentials.cc",
"src/cpp/common/call.cc",
"src/cpp/common/channel_arguments.cc",
"src/cpp/common/completion_queue.cc",
"src/cpp/common/rpc_method.cc",
"src/cpp/proto/proto_utils.cc",
@ -836,7 +836,6 @@ cc_library(
"src/cpp/server/thread_pool_interface.h",
"src/cpp/common/insecure_create_auth_context.cc",
"src/cpp/client/channel.cc",
"src/cpp/client/channel_arguments.cc",
"src/cpp/client/client_context.cc",
"src/cpp/client/create_channel.cc",
"src/cpp/client/create_channel_internal.cc",
@ -844,6 +843,7 @@ cc_library(
"src/cpp/client/generic_stub.cc",
"src/cpp/client/insecure_credentials.cc",
"src/cpp/common/call.cc",
"src/cpp/common/channel_arguments.cc",
"src/cpp/common/completion_queue.cc",
"src/cpp/common/rpc_method.cc",
"src/cpp/proto/proto_utils.cc",

@ -5053,14 +5053,13 @@ endif
LIBGRPC++_SRC = \
src/cpp/client/secure_channel_arguments.cc \
src/cpp/client/secure_credentials.cc \
src/cpp/common/auth_property_iterator.cc \
src/cpp/common/secure_auth_context.cc \
src/cpp/common/secure_channel_arguments.cc \
src/cpp/common/secure_create_auth_context.cc \
src/cpp/server/secure_server_credentials.cc \
src/cpp/client/channel.cc \
src/cpp/client/channel_arguments.cc \
src/cpp/client/client_context.cc \
src/cpp/client/create_channel.cc \
src/cpp/client/create_channel_internal.cc \
@ -5068,6 +5067,7 @@ LIBGRPC++_SRC = \
src/cpp/client/generic_stub.cc \
src/cpp/client/insecure_credentials.cc \
src/cpp/common/call.cc \
src/cpp/common/channel_arguments.cc \
src/cpp/common/completion_queue.cc \
src/cpp/common/rpc_method.cc \
src/cpp/proto/proto_utils.cc \
@ -5307,7 +5307,6 @@ $(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/test/cpp/util/messages
LIBGRPC++_UNSECURE_SRC = \
src/cpp/common/insecure_create_auth_context.cc \
src/cpp/client/channel.cc \
src/cpp/client/channel_arguments.cc \
src/cpp/client/client_context.cc \
src/cpp/client/create_channel.cc \
src/cpp/client/create_channel_internal.cc \
@ -5315,6 +5314,7 @@ LIBGRPC++_UNSECURE_SRC = \
src/cpp/client/generic_stub.cc \
src/cpp/client/insecure_credentials.cc \
src/cpp/common/call.cc \
src/cpp/common/channel_arguments.cc \
src/cpp/common/completion_queue.cc \
src/cpp/common/rpc_method.cc \
src/cpp/proto/proto_utils.cc \
@ -9587,7 +9587,7 @@ endif
CHANNEL_ARGUMENTS_TEST_SRC = \
test/cpp/client/channel_arguments_test.cc \
test/cpp/common/channel_arguments_test.cc \
CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC))))
ifeq ($(NO_SECURE),true)
@ -9616,7 +9616,7 @@ endif
endif
$(OBJDIR)/$(CONFIG)/test/cpp/client/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
$(OBJDIR)/$(CONFIG)/test/cpp/common/channel_arguments_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
deps_channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS:.o=.dep)
ifneq ($(NO_SECURE),true)
@ -23152,10 +23152,10 @@ src/core/surface/secure_channel_create.c: $(OPENSSL_DEP)
src/core/tsi/fake_transport_security.c: $(OPENSSL_DEP)
src/core/tsi/ssl_transport_security.c: $(OPENSSL_DEP)
src/core/tsi/transport_security.c: $(OPENSSL_DEP)
src/cpp/client/secure_channel_arguments.cc: $(OPENSSL_DEP)
src/cpp/client/secure_credentials.cc: $(OPENSSL_DEP)
src/cpp/common/auth_property_iterator.cc: $(OPENSSL_DEP)
src/cpp/common/secure_auth_context.cc: $(OPENSSL_DEP)
src/cpp/common/secure_channel_arguments.cc: $(OPENSSL_DEP)
src/cpp/common/secure_create_auth_context.cc: $(OPENSSL_DEP)
src/cpp/server/secure_server_credentials.cc: $(OPENSSL_DEP)
src/csharp/ext/grpc_csharp_ext.c: $(OPENSSL_DEP)

@ -73,7 +73,6 @@ filegroups:
- src/cpp/server/thread_pool_interface.h
src:
- src/cpp/client/channel.cc
- src/cpp/client/channel_arguments.cc
- src/cpp/client/client_context.cc
- src/cpp/client/create_channel.cc
- src/cpp/client/create_channel_internal.cc
@ -81,6 +80,7 @@ filegroups:
- src/cpp/client/generic_stub.cc
- src/cpp/client/insecure_credentials.cc
- src/cpp/common/call.cc
- src/cpp/common/channel_arguments.cc
- src/cpp/common/completion_queue.cc
- src/cpp/common/rpc_method.cc
- src/cpp/proto/proto_utils.cc
@ -594,10 +594,10 @@ libs:
- src/cpp/common/secure_auth_context.h
- src/cpp/server/secure_server_credentials.h
src:
- src/cpp/client/secure_channel_arguments.cc
- src/cpp/client/secure_credentials.cc
- src/cpp/common/auth_property_iterator.cc
- src/cpp/common/secure_auth_context.cc
- src/cpp/common/secure_channel_arguments.cc
- src/cpp/common/secure_create_auth_context.cc
- src/cpp/server/secure_server_credentials.cc
deps:
@ -1663,7 +1663,7 @@ targets:
build: test
language: c++
src:
- test/cpp/client/channel_arguments_test.cc
- test/cpp/common/channel_arguments_test.cc
deps:
- grpc++
- grpc

@ -80,6 +80,11 @@ class ChannelArguments {
// Generic channel argument setters. Only for advanced use cases.
/// Set an integer argument \a value under \a key.
void SetInt(const grpc::string& key, int value);
// Generic channel argument setter. Only for advanced use cases.
/// Set a pointer argument \a value under \a key. Owership is not transferred.
void SetPointer(const grpc::string& key, void* value);
/// Set a textual argument \a value under \a key.
void SetString(const grpc::string& key, const grpc::string& value);

@ -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;

@ -115,6 +115,22 @@ TEST_F(ChannelArgumentsTest, SetString) {
}
}
TEST_F(ChannelArgumentsTest, SetPointer) {
grpc_channel_args args;
ChannelArguments channel_args;
// Empty arguments.
SetChannelArgs(channel_args, &args);
EXPECT_EQ(static_cast<size_t>(0), args.num_args);
grpc::string key("key0");
channel_args.SetPointer(key, &key);
SetChannelArgs(channel_args, &args);
EXPECT_EQ(static_cast<size_t>(1), args.num_args);
EXPECT_EQ(GRPC_ARG_POINTER, args.args[0].type);
EXPECT_STREQ("key0", args.args[0].key);
EXPECT_EQ(&key, args.args[0].value.pointer.p);
}
} // namespace testing
} // namespace grpc

@ -810,14 +810,13 @@ src/cpp/common/create_auth_context.h \
src/cpp/server/dynamic_thread_pool.h \
src/cpp/server/fixed_size_thread_pool.h \
src/cpp/server/thread_pool_interface.h \
src/cpp/client/secure_channel_arguments.cc \
src/cpp/client/secure_credentials.cc \
src/cpp/common/auth_property_iterator.cc \
src/cpp/common/secure_auth_context.cc \
src/cpp/common/secure_channel_arguments.cc \
src/cpp/common/secure_create_auth_context.cc \
src/cpp/server/secure_server_credentials.cc \
src/cpp/client/channel.cc \
src/cpp/client/channel_arguments.cc \
src/cpp/client/client_context.cc \
src/cpp/client/create_channel.cc \
src/cpp/client/create_channel_internal.cc \
@ -825,6 +824,7 @@ src/cpp/client/credentials.cc \
src/cpp/client/generic_stub.cc \
src/cpp/client/insecure_credentials.cc \
src/cpp/common/call.cc \
src/cpp/common/channel_arguments.cc \
src/cpp/common/completion_queue.cc \
src/cpp/common/rpc_method.cc \
src/cpp/proto/proto_utils.cc \

@ -1138,7 +1138,7 @@
"language": "c++",
"name": "channel_arguments_test",
"src": [
"test/cpp/client/channel_arguments_test.cc"
"test/cpp/common/channel_arguments_test.cc"
]
},
{
@ -15353,7 +15353,6 @@
"include/grpc++/support/sync_stream.h",
"include/grpc++/support/time.h",
"src/cpp/client/channel.cc",
"src/cpp/client/channel_arguments.cc",
"src/cpp/client/client_context.cc",
"src/cpp/client/create_channel.cc",
"src/cpp/client/create_channel_internal.cc",
@ -15361,16 +15360,17 @@
"src/cpp/client/credentials.cc",
"src/cpp/client/generic_stub.cc",
"src/cpp/client/insecure_credentials.cc",
"src/cpp/client/secure_channel_arguments.cc",
"src/cpp/client/secure_credentials.cc",
"src/cpp/client/secure_credentials.h",
"src/cpp/common/auth_property_iterator.cc",
"src/cpp/common/call.cc",
"src/cpp/common/channel_arguments.cc",
"src/cpp/common/completion_queue.cc",
"src/cpp/common/create_auth_context.h",
"src/cpp/common/rpc_method.cc",
"src/cpp/common/secure_auth_context.cc",
"src/cpp/common/secure_auth_context.h",
"src/cpp/common/secure_channel_arguments.cc",
"src/cpp/common/secure_create_auth_context.cc",
"src/cpp/proto/proto_utils.cc",
"src/cpp/server/async_generic_service.cc",
@ -15536,7 +15536,6 @@
"include/grpc++/support/sync_stream.h",
"include/grpc++/support/time.h",
"src/cpp/client/channel.cc",
"src/cpp/client/channel_arguments.cc",
"src/cpp/client/client_context.cc",
"src/cpp/client/create_channel.cc",
"src/cpp/client/create_channel_internal.cc",
@ -15545,6 +15544,7 @@
"src/cpp/client/generic_stub.cc",
"src/cpp/client/insecure_credentials.cc",
"src/cpp/common/call.cc",
"src/cpp/common/channel_arguments.cc",
"src/cpp/common/completion_queue.cc",
"src/cpp/common/create_auth_context.h",
"src/cpp/common/insecure_create_auth_context.cc",

@ -292,8 +292,6 @@
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\client_context.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\create_channel.cc">
@ -308,6 +306,8 @@
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\call.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\completion_queue.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\rpc_method.cc">

@ -7,9 +7,6 @@
<ClCompile Include="..\..\..\src\cpp\client\channel.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel_arguments.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\client_context.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
@ -31,6 +28,9 @@
<ClCompile Include="..\..\..\src\cpp\common\call.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\channel_arguments.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\completion_queue.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>

@ -291,22 +291,20 @@
<ClInclude Include="..\..\..\src\cpp\server\thread_pool_interface.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\src\cpp\client\secure_channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\secure_credentials.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\auth_property_iterator.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\secure_auth_context.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\secure_channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\secure_create_auth_context.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\server\secure_server_credentials.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\client_context.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\create_channel.cc">
@ -321,6 +319,8 @@
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\call.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\completion_queue.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\rpc_method.cc">

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\..\src\cpp\client\secure_channel_arguments.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\secure_credentials.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
@ -13,6 +10,9 @@
<ClCompile Include="..\..\..\src\cpp\common\secure_auth_context.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\secure_channel_arguments.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\secure_create_auth_context.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
@ -22,9 +22,6 @@
<ClCompile Include="..\..\..\src\cpp\client\channel.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel_arguments.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\client_context.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
@ -46,6 +43,9 @@
<ClCompile Include="..\..\..\src\cpp\common\call.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\channel_arguments.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\completion_queue.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>

@ -292,8 +292,6 @@
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\client_context.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\create_channel.cc">
@ -308,6 +306,8 @@
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\call.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\channel_arguments.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\completion_queue.cc">
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\rpc_method.cc">

@ -7,9 +7,6 @@
<ClCompile Include="..\..\..\src\cpp\client\channel.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\channel_arguments.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\client\client_context.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
@ -31,6 +28,9 @@
<ClCompile Include="..\..\..\src\cpp\common\call.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\channel_arguments.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\cpp\common\completion_queue.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>

@ -145,7 +145,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\test\cpp\client\channel_arguments_test.cc">
<ClCompile Include="..\..\..\..\test\cpp\common\channel_arguments_test.cc">
</ClCompile>
</ItemGroup>
<ItemGroup>

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="..\..\..\..\test\cpp\client\channel_arguments_test.cc">
<Filter>test\cpp\client</Filter>
<ClCompile Include="..\..\..\..\test\cpp\common\channel_arguments_test.cc">
<Filter>test\cpp\common</Filter>
</ClCompile>
</ItemGroup>
@ -13,8 +13,8 @@
<Filter Include="test\cpp">
<UniqueIdentifier>{16fb3cfd-129c-a846-b9a5-dbec55fd83a8}</UniqueIdentifier>
</Filter>
<Filter Include="test\cpp\client">
<UniqueIdentifier>{49a87562-f2d0-2d95-9dfa-87ebf2aed951}</UniqueIdentifier>
<Filter Include="test\cpp\common">
<UniqueIdentifier>{641fdf8b-9e1d-4d66-c744-217b0b527616}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>

Loading…
Cancel
Save