GRPC C++  1.30.0
Data Structures | Typedefs | Enumerations | Functions
grpc::experimental Namespace Reference

ClientRpcInfo represents the state of a particular RPC as it appears to an interceptor. More...

Data Structures

class  CallbackGenericService
 CallbackGenericService is the base class for generic services implemented using the callback API and registered through the ServerBuilder using RegisterCallbackGenericService. More...
 
class  ClientInterceptorFactoryInterface
 
class  ClientRpcInfo
 
class  DelegatingChannel
 
class  ExternalConnectionAcceptor
 
class  GenericCallbackServerContext
 
class  Interceptor
 Interface for an interceptor. More...
 
class  InterceptorBatchMethods
 Class that is passed as an argument to the Intercept method of the application's Interceptor interface implementation. More...
 
class  MessageAllocator
 
class  MessageHolder
 
class  RpcAllocatorState
 
class  ServerInterceptorFactoryInterface
 
class  ServerRpcInfo
 ServerRpcInfo represents the state of a particular RPC as it appears to an interceptor. More...
 

Typedefs

using ServerGenericBidiReactor = ::grpc_impl::ServerBidiReactor< ByteBuffer, ByteBuffer >
 ServerGenericBidiReactor is the reactor class for bidi streaming RPCs invoked on a CallbackGenericService. More...
 
template<class Response >
using ClientCallbackReader = ::grpc_impl::ClientCallbackReader< Response >
 
template<class Request >
using ClientCallbackWriter = ::grpc_impl::ClientCallbackWriter< Request >
 
template<class Request , class Response >
using ClientCallbackReaderWriter = ::grpc_impl::ClientCallbackReaderWriter< Request, Response >
 
template<class Response >
using ClientReadReactor = ::grpc_impl::ClientReadReactor< Response >
 
template<class Request >
using ClientWriteReactor = ::grpc_impl::ClientWriteReactor< Request >
 
template<class Request , class Response >
using ClientBidiReactor = ::grpc_impl::ClientBidiReactor< Request, Response >
 
typedef ::grpc_impl::ClientUnaryReactor ClientUnaryReactor
 
template<class Request >
using ServerReadReactor = ::grpc_impl::ServerReadReactor< Request >
 
template<class Response >
using ServerWriteReactor = ::grpc_impl::ServerWriteReactor< Response >
 
template<class Request , class Response >
using ServerBidiReactor = ::grpc_impl::ServerBidiReactor< Request, Response >
 
using ServerUnaryReactor = ::grpc_impl::ServerUnaryReactor
 
typedef ::grpc_impl::ServerContextBase ServerContextBase
 
typedef ::grpc_impl::CallbackServerContext CallbackServerContext
 
typedef ::grpc_impl::experimental::StsCredentialsOptions StsCredentialsOptions
 
typedef ::grpc_impl::experimental::AltsCredentialsOptions AltsCredentialsOptions
 
typedef ::grpc_impl::experimental::AltsServerCredentialsOptions AltsServerCredentialsOptions
 

Enumerations

enum  InterceptionHookPoints {
  InterceptionHookPoints::PRE_SEND_INITIAL_METADATA, InterceptionHookPoints::PRE_SEND_MESSAGE, InterceptionHookPoints::POST_SEND_MESSAGE, InterceptionHookPoints::PRE_SEND_STATUS,
  InterceptionHookPoints::PRE_SEND_CLOSE, InterceptionHookPoints::PRE_RECV_INITIAL_METADATA, InterceptionHookPoints::PRE_RECV_MESSAGE, InterceptionHookPoints::PRE_RECV_STATUS,
  InterceptionHookPoints::POST_RECV_INITIAL_METADATA, InterceptionHookPoints::POST_RECV_MESSAGE, InterceptionHookPoints::POST_RECV_STATUS, InterceptionHookPoints::POST_RECV_CLOSE,
  InterceptionHookPoints::PRE_SEND_CANCEL, InterceptionHookPoints::NUM_INTERCEPTION_HOOKS
}
 An enumeration of different possible points at which the Intercept method of the Interceptor interface may be called. More...
 

Functions

void ChannelResetConnectionBackoff (Channel *channel)
 Resets the channel's connection backoff. More...
 
void RegisterGlobalClientInterceptorFactory (ClientInterceptorFactoryInterface *factory)
 
void TestOnlyResetGlobalClientInterceptorFactory ()
 
grpc::string ValidateServiceConfigJSON (const grpc::string &service_config_json)
 Validates service_config_json. More...
 

Detailed Description

ClientRpcInfo represents the state of a particular RPC as it appears to an interceptor.

It is created and owned by the library and passed to the CreateClientInterceptor method of the application's ClientInterceptorFactoryInterface implementation

Typedef Documentation

◆ AltsCredentialsOptions

◆ AltsServerCredentialsOptions

◆ CallbackServerContext

◆ ClientBidiReactor

template<class Request , class Response >
using grpc::experimental::ClientBidiReactor = typedef ::grpc_impl::ClientBidiReactor<Request, Response>

◆ ClientCallbackReader

template<class Response >
using grpc::experimental::ClientCallbackReader = typedef ::grpc_impl::ClientCallbackReader<Response>

◆ ClientCallbackReaderWriter

template<class Request , class Response >
using grpc::experimental::ClientCallbackReaderWriter = typedef ::grpc_impl::ClientCallbackReaderWriter<Request, Response>

◆ ClientCallbackWriter

template<class Request >
using grpc::experimental::ClientCallbackWriter = typedef ::grpc_impl::ClientCallbackWriter<Request>

◆ ClientReadReactor

template<class Response >
using grpc::experimental::ClientReadReactor = typedef ::grpc_impl::ClientReadReactor<Response>

◆ ClientUnaryReactor

◆ ClientWriteReactor

template<class Request >
using grpc::experimental::ClientWriteReactor = typedef ::grpc_impl::ClientWriteReactor<Request>

◆ ServerBidiReactor

template<class Request , class Response >
using grpc::experimental::ServerBidiReactor = typedef ::grpc_impl::ServerBidiReactor<Request, Response>

◆ ServerContextBase

◆ ServerGenericBidiReactor

ServerGenericBidiReactor is the reactor class for bidi streaming RPCs invoked on a CallbackGenericService.

It is just a ServerBidi reactor with ByteBuffer arguments.

◆ ServerReadReactor

template<class Request >
using grpc::experimental::ServerReadReactor = typedef ::grpc_impl::ServerReadReactor<Request>

◆ ServerUnaryReactor

◆ ServerWriteReactor

template<class Response >
using grpc::experimental::ServerWriteReactor = typedef ::grpc_impl::ServerWriteReactor<Response>

◆ StsCredentialsOptions

Enumeration Type Documentation

◆ InterceptionHookPoints

An enumeration of different possible points at which the Intercept method of the Interceptor interface may be called.

Any given call to Intercept will include one or more of these hook points, and each hook point makes certain types of information available to the interceptor. In these enumeration names, PRE_SEND means that an interception has taken place between the time the application provided a certain type of data (e.g., initial metadata, status) and the time that that data goes to the other side. POST_SEND means that the data has been committed for going to the other side (even if it has not yet been received at the other side). PRE_RECV means an interception between the time that a certain operation has been requested and it is available. POST_RECV means that a result is available but has not yet been passed back to the application. A batch of interception points will only contain either PRE or POST hooks but not both types. For example, a batch with PRE_SEND hook points will not contain POST_RECV or POST_SEND ops. Likewise, a batch with POST_* ops can not contain PRE_* ops.

Enumerator
PRE_SEND_INITIAL_METADATA 

The first three in this list are for clients and servers.

PRE_SEND_MESSAGE 
POST_SEND_MESSAGE 
PRE_SEND_STATUS 
PRE_SEND_CLOSE 
PRE_RECV_INITIAL_METADATA 

The following three are for hijacked clients only.

A batch with PRE_RECV_* hook points will never contain hook points of other types.

PRE_RECV_MESSAGE 
PRE_RECV_STATUS 
POST_RECV_INITIAL_METADATA 

The following two are for all clients and servers.

POST_RECV_MESSAGE 
POST_RECV_STATUS 
POST_RECV_CLOSE 
PRE_SEND_CANCEL 

This is a special hook point available to both clients and servers when TryCancel() is performed.

  • No other hook points will be present along with this.
  • It is illegal for an interceptor to block/delay this operation.
  • ALL interceptors see this hook point irrespective of whether the RPC was hijacked or not.
NUM_INTERCEPTION_HOOKS 

Function Documentation

◆ ChannelResetConnectionBackoff()

void grpc::experimental::ChannelResetConnectionBackoff ( Channel channel)

Resets the channel's connection backoff.

TODO(roth): Once we see whether this proves useful, either create a gRFC and change this to be a method of the Channel class, or remove it.

◆ RegisterGlobalClientInterceptorFactory()

void grpc::experimental::RegisterGlobalClientInterceptorFactory ( ClientInterceptorFactoryInterface factory)

◆ TestOnlyResetGlobalClientInterceptorFactory()

void grpc::experimental::TestOnlyResetGlobalClientInterceptorFactory ( )

◆ ValidateServiceConfigJSON()

grpc::string grpc::experimental::ValidateServiceConfigJSON ( const grpc::string service_config_json)

Validates service_config_json.

If valid, returns an empty string. Otherwise, returns the validation error. TODO(yashykt): Promote it to out of experimental once it is proved useful and gRFC is accepted.