31#if NETWORK_GRPC_OFFICIAL
73#if NETWORK_GRPC_OFFICIAL
80auto from_grpc_status(const ::grpc::Status& status) ->
grpc_status;
87auto to_grpc_status(
const grpc_status& status) -> ::grpc::Status;
96auto result_to_grpc_status(
const Result<T>& result) -> ::grpc::Status;
103auto void_result_to_grpc_status(
const VoidResult& result) -> ::grpc::Status;
113auto grpc_status_to_result(const ::grpc::Status& status, T&& value) ->
Result<T>;
120auto grpc_status_to_void_result(const ::grpc::Status& status) ->
VoidResult;
134auto map_grpc_code_to_error(
int code) -> int;
141auto map_status_to_grpc_code(
status_code code) -> int;
154auto set_deadline(::grpc::ClientContext* ctx,
155 std::chrono::system_clock::time_point deadline) -> void;
162template<
typename Rep,
typename Period>
163auto set_timeout(::grpc::ClientContext* ctx,
164 std::chrono::duration<Rep, Period> timeout) ->
void
166 set_deadline(ctx, std::chrono::system_clock::now() + timeout);
174auto get_remaining_time(const ::grpc::ServerContext* ctx)
175 -> std::optional<std::chrono::milliseconds>;
187auto create_channel(
const std::string& target,
188 const channel_credentials_config& config)
189 -> std::shared_ptr<::grpc::Channel>;
196auto create_insecure_channel(
const std::string& target)
197 -> std::shared_ptr<::grpc::Channel>;
205auto wait_for_channel_ready(
const std::shared_ptr<::grpc::Channel>& channel,
206 std::chrono::milliseconds timeout) -> bool;
216class official_server_writer;
222class official_server_reader;
228class official_server_reader_writer;
238class official_client_reader;
244class official_client_writer;
250class official_client_reader_writer;
gRPC message framing and serialization.
gRPC protocol implementation
status_code
gRPC status codes (as defined in grpc/status.h)
Result< std::monostate > VoidResult
Network-specific error and result type definitions.
gRPC status codes and error representation.
Configuration for gRPC channel credentials.
std::optional< std::string > client_certificate
Client certificate for mutual TLS (PEM format)
std::string root_certificates
Root certificates for TLS (PEM format)
bool insecure
Use insecure credentials (no TLS)
std::optional< std::string > client_key
Client private key for mutual TLS (PEM format)
gRPC status with code, message, and optional details