|
|
|
@ -45,17 +45,31 @@ |
|
|
|
|
|
|
|
|
|
namespace grpc { |
|
|
|
|
|
|
|
|
|
class DefaultGlobalClientCallbacks GRPC_FINAL |
|
|
|
|
: public ClientContext::GlobalCallbacks { |
|
|
|
|
public: |
|
|
|
|
void DefaultConstructor(ClientContext* context) GRPC_OVERRIDE {} |
|
|
|
|
void Destructor(ClientContext* context) GRPC_OVERRIDE {} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static DefaultGlobalClientCallbacks g_default_client_callbacks; |
|
|
|
|
static ClientContext::GlobalCallbacks* g_client_callbacks = |
|
|
|
|
&g_default_client_callbacks; |
|
|
|
|
|
|
|
|
|
ClientContext::ClientContext() |
|
|
|
|
: initial_metadata_received_(false), |
|
|
|
|
call_(nullptr), |
|
|
|
|
call_canceled_(false), |
|
|
|
|
deadline_(gpr_inf_future(GPR_CLOCK_REALTIME)), |
|
|
|
|
propagate_from_call_(nullptr) {} |
|
|
|
|
propagate_from_call_(nullptr) { |
|
|
|
|
g_client_callbacks->DefaultConstructor(this); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ClientContext::~ClientContext() { |
|
|
|
|
if (call_) { |
|
|
|
|
grpc_call_destroy(call_); |
|
|
|
|
} |
|
|
|
|
g_client_callbacks->Destructor(this); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
std::unique_ptr<ClientContext> ClientContext::FromServerContext( |
|
|
|
@ -124,4 +138,11 @@ grpc::string ClientContext::peer() const { |
|
|
|
|
return peer; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ClientContext::SetGlobalCallbacks(GlobalCallbacks* client_callbacks) { |
|
|
|
|
GPR_ASSERT(g_client_callbacks == &g_default_client_callbacks); |
|
|
|
|
GPR_ASSERT(client_callbacks != NULL); |
|
|
|
|
GPR_ASSERT(client_callbacks != &g_default_client_callbacks); |
|
|
|
|
g_client_callbacks = client_callbacks; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} // namespace grpc
|
|
|
|
|