diff options
-rw-r--r-- | include/grpc++/create_channel_posix.h | 10 | ||||
-rw-r--r-- | src/cpp/client/create_channel_posix.cc | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/grpc++/create_channel_posix.h b/include/grpc++/create_channel_posix.h index 0d96159942..2af12e6c36 100644 --- a/include/grpc++/create_channel_posix.h +++ b/include/grpc++/create_channel_posix.h @@ -37,6 +37,7 @@ #include <memory> #include <grpc++/channel.h> +#include <grpc++/support/channel_arguments.h> #include <grpc/support/port_platform.h> namespace grpc { @@ -50,6 +51,15 @@ namespace grpc { std::shared_ptr<Channel> CreateInsecureChannelFromFd(const grpc::string& target, int fd); +/// Create a new \a Channel communicating over given file descriptor with custom +/// channel arguments +/// +/// \param target The name of the target. +/// \param fd The file descriptor representing a socket. +/// \param args Options for channel creation. +std::shared_ptr<Channel> CreateCustomInsecureChannelFromFd( + const grpc::string& target, int fd, const ChannelArguments& args); + #endif // GPR_SUPPORT_CHANNELS_FROM_FD } // namespace grpc diff --git a/src/cpp/client/create_channel_posix.cc b/src/cpp/client/create_channel_posix.cc index 60cfed3d62..eb323ac50b 100644 --- a/src/cpp/client/create_channel_posix.cc +++ b/src/cpp/client/create_channel_posix.cc @@ -51,6 +51,16 @@ std::shared_ptr<Channel> CreateInsecureChannelFromFd(const grpc::string& target, "", grpc_insecure_channel_create_from_fd(target.c_str(), fd, nullptr)); } +std::shared_ptr<Channel> CreateCustomInsecureChannelFromFd( + const grpc::string& target, int fd, const ChannelArguments& args) { + internal::GrpcLibrary init_lib; + init_lib.init(); + grpc_channel_args channel_args; + args.SetChannelArgs(&channel_args); + return CreateChannelInternal("", grpc_insecure_channel_create_from_fd( + target.c_str(), fd, &channel_args)); +} + #endif // GPR_SUPPORT_CHANNELS_FROM_FD } // namespace grpc |