Merge branch 'master' of github.com:vjpai/grpc
diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h
index 36cbae8..9e3b80c 100644
--- a/include/grpc++/server_context.h
+++ b/include/grpc++/server_context.h
@@ -78,6 +78,8 @@
void AddInitialMetadata(const grpc::string& key, const grpc::string& value);
void AddTrailingMetadata(const grpc::string& key, const grpc::string& value);
+ bool IsCancelled();
+
const std::multimap<grpc::string, grpc::string>& client_metadata() {
return client_metadata_;
}
@@ -110,6 +112,7 @@
std::chrono::system_clock::time_point deadline_;
grpc_call* call_;
+ CompletionQueue* cq_;
bool sent_initial_metadata_;
std::multimap<grpc::string, grpc::string> client_metadata_;
std::multimap<grpc::string, grpc::string> initial_metadata_;
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc
index 435a060..bb3c2d1 100644
--- a/src/cpp/server/server_context.cc
+++ b/src/cpp/server/server_context.cc
@@ -94,6 +94,7 @@
ServerContext::ServerContext()
: completion_op_(nullptr),
call_(nullptr),
+ cq_(nullptr),
sent_initial_metadata_(false) {}
ServerContext::ServerContext(gpr_timespec deadline, grpc_metadata* metadata,
@@ -101,6 +102,7 @@
: completion_op_(nullptr),
deadline_(Timespec2Timepoint(deadline)),
call_(nullptr),
+ cq_(nullptr),
sent_initial_metadata_(false) {
for (size_t i = 0; i < metadata_count; i++) {
client_metadata_.insert(std::make_pair(
@@ -135,4 +137,8 @@
trailing_metadata_.insert(std::make_pair(key, value));
}
+bool ServerContext::IsCancelled() {
+ return completion_op_ && completion_op_->CheckCancelled(cq_);
+}
+
} // namespace grpc