pub struct SyncChannel<T: SyncTransport> { /* private fields */ }Expand description
Shared, single-threaded connection. Clones share one HTTP/2 session.
Connections stay on their owning OS thread.
use grpc::{SyncChannel, core::transport::MemoryPipe};
fn require_send<T: Send>() {}
require_send::<SyncChannel<MemoryPipe>>();use grpc::{SyncChannel, core::transport::MemoryPipe};
fn require_sync<T: Sync>() {}
require_sync::<SyncChannel<MemoryPipe>>();Implementations§
Source§impl<T: SyncTransport + 'static> SyncChannel<T>
impl<T: SyncTransport + 'static> SyncChannel<T>
Sourcepub fn new(transport: T) -> Result<Self, Status>
pub fn new(transport: T) -> Result<Self, Status>
Creates a channel using standard connection defaults.
§Errors
Returns invalid configuration or transport/session initialization failures.
Sourcepub fn with_config(transport: T, config: ChannelConfig) -> Result<Self, Status>
pub fn with_config(transport: T, config: ChannelConfig) -> Result<Self, Status>
Creates a nonblocking session; blocking RPC methods wait on the caller thread.
§Errors
Returns invalid authority/scheme, transport or session initialization errors.
Sourcepub fn unary<C, Req, Resp>(
&mut self,
path: &str,
req: &Req,
codec: &mut C,
options: CallOptions,
) -> Result<(Resp, Metadata, Metadata), Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp>,
pub fn unary<C, Req, Resp>(
&mut self,
path: &str,
req: &Req,
codec: &mut C,
options: CallOptions,
) -> Result<(Resp, Metadata, Metadata), Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp>,
Performs a unary RPC, returning its response and both metadata collections.
A mutable codec also supports stateful serializers and generated service adapters.
§Errors
Returns transport, codec, deadline, remote status or response cardinality errors.
Sourcepub fn call_unary<C, Req, Resp>(
&mut self,
path: &str,
req: &Req,
codec: &mut C,
) -> Result<Resp, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp>,
pub fn call_unary<C, Req, Resp>(
&mut self,
path: &str,
req: &Req,
codec: &mut C,
) -> Result<Resp, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp>,
Sourcepub fn server_streaming<C, Req, Resp>(
&mut self,
path: &str,
req: &Req,
codec: C,
options: CallOptions,
) -> Result<ServerStreamingCall<Resp>, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp> + 'static,
Req: 'static,
Resp: 'static,
pub fn server_streaming<C, Req, Resp>(
&mut self,
path: &str,
req: &Req,
codec: C,
options: CallOptions,
) -> Result<ServerStreamingCall<Resp>, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp> + 'static,
Req: 'static,
Resp: 'static,
Starts one request followed by a response stream.
§Errors
Returns setup, encoding or request submission failures.
Sourcepub fn client_streaming<C, Req, Resp>(
&mut self,
path: &str,
codec: C,
options: CallOptions,
) -> Result<ClientStreamingCall<Req, Resp>, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp> + 'static,
Req: 'static,
Resp: 'static,
pub fn client_streaming<C, Req, Resp>(
&mut self,
path: &str,
codec: C,
options: CallOptions,
) -> Result<ClientStreamingCall<Req, Resp>, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp> + 'static,
Req: 'static,
Resp: 'static,
Starts a request stream with one terminal response.
§Errors
Returns invalid options or session submission failures.
Sourcepub fn bidi_streaming<C, Req, Resp>(
&mut self,
path: &str,
codec: C,
options: CallOptions,
) -> Result<BidiStreamingCall<Req, Resp>, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp> + 'static,
Req: 'static,
Resp: 'static,
pub fn bidi_streaming<C, Req, Resp>(
&mut self,
path: &str,
codec: C,
options: CallOptions,
) -> Result<BidiStreamingCall<Req, Resp>, Status>where
C: Codec<EncodeItem = Req, DecodeItem = Resp> + 'static,
Req: 'static,
Resp: 'static,
Starts independent request and response streams.
§Errors
Returns invalid options or session submission failures.
Source§impl SyncChannel<TcpTransport>
impl SyncChannel<TcpTransport>
Sourcepub fn connect(address: impl ToSocketAddrs) -> Result<Self, Status>
pub fn connect(address: impl ToSocketAddrs) -> Result<Self, Status>
Connects a TCP channel with authority derived from the peer address.
§Errors
Returns connection, address or session initialization errors.
Sourcepub fn connect_tls(
address: impl ToSocketAddrs,
config: &TlsClientConfig,
server_name: &str,
) -> Result<SyncChannel<impl SyncTransport + 'static>, Status>
pub fn connect_tls( address: impl ToSocketAddrs, config: &TlsClientConfig, server_name: &str, ) -> Result<SyncChannel<impl SyncTransport + 'static>, Status>
Connects and verifies an HTTP/2 TLS session before creating the channel.
§Errors
Returns invalid server name, TCP, certificate, ALPN or handshake errors.