aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp/client/client_context.cc
diff options
context:
space:
mode:
authorGravatar David Garcia Quintas <dgq@google.com>2015-06-30 23:29:03 -0700
committerGravatar David Garcia Quintas <dgq@google.com>2015-06-30 23:29:03 -0700
commitd7d9ce27c523798384051246e18e3f00b29dd8c9 (patch)
tree3bea869080c65f73f1c92ded39c6b7e1434394fe /src/cpp/client/client_context.cc
parentfc0fa3381c7b7088936ce6f41a8f8c41ef3c38ac (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.cc21
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_);