pub trait NetworkContext {
    fn send(
        &self,
        peer: PeerId,
        packet_id: PacketId,
        data: Vec<u8>
    ) -> Result<(), Error>;
fn send_protocol(
        &self,
        protocol: ProtocolId,
        peer: PeerId,
        packet_id: PacketId,
        data: Vec<u8>
    ) -> Result<(), Error>;
fn respond(&self, packet_id: PacketId, data: Vec<u8>) -> Result<(), Error>;
fn disable_peer(&self, peer: PeerId);
fn disconnect_peer(&self, peer: PeerId);
fn is_expired(&self) -> bool;
fn register_timer(
        &self,
        token: TimerToken,
        delay: Duration
    ) -> Result<(), Error>;
fn peer_client_version(&self, peer: PeerId) -> ClientVersion;
fn session_info(&self, peer: PeerId) -> Option<SessionInfo>;
fn protocol_version(&self, protocol: ProtocolId, peer: PeerId) -> Option<u8>;
fn subprotocol_name(&self) -> ProtocolId;
fn is_reserved_peer(&self, peer: PeerId) -> bool; }
Expand description

IO access point. This is passed to all IO handlers and provides an interface to the IO subsystem.

Required methods

Send a packet over the network to another peer.

Send a packet over the network to another peer using specified protocol.

Respond to a current network message. Panics if no there is no packet in the context. If the session is expired returns nothing.

Disconnect a peer and prevent it from connecting again.

Disconnect peer. Reconnect can be attempted later.

Check if the session is still active.

Register a new IO timer. ‘IoHandler::timeout’ will be called with the token.

Returns peer identification string

Returns information on p2p session

Returns max version for a given protocol.

Returns this object’s subprotocol name.

Returns whether the given peer ID is a reserved peer.

Implementations on Foreign Types

Implementors