49 #ifndef GRPCXX_CLIENT_CONTEXT_H 
   50 #define GRPCXX_CLIENT_CONTEXT_H 
   56 #include <grpc/compression.h> 
   57 #include <grpc/grpc.h> 
   58 #include <grpc/support/log.h> 
   59 #include <grpc/support/time.h> 
   66 struct census_context;
 
   71 class CompletionQueue;
 
   78 template <
class R, 
class W>
 
   79 class ClientReaderWriter;
 
   81 class ClientAsyncReader;
 
   83 class ClientAsyncWriter;
 
   84 template <
class R, 
class W>
 
   85 class ClientAsyncReaderWriter;
 
   87 class ClientAsyncResponseReader;
 
  100     propagate_ |= GRPC_PROPAGATE_DEADLINE;
 
  105     propagate_ &= ~GRPC_PROPAGATE_DEADLINE;
 
  110     propagate_ |= GRPC_PROPAGATE_CENSUS_STATS_CONTEXT;
 
  115     propagate_ &= ~GRPC_PROPAGATE_CENSUS_STATS_CONTEXT;
 
  120     propagate_ |= GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT;
 
  125     propagate_ &= ~GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT;
 
  130     propagate_ |= GRPC_PROPAGATE_CANCELLATION;
 
  135     propagate_ &= ~GRPC_PROPAGATE_CANCELLATION;
 
  142   gpr_uint32 propagate_;
 
  146 class InteropClientContextInspector;
 
  190   const std::multimap<grpc::string_ref, grpc::string_ref>&
 
  192     GPR_ASSERT(initial_metadata_received_);
 
  193     return recv_initial_metadata_;
 
  202   const std::multimap<grpc::string_ref, grpc::string_ref>&
 
  205     return trailing_metadata_;
 
  214   template <
typename T>
 
  220 #ifndef GRPC_CXX0X_NO_CHRONO 
  221   std::chrono::system_clock::time_point 
deadline() {
 
  225 #endif  // !GRPC_CXX0X_NO_CHRONO 
  237   std::shared_ptr<const AuthContext> 
auth_context() 
const;
 
  253     return compression_algorithm_;
 
  273     return census_context_;
 
  287   friend class ::grpc::testing::InteropClientContextInspector;
 
  292   friend class ::grpc::ClientReader;
 
  294   friend class ::grpc::ClientWriter;
 
  295   template <
class R, 
class W>
 
  296   friend class ::grpc::ClientReaderWriter;
 
  298   friend class ::grpc::ClientAsyncReader;
 
  300   friend class ::grpc::ClientAsyncWriter;
 
  301   template <
class R, 
class W>
 
  302   friend class ::grpc::ClientAsyncReaderWriter;
 
  304   friend class ::grpc::ClientAsyncResponseReader;
 
  305   template <
class InputMessage, 
class OutputMessage>
 
  308                                   const InputMessage& request,
 
  309                                   OutputMessage* result);
 
  311   grpc_call* call() { 
return call_; }
 
  312   void set_call(grpc_call* call, 
const std::shared_ptr<Channel>& channel);
 
  316   bool initial_metadata_received_;
 
  317   std::shared_ptr<Channel> channel_;
 
  319   gpr_timespec deadline_;
 
  321   std::shared_ptr<Credentials> creds_;
 
  322   mutable std::shared_ptr<const AuthContext> auth_context_;
 
  324   std::multimap<grpc::string, grpc::string> send_initial_metadata_;
 
  325   std::multimap<grpc::string_ref, grpc::string_ref> recv_initial_metadata_;
 
  326   std::multimap<grpc::string_ref, grpc::string_ref> trailing_metadata_;
 
  328   grpc_call* propagate_from_call_;
 
  329   PropagationOptions propagation_options_;
 
  331   grpc_compression_algorithm compression_algorithm_;
 
  336 #endif  // GRPCXX_CLIENT_CONTEXT_H 
PropagationOptions & enable_census_tracing_propagation()
Definition: client_context.h:119
 
PropagationOptions & enable_deadline_propagation()
Definition: client_context.h:99
 
std::string string
Definition: config.h:112
 
std::chrono::system_clock::time_point deadline()
Return the deadline for the client call. 
Definition: client_context.h:222
 
const std::multimap< grpc::string_ref, grpc::string_ref > & GetServerTrailingMetadata()
Return a collection of trailing metadata key-value pairs. 
Definition: client_context.h:203
 
void set_deadline(const T &deadline)
Set the deadline for the client call. 
Definition: client_context.h:215
 
grpc::string peer() const 
Return the peer uri in a string. 
 
PropagationOptions & disable_cancellation_propagation()
Definition: client_context.h:134
 
PropagationOptions & enable_census_stats_propagation()
Definition: client_context.h:109
 
gpr_timespec raw_time()
Definition: time.h:56
 
PropagationOptions & enable_cancellation_propagation()
Definition: client_context.h:129
 
Definition: client_context.h:149
 
std::shared_ptr< const AuthContext > auth_context() const 
Return the authentication context for this client call. 
 
struct census_context * census_context() const 
Definition: client_context.h:272
 
void TryCancel()
Send a best-effort out-of-band cancel. 
 
Options for ClientContext::FromServerContext specifying which traits from the ServerContext to propag...
Definition: client_context.h:95
 
void set_census_context(struct census_context *ccp)
Get and set census context. 
Definition: client_context.h:271
 
const std::multimap< grpc::string_ref, grpc::string_ref > & GetServerInitialMetadata()
Return a collection of initial metadata key-value pairs. 
Definition: client_context.h:191
 
grpc_compression_algorithm compression_algorithm() const 
Return the compression algorithm to be used by the client call. 
Definition: client_context.h:252
 
gpr_uint32 c_bitmask() const 
Definition: client_context.h:139
 
Definition: server_context.h:89
 
PropagationOptions & disable_census_tracing_propagation()
Definition: client_context.h:124
 
friend Status BlockingUnaryCall(Channel *channel, const RpcMethod &method, ClientContext *context, const InputMessage &request, OutputMessage *result)
Definition: client_unary_call.h:50
 
Definition: rpc_method.h:43
 
void set_authority(const grpc::string &authority)
Set the per call authority header (see https://tools.ietf.org/html/rfc7540#section-8.1.2.3). 
Definition: client_context.h:232
 
gpr_timespec raw_deadline()
Return a gpr_timespec representation of the client call's deadline. 
Definition: client_context.h:228
 
Did it work? If it didn't, why? 
Definition: status.h:45
 
std::chrono::system_clock::time_point Timespec2Timepoint(gpr_timespec t)
 
PropagationOptions()
Definition: client_context.h:97
 
void set_compression_algorithm(grpc_compression_algorithm algorithm)
Set algorithm to be the compression algorithm used for the client call. 
 
PropagationOptions & disable_deadline_propagation()
Definition: client_context.h:104
 
void set_credentials(const std::shared_ptr< Credentials > &creds)
Set credentials for the client call. 
Definition: client_context.h:247
 
static std::unique_ptr< ClientContext > FromServerContext(const ServerContext &server_context, PropagationOptions options=PropagationOptions())
Create a new ClientContext as a child of an incoming server call, according to options (...
 
void AddMetadata(const grpc::string &meta_key, const grpc::string &meta_value)
Add the (meta_key, meta_value) pair to the metadata associated with a client call. 
 
PropagationOptions & disable_census_stats_propagation()
Definition: client_context.h:114
 
Channels represent a connection to an endpoint. Created by CreateChannel. 
Definition: channel.h:69