|
|
|
@ -56,6 +56,7 @@ class ClientRpcContext { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
virtual void Start(CompletionQueue* cq, const ClientConfig& config) = 0; |
|
|
|
|
virtual void TryCancel() = 0; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template <class RequestType, class ResponseType> |
|
|
|
@ -110,6 +111,7 @@ class ClientRpcContextUnaryImpl : public ClientRpcContext { |
|
|
|
|
prepare_req_, callback_); |
|
|
|
|
clone->StartInternal(cq); |
|
|
|
|
} |
|
|
|
|
void TryCancel() override { context_.TryCancel(); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
grpc::ClientContext context_; |
|
|
|
@ -142,8 +144,6 @@ class ClientRpcContextUnaryImpl : public ClientRpcContext { |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
typedef std::forward_list<ClientRpcContext*> context_list; |
|
|
|
|
|
|
|
|
|
template <class StubType, class RequestType> |
|
|
|
|
class AsyncClient : public ClientImpl<StubType, RequestType> { |
|
|
|
|
// Specify which protected members we are using since there is no
|
|
|
|
@ -247,6 +247,7 @@ class AsyncClient : public ClientImpl<StubType, RequestType> { |
|
|
|
|
// this thread isn't supposed to shut down
|
|
|
|
|
std::lock_guard<std::mutex> l(shutdown_state_[thread_idx]->mutex); |
|
|
|
|
if (shutdown_state_[thread_idx]->shutdown) { |
|
|
|
|
ctx->TryCancel(); |
|
|
|
|
delete ctx; |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
@ -388,6 +389,7 @@ class ClientRpcContextStreamingPingPongImpl : public ClientRpcContext { |
|
|
|
|
stub_, req_, next_issue_, prepare_req_, callback_); |
|
|
|
|
clone->StartInternal(cq, messages_per_stream_); |
|
|
|
|
} |
|
|
|
|
void TryCancel() override { context_.TryCancel(); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
grpc::ClientContext context_; |
|
|
|
@ -527,6 +529,7 @@ class ClientRpcContextStreamingFromClientImpl : public ClientRpcContext { |
|
|
|
|
stub_, req_, next_issue_, prepare_req_, callback_); |
|
|
|
|
clone->StartInternal(cq); |
|
|
|
|
} |
|
|
|
|
void TryCancel() override { context_.TryCancel(); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
grpc::ClientContext context_; |
|
|
|
@ -644,6 +647,7 @@ class ClientRpcContextStreamingFromServerImpl : public ClientRpcContext { |
|
|
|
|
stub_, req_, next_issue_, prepare_req_, callback_); |
|
|
|
|
clone->StartInternal(cq); |
|
|
|
|
} |
|
|
|
|
void TryCancel() override { context_.TryCancel(); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
grpc::ClientContext context_; |
|
|
|
@ -786,6 +790,7 @@ class ClientRpcContextGenericStreamingImpl : public ClientRpcContext { |
|
|
|
|
stub_, req_, next_issue_, prepare_req_, callback_); |
|
|
|
|
clone->StartInternal(cq, messages_per_stream_); |
|
|
|
|
} |
|
|
|
|
void TryCancel() override { context_.TryCancel(); } |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
grpc::ClientContext context_; |
|
|
|
|