pub struct SocketClient<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> { /* private fields */ }
Expand description

The handle to define, start and shutdown a Reactive Client for Socket Connections BUFFERED_MESSAGES_PER_PEER_COUNT is the number of messages that may be produced ahead of sending (to the server) as well as the number of messages that this client may accumulate from the server before denying new ones

Implementations§

source§

impl<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> SocketClient<BUFFERED_MESSAGES_PER_PEER_COUNT>

source

pub async fn spawn_responsive_processor<ServerMessages: ReactiveMessagingDeserializer<ServerMessages> + Send + Sync + PartialEq + Debug + 'static, ClientMessages: ReactiveMessagingSerializer<ClientMessages> + ResponsiveMessages<ClientMessages> + Send + Sync + PartialEq + Debug + 'static, ConnectionEventsCallbackFuture: Future<Output = ()> + Send, ClientStreamType: Stream<Item = ClientMessages> + Send + 'static, IntoString: Into<String>>( ip: IntoString, port: u16, connection_events_callback: impl Fn(ConnectionEvent<BUFFERED_MESSAGES_PER_PEER_COUNT, ClientMessages>) -> ConnectionEventsCallbackFuture + Send + Sync + 'static, processor_stream_builder: impl Fn(String, u16, Arc<Peer<BUFFERED_MESSAGES_PER_PEER_COUNT, ClientMessages>>, ProcessorRemoteStreamType<BUFFERED_MESSAGES_PER_PEER_COUNT, ServerMessages>) -> ClientStreamType + Send + Sync + 'static ) -> Result<Self, Box<dyn Error + Sync + Send>>

Spawns a task to connect to the server @ ip & port and returns, immediately, an object through which the caller may inquire some stats (if opted in) and request the client to disconnect.
The given dialog_processor will produce non-futures & non-fallibles ClientMessages that will be sent to the server.

source

pub async fn spawn_unresponsive_processor<ServerMessages: ReactiveMessagingDeserializer<ServerMessages> + Send + Sync + PartialEq + Debug + 'static, ClientMessages: ReactiveMessagingSerializer<ClientMessages> + Send + Sync + PartialEq + Debug + 'static, OutputStreamItemsType: Send + Sync + Debug + 'static, OutputStreamType: Stream<Item = OutputStreamItemsType> + Send + 'static, ConnectionEventsCallbackFuture: Future<Output = ()> + Send, IntoString: Into<String>>( ip: IntoString, port: u16, connection_events_callback: impl Fn(ConnectionEvent<BUFFERED_MESSAGES_PER_PEER_COUNT, ClientMessages>) -> ConnectionEventsCallbackFuture + Send + Sync + 'static, processor_stream_builder: impl Fn(String, u16, Arc<Peer<BUFFERED_MESSAGES_PER_PEER_COUNT, ClientMessages>>, ProcessorRemoteStreamType<BUFFERED_MESSAGES_PER_PEER_COUNT, ServerMessages>) -> OutputStreamType + Send + Sync + 'static ) -> Result<Self, Box<dyn Error + Sync + Send>>

Spawns a task to connect to the server @ ip & port and returns, immediately, an object through which the caller may inquire some stats (if opted in) and request the client to disconnect.
The given dialog_processor will produce non-futures & non-fallibles items that won’t be sent to the server – if you want the processor to produce “answer messages” to the server, see SocketClient::spawn_responsive_processor().

source

pub fn is_connected(&self) -> bool

source

pub fn shutdown(self, timeout_ms: u32) -> Result<(), Box<dyn Error>>

Trait Implementations§

source§

impl<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> Debug for SocketClient<BUFFERED_MESSAGES_PER_PEER_COUNT>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> !RefUnwindSafe for SocketClient<BUFFERED_MESSAGES_PER_PEER_COUNT>

§

impl<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> Send for SocketClient<BUFFERED_MESSAGES_PER_PEER_COUNT>

§

impl<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> Sync for SocketClient<BUFFERED_MESSAGES_PER_PEER_COUNT>

§

impl<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> Unpin for SocketClient<BUFFERED_MESSAGES_PER_PEER_COUNT>

§

impl<const BUFFERED_MESSAGES_PER_PEER_COUNT: usize> !UnwindSafe for SocketClient<BUFFERED_MESSAGES_PER_PEER_COUNT>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.