diff options
author | David Garcia Quintas <dgq@google.com> | 2015-06-30 23:29:03 -0700 |
---|---|---|
committer | David Garcia Quintas <dgq@google.com> | 2015-06-30 23:29:03 -0700 |
commit | d7d9ce27c523798384051246e18e3f00b29dd8c9 (patch) | |
tree | 3bea869080c65f73f1c92ded39c6b7e1434394fe /src/cpp/client/client_context.cc | |
parent | fc0fa3381c7b7088936ce6f41a8f8c41ef3c38ac (diff) |
WIP in *_end2end_test.cc. Tests pass. Fixed leaks and introduced concept of compression request thru MD
Diffstat (limited to 'src/cpp/client/client_context.cc')
-rw-r--r-- | src/cpp/client/client_context.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc index 72cdd49d19..0eba554e33 100644 --- a/src/cpp/client/client_context.cc +++ b/src/cpp/client/client_context.cc @@ -34,9 +34,12 @@ #include <grpc++/client_context.h> #include <grpc/grpc.h> +#include <grpc/support/string_util.h> #include <grpc++/credentials.h> #include <grpc++/time.h> +#include "src/core/channel/compress_filter.h" + namespace grpc { ClientContext::ClientContext() @@ -75,6 +78,24 @@ void ClientContext::set_call(grpc_call* call, } } +void ClientContext::set_compression_level(grpc_compression_level level) { + const grpc_compression_algorithm algorithm_for_level = + grpc_compression_algorithm_for_level(level); + set_compression_algorithm(algorithm_for_level); +} + +void ClientContext::set_compression_algorithm( + grpc_compression_algorithm algorithm) { + char* algorithm_name = NULL; + if (!grpc_compression_algorithm_name(algorithm, &algorithm_name)) { + gpr_log(GPR_ERROR, "Name for compression algorithm '%d' unknown.", + algorithm); + abort(); + } + GPR_ASSERT(algorithm_name != NULL); + AddMetadata(GRPC_COMPRESS_REQUEST_ALGORITHM_KEY, algorithm_name); +} + void ClientContext::TryCancel() { if (call_) { grpc_call_cancel(call_); |