[−][src]Struct conec::client::Client
The Client end of a connection to the Coordinator
See library documentation for an example of constructing a Client.
Implementations
impl Client
[src]
pub async fn new(
config: ClientConfig
) -> Result<(Self, IncomingStreams), ClientError>
[src]
config: ClientConfig
) -> Result<(Self, IncomingStreams), ClientError>
Construct a Client and connect to the Coordinator
pub fn new_proxied_stream(&mut self, to: String) -> ConnectingStreamⓘNotable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
[src]
Notable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
Open a new stream to another client, proxied through the Coordinator
pub fn new_direct_stream(&mut self, to: String) -> ConnectingStreamⓘNotable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
[src]
Notable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
Open a new stream to another client via a direct channel.
It is only possible to open another stream to a client for which there is an open channel, either because that client connected to this one or because this client called Client::new_channel.
pub fn new_stream_with_id(&self, to: String, sid: StreamId) -> ConnectingStreamⓘNotable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
[src]
Notable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
Open a new proxied stream to another client with an explicit stream-id. This can be useful for coordination in applications where peers share multiple data streams (e.g., clients might agree that sid 1 is for values of type T1, sid 2 is for values of type T2, etc.).
The sid
argument must be different for every call to this function for a given Client object.
If mixing calls to this function with calls to Client::new_proxied_stream or
Client::new_direct_stream, avoid using sid >= 1<<63
, since these values are
used automatically by those functions.
pub fn new_channel(&mut self, to: String) -> ConnectingChannelⓘNotable traits for ConnectingChannel
impl Future for ConnectingChannel type Output = Result<(), NewChannelError>;
[src]
Notable traits for ConnectingChannel
impl Future for ConnectingChannel type Output = Result<(), NewChannelError>;
Open a new channel directly to another client
Note that a client that is not listening for new channels can nevertheless open a new channel to one that is listening.
pub fn close_channel(&self, peer: String) -> ClosingChannelⓘNotable traits for ClosingChannel
impl Future for ClosingChannel type Output = Result<(), ClosingChannelError>;
[src]
Notable traits for ClosingChannel
impl Future for ClosingChannel type Output = Result<(), ClosingChannelError>;
Close an open channel
Currently, attempting to re-open a channel after closing causes what appears to be a transport error. XXX(#1)
pub fn new_broadcast(&mut self, chan: String) -> ConnectingStreamⓘNotable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
[src]
Notable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
Open or connect to a broadcast stream
A broadcast stream is a many-to-many stream proxied through the Coordinator. Any Client who knows the stream's name can send to and receive from it.
Broadcast streams may suffer from the slow receiver problem: senders cannot make progress until the slowest receiver drains its incoming buffer. The NonblockingInStream adapter may help to address this issue.
pub fn new_stream(&mut self, to: String) -> ConnectingStreamⓘNotable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
[src]
Notable traits for ConnectingStream
impl Future for ConnectingStream type Output = Result<(OutStream, InStream), ConnectingStreamError>;
Open a new stream to another client
This function first attempts to open a direct stream to the client and then, if that fails, falls back to a proxied stream through the Coordinator.
pub fn get_broadcast_count(&mut self, chan: String) -> BroadcastCountingⓘNotable traits for BroadcastCounting
impl Future for BroadcastCounting type Output = Result<(usize, usize), BroadcastCountingError>;
[src]
Notable traits for BroadcastCounting
impl Future for BroadcastCounting type Output = Result<(usize, usize), BroadcastCountingError>;
Count the current members of a broadcast channel
Request from Coordinator the current count of senders and receivers on
a given broadcast channel. The result is a future that, when forced,
returns either an error or the tuple (#senders, #receivers)
.
Auto Trait Implementations
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,