GRPC C++
1.66.0
|
A ClientContext allows the person implementing a service client to: More...
#include <client_context.h>
Data Structures | |
class | GlobalCallbacks |
Global Callbacks. More... | |
Public Member Functions | |
ClientContext () | |
~ClientContext () | |
void | AddMetadata (const std::string &meta_key, const std::string &meta_value) |
Add the (meta_key, meta_value) pair to the metadata associated with a client call. More... | |
const std::multimap< grpc::string_ref, grpc::string_ref > & | GetServerInitialMetadata () const |
Return a collection of initial metadata key-value pairs. More... | |
const std::multimap< grpc::string_ref, grpc::string_ref > & | GetServerTrailingMetadata () const |
Return a collection of trailing metadata key-value pairs. More... | |
template<typename T > | |
void | set_deadline (const T &deadline) |
Set the deadline for the client call. More... | |
void | set_wait_for_ready (bool wait_for_ready) |
Trigger wait-for-ready or not on this request. More... | |
void | set_fail_fast (bool fail_fast) |
DEPRECATED: Use set_wait_for_ready() instead. More... | |
std::chrono::system_clock::time_point | deadline () const |
Return the deadline for the client call. More... | |
gpr_timespec | raw_deadline () const |
Return a gpr_timespec representation of the client call's deadline. More... | |
void | set_authority (const std::string &authority) |
Set the per call authority header (see https://tools.ietf.org/html/rfc7540#section-8.1.2.3). More... | |
std::shared_ptr< const grpc::AuthContext > | auth_context () const |
Return the authentication context for the associated client call. More... | |
void | set_credentials (const std::shared_ptr< grpc::CallCredentials > &creds) |
Set credentials for the client call. More... | |
std::shared_ptr< grpc::CallCredentials > | credentials () |
EXPERIMENTAL debugging API. More... | |
grpc_compression_algorithm | compression_algorithm () const |
Return the compression algorithm the client call will request be used. More... | |
void | set_compression_algorithm (grpc_compression_algorithm algorithm) |
Set algorithm to be the compression algorithm used for the client call. More... | |
void | set_initial_metadata_corked (bool corked) |
Flag whether the initial metadata should be corked. More... | |
std::string | peer () const |
Return the peer uri in a string. More... | |
void | set_census_context (struct census_context *ccp) |
Sets the census context. More... | |
struct census_context * | census_context () const |
Returns the census context that has been set, or nullptr if not set. More... | |
void | TryCancel () |
Send a best-effort out-of-band cancel on the call associated with this client context. More... | |
grpc_call * | c_call () |
Should be used for framework-level extensions only. More... | |
std::string | debug_error_string () const |
EXPERIMENTAL debugging API. More... | |
Static Public Member Functions | |
static std::unique_ptr< ClientContext > | FromServerContext (const grpc::ServerContextBase &server_context, PropagationOptions options=PropagationOptions()) |
Create a new ClientContext as a child of an incoming server call, according to options (. More... | |
static std::unique_ptr< ClientContext > | FromCallbackServerContext (const grpc::CallbackServerContext &server_context, PropagationOptions options=PropagationOptions()) |
static void | SetGlobalCallbacks (GlobalCallbacks *callbacks) |
A ClientContext allows the person implementing a service client to:
Context settings are only relevant to the call they are invoked with, that is to say, they aren't sticky. Some of these settings, such as the compression options, can be made persistent at channel construction time (see grpc::CreateCustomChannel).
grpc::ClientContext::ClientContext | ( | ) |
grpc::ClientContext::~ClientContext | ( | ) |
void grpc::ClientContext::AddMetadata | ( | const std::string & | meta_key, |
const std::string & | meta_value | ||
) |
Add the (meta_key, meta_value) pair to the metadata associated with a client call.
These are made available at the server side by the grpc::ServerContext::client_metadata() method.
meta_key | The metadata key. If meta_value is binary data, it must end in "-bin". |
meta_value | The metadata value. If its value is binary, the key name must end in "-bin". |
Metadata must conform to the following format:
* Custom-Metadata -> Binary-Header / ASCII-Header * Binary-Header -> {Header-Name "-bin" } {binary value} * ASCII-Header -> Header-Name ASCII-Value * Header-Name -> 1*( %x30-39 / %x61-7A / "_" / "-" / ".") ; 0-9 a-z _ - . * ASCII-Value -> 1*( %x20-%x7E ) ; space and printable ASCII * Custom-Metadata -> Binary-Header / ASCII-Header *
|
inline |
Return the authentication context for the associated client call.
It is only valid to call this during the lifetime of the client call.
|
inline |
Should be used for framework-level extensions only.
Applications never need to call this method.
|
inline |
Returns the census context that has been set, or nullptr if not set.
|
inline |
Return the compression algorithm the client call will request be used.
Note that the gRPC runtime may decide to ignore this request, for example, due to resource constraints.
|
inline |
EXPERIMENTAL debugging API.
Returns the credentials for the client call. This should be used only in tests and for diagnostic purposes, and should not be used by application logic.
|
inline |
Return the deadline for the client call.
|
inline |
EXPERIMENTAL debugging API.
if status is not ok() for an RPC, this will return a detailed string of the gRPC Core error that led to the failure. It should not be relied upon for anything other than gaining more debug data in failure cases.
|
static |
|
static |
Create a new ClientContext as a child of an incoming server call, according to options (.
server_context | The source server context to use as the basis for constructing the client context. |
options | The options controlling what to copy from the server_context. |
|
inline |
Return a collection of initial metadata key-value pairs.
Note that keys may happen more than once (ie, a std::multimap is returned).
|
inline |
Return a collection of trailing metadata key-value pairs.
Note that keys may happen more than once (ie, a std::multimap is returned).
std::string grpc::ClientContext::peer | ( | ) | const |
Return the peer uri in a string.
It is only valid to call this during the lifetime of the client call.
|
inline |
Return a gpr_timespec representation of the client call's deadline.
|
inline |
Set the per call authority header (see https://tools.ietf.org/html/rfc7540#section-8.1.2.3).
|
inline |
Sets the census context.
It is only valid to call this before the client call is created. A common place of setting census context is from within the DefaultConstructor method of GlobalCallbacks.
void grpc::ClientContext::set_compression_algorithm | ( | grpc_compression_algorithm | algorithm | ) |
Set algorithm to be the compression algorithm used for the client call.
algorithm | The compression algorithm used for the client call. |
void grpc::ClientContext::set_credentials | ( | const std::shared_ptr< grpc::CallCredentials > & | creds | ) |
Set credentials for the client call.
A credentials object encapsulates all the state needed by a client to authenticate with a server and make various assertions, e.g., about the client’s identity, role, or whether it is authorized to make a particular call.
It is legal to call this only before initial metadata is sent.
|
inline |
Set the deadline for the client call.
deadline | the deadline for the client call. Units are determined by the type used. The deadline is an absolute (not relative) time. |
|
inline |
DEPRECATED: Use set_wait_for_ready() instead.
|
inline |
Flag whether the initial metadata should be corked.
If corked is true, then the initial metadata will be coalesced with the write of first message in the stream. As a result, any tag set for the initial metadata operation (starting a client-streaming or bidi-streaming RPC) will not actually be sent to the completion queue or delivered via Next.
corked | The flag indicating whether the initial metadata is to be corked or not. |
|
inline |
Trigger wait-for-ready or not on this request.
See https://github.com/grpc/grpc/blob/master/doc/wait-for-ready.md. If set, if an RPC is made when a channel's connectivity state is TRANSIENT_FAILURE or CONNECTING, the call will not "fail fast", and the channel will wait until the channel is READY before making the call.
|
static |
void grpc::ClientContext::TryCancel | ( | ) |
Send a best-effort out-of-band cancel on the call associated with this client context.
The call could be in any stage; e.g., if it is already finished, it may still return success.
There is no guarantee the call will be cancelled.
Note that TryCancel() does not change any of the tags that are pending on the completion queue. All pending tags will still be delivered (though their ok result may reflect the effect of cancellation).
This method is thread-safe, and can be called multiple times from any thread.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |