Struct message_io::network::Network[][src]

pub struct Network { /* fields omitted */ }

Network is in charge of managing all the connections transparently. It transforms raw data from the network into message events and vice versa, and manages the different adapters for you.

Implementations

impl Network[src]

pub fn new(
    event_callback: impl Fn(Endpoint, AdapterEvent<'_>) + Send + 'static
) -> Network
[src]

Creates a new Network instance. The user must register an event_callback that can be called each time an internal adapter generates an event. This function is used when the user needs to perform some action over the raw data comming from an adapter, without using a EventQueue. If you will want to use an EventQueue you can use Network::split() or Network::split_and_map()

pub fn split() -> (EventQueue<NetEvent>, Network)[src]

Creates a network instance with an associated EventQueue where the input network events can be read. If you want to create a EventQueue that manages more events than NetEvent, You can create use instead Network::split_and_map(). This function shall be used if you only want to manage NetEvent in the EventQueue.

pub fn split_and_map<E: Send + 'static>(
    map: impl Fn(NetEvent) -> E + Send + 'static
) -> (EventQueue<E>, Network)
[src]

Creates a network instance with an associated EventQueue where the input network events can be read. This function, allows to map the NetEvent to something you use in your application, allowing to mix the NetEvent with your own events.

pub fn connect(
    &mut self,
    transport: Transport,
    addr: impl ToRemoteAddr
) -> Result<(Endpoint, SocketAddr)>
[src]

Creates a connection to the specific address. The endpoint, an identified of the new connection, will be returned. If the connection can not be performed (e.g. the address is not reached) the corresponding IO error is returned. This function blocks until the resource has been connected and is ready to use.

pub fn listen(
    &mut self,
    transport: Transport,
    addr: impl ToSocketAddrs
) -> Result<(ResourceId, SocketAddr)>
[src]

Listen messages from specified transport. The giver address will be used as interface and listening port. If the port can be opened, a ResourceId identifying the listener is returned along with the local address, or an error if not. The address is returned despite you passed as parameter because when a 0 port is specified, the OS will give a value. If the protocol is UDP and the address is Ipv4 in the range of multicast ips (from 224.0.0.0 to 239.255.255.255) it will be listening is multicast mode.

pub fn remove(&mut self, resource_id: ResourceId) -> Option<()>[src]

Remove a network resource. Returns None if the resource id doesn’t exists. This is used to remove resources that the program has been created explicitely, as connection or listeners. Resources of endpoints generated by listening in connection oriented transports can also be removed to close the connection. Note: UDP endpoints generated by listening from UDP shared the resource. This means that there is no resource to remove because there is no connection itself to close (‘there is no spoon’).

pub fn send(&mut self, endpoint: Endpoint, data: &[u8]) -> SendStatus[src]

Send the data message thought the connection represented by the given endpoint. The funcion panics if the endpoint do not exists in the Network. If the endpoint disconnects during the sending, a RemoveEndpoint is generated. A SendStatus is returned with the information about the sending.

Auto Trait Implementations

impl !RefUnwindSafe for Network

impl Send for Network

impl !Sync for Network

impl Unpin for Network

impl !UnwindSafe for Network

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,