Client-side utilities.
Classes | |
class | AbortedError |
class | AlreadyExistsError |
class | BaseError |
Base exception for all the client errors. More... | |
class | BidirectionalStream |
Controls a request stream -> response stream RPC. More... | |
class | CallAnyBase |
Base class for any RPC. More... | |
class | CancelledError |
Concrete errors for all the error codes. More... | |
class | ClientFactory |
Creates gRPC clients. More... | |
class | ClientFactoryComponent |
Provides a ClientFactory in the component system. More... | |
struct | ClientFactorySettings |
Settings relating to the ClientFactory. More... | |
struct | ClientSettings |
Settings relating to creation of a code-generated client. More... | |
class | CommonComponent |
Contains common machinery that's required for all ugrpc clients. More... | |
class | DataLossError |
class | DeadlineExceededError |
class | ErrorWithStatus |
Error with grpc::Status details. More... | |
class | FailedPreconditionError |
class | GenericClient |
Allows to talk to gRPC services (generic and normal) using dynamic method names. More... | |
struct | GenericOptions |
class | InputStream |
Controls a single request -> response stream RPC. More... | |
class | InternalError |
class | InvalidArgumentError |
class | MiddlewareBase |
Base class for client gRPC middleware. More... | |
class | MiddlewareCallContext |
Context for middleware-specific data during gRPC call. More... | |
class | MiddlewareComponentBase |
Base class for client middleware component. More... | |
class | MiddlewareFactoryBase |
Factory that creates specific client middlewares for clients. More... | |
class | NotFoundError |
class | OutOfRangeError |
class | OutputStream |
Controls a request stream -> single response RPC. More... | |
class | PermissionDeniedError |
struct | Qos |
Per-RPC quality-of-service config. Taken from ugrpc::client::ClientQos. Can also be passed to ugrpc client methods manually. More... | |
class | ResourceExhaustedError |
class | RpcCancelledError |
RPC failed due to task cancellation. More... | |
class | RpcError |
Error during an RPC. More... | |
class | RpcInterruptedError |
RPC failed without a status. This means that either the call got cancelled using TryCancel , the deadline has expired, or the channel is broken. More... | |
class | SimpleClientComponent |
Template class for a simple gRPC client. More... | |
class | StreamReadFuture |
StreamReadFuture for waiting a single read response from stream. More... | |
class | UnaryCall |
Controls a single request -> single response RPC. More... | |
class | UnaryFuture |
UnaryFuture for waiting a single response RPC. More... | |
class | UnauthenticatedError |
class | UnavailableError |
class | UnimplementedError |
class | UnknownError |
Typedefs | |
using | DedicatedMethodsConfig = std::unordered_map<std::string, std::size_t> |
using | ClientQos = utils::DefaultDict<Qos> |
Maps full RPC names (full.service.Name/MethodName ) to their QOS configs. It is also possible to set __default__ QOS that will be used in place of missing entries. | |
using | MiddlewareFactories = std::vector<std::shared_ptr<const MiddlewareFactoryBase>> |
using | Middlewares = std::vector<std::shared_ptr<const MiddlewareBase>> |
A chain of middlewares. | |
Enumerations | |
enum class | CallKind { kUnaryCall , kInputStream , kOutputStream , kBidirectionalStream } |
RPCs kinds. More... | |
Functions | |
template<typename T > | |
Qos | Convert (const T &value, chaotic::convert::To< Qos >) |
template<typename T > | |
T | Convert (const Qos &value, chaotic::convert::To< T >) |
std::shared_ptr< grpc::Channel > | MakeChannel (engine::TaskProcessor &blocking_task_processor, std::shared_ptr< grpc::ChannelCredentials > channel_credentials, const std::string &endpoint) |
Create a new gRPC channel (connection pool) for the endpoint. | |
template<typename Client > | |
bool | TryWaitForConnected (Client &client, engine::Deadline deadline, engine::TaskProcessor &blocking_task_processor) |
Wait until the channel state of client is READY . If the current state is already READY , returns true immediately. In case of multiple underlying channels, waits for all of them. | |
bool | operator== (const Qos &lhs, const Qos &rhs) noexcept |
Qos | Parse (const formats::json::Value &value, formats::parse::To< Qos >) |
formats::json::Value | Serialize (const Qos &qos, formats::serialize::To< formats::json::Value >) |
typedef utils::DefaultDict< Qos > ugrpc::client::ClientQos = utils::DefaultDict<Qos> |
Maps full RPC names (full.service.Name/MethodName
) to their QOS configs. It is also possible to set __default__
QOS that will be used in place of missing entries.
Definition at line 18 of file client_qos.hpp.
using ugrpc::client::DedicatedMethodsConfig = std::unordered_map<std::string, std::size_t> |
Definition at line 20 of file client_factory_settings.hpp.
using ugrpc::client::MiddlewareFactories = std::vector<std::shared_ptr<const MiddlewareFactoryBase>> |
using ugrpc::client::Middlewares = std::vector<std::shared_ptr<const MiddlewareBase>> |
|
strong |
RPCs kinds.
Definition at line 8 of file call_kind.hpp.
T ugrpc::client::Convert | ( | const Qos & | value, |
chaotic::convert::To< T > | ) |
Qos ugrpc::client::Convert | ( | const T & | value, |
chaotic::convert::To< Qos > | ) |
std::shared_ptr< grpc::Channel > ugrpc::client::MakeChannel | ( | engine::TaskProcessor & | blocking_task_processor, |
std::shared_ptr< grpc::ChannelCredentials > | channel_credentials, | ||
const std::string & | endpoint ) |
Create a new gRPC channel (connection pool) for the endpoint.
Channel creation is expensive, reuse channels if possible.
Each channel is fully thread-safe: it can be used across multiple threads, possibly from multiple clients and using multiple CompletionQueue
instances at the same time.
blocking_task_processor | task processor for blocking channel creation |
channel_credentials | channel credentials |
endpoint | string host:port |
bool ugrpc::client::TryWaitForConnected | ( | Client & | client, |
engine::Deadline | deadline, | ||
engine::TaskProcessor & | blocking_task_processor ) |
Wait until the channel state of client
is READY
. If the current state is already READY
, returns true
immediately. In case of multiple underlying channels, waits for all of them.
true
if the state changed before deadline
expired Definition at line 62 of file channels.hpp.