pub trait ConnectedNetwork<K: SignatureKey + 'static>: Clone + Send + Sync + 'static {
Show 14 methods // Required methods fn pause(&self); fn resume(&self); fn wait_for_ready<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn shut_down<'a, 'b>(&'a self) -> BoxSyncFuture<'b, ()> where Self: 'b, 'a: 'b; fn broadcast_message<'life0, 'async_trait>( &'life0 self, message: Vec<u8>, topic: Topic, broadcast_delay: BroadcastDelay ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn da_broadcast_message<'life0, 'async_trait>( &'life0 self, message: Vec<u8>, recipients: BTreeSet<K>, broadcast_delay: BroadcastDelay ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn direct_message<'life0, 'async_trait>( &'life0 self, message: Vec<u8>, recipient: K ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn recv_message<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, NetworkError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; // Provided methods fn vid_broadcast_message<'life0, 'async_trait>( &'life0 self, messages: HashMap<K, Vec<u8>> ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn request_data<'life0, 'life1, 'async_trait, TYPES>( &'life0 self, _request: Vec<u8>, _recipient: &'life1 K ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, NetworkError>> + Send + 'async_trait>> where TYPES: 'async_trait + NodeType, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn spawn_request_receiver_task<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Option<Receiver<(Vec<u8>, NetworkMsgResponseChannel<Vec<u8>>)>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait { ... } fn queue_node_lookup( &self, _view_number: ViewNumber, _pk: K ) -> Result<(), TrySendError<Option<(ViewNumber, K)>>> { ... } fn update_view<'a, 'life0, 'async_trait, TYPES>( &'a self, _view: u64, _membership: &'life0 TYPES::Membership ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where TYPES: NodeType<SignatureKey = K> + 'a + 'async_trait, Self: 'async_trait, 'a: 'async_trait, 'life0: 'async_trait { ... } fn is_primary_down(&self) -> bool { ... }
}
Expand description

represents a networking implmentration exposes low level API for interacting with a network intended to be implemented for libp2p, the centralized server, and memory network

Required Methods§

source

fn pause(&self)

Pauses the underlying network

source

fn resume(&self)

Resumes the underlying network

source

fn wait_for_ready<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Blocks until the network is successfully initialized

source

fn shut_down<'a, 'b>(&'a self) -> BoxSyncFuture<'b, ()>
where Self: 'b, 'a: 'b,

Blocks until the network is shut down

source

fn broadcast_message<'life0, 'async_trait>( &'life0 self, message: Vec<u8>, topic: Topic, broadcast_delay: BroadcastDelay ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

broadcast message to some subset of nodes blocking

source

fn da_broadcast_message<'life0, 'async_trait>( &'life0 self, message: Vec<u8>, recipients: BTreeSet<K>, broadcast_delay: BroadcastDelay ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

broadcast a message only to a DA committee blocking

source

fn direct_message<'life0, 'async_trait>( &'life0 self, message: Vec<u8>, recipient: K ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sends a direct message to a specific node blocking

source

fn recv_message<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, NetworkError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Receive one or many messages from the underlying network.

§Errors

If there is a network-related failure.

Provided Methods§

source

fn vid_broadcast_message<'life0, 'async_trait>( &'life0 self, messages: HashMap<K, Vec<u8>> ) -> Pin<Box<dyn Future<Output = Result<(), NetworkError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

send messages with vid shares to its recipients blocking

source

fn request_data<'life0, 'life1, 'async_trait, TYPES>( &'life0 self, _request: Vec<u8>, _recipient: &'life1 K ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, NetworkError>> + Send + 'async_trait>>
where TYPES: 'async_trait + NodeType, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Ask request the network for some data. Returns the request ID for that data, The ID returned can be used for cancelling the request

source

fn spawn_request_receiver_task<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Option<Receiver<(Vec<u8>, NetworkMsgResponseChannel<Vec<u8>>)>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Spawn a request task in the given network layer. If it supports Request and responses it will return the receiving end of a channel. Requests the network receives will be sent over this channel along with a return channel to send the response back to.

Returns `None`` if network does not support handling requests

source

fn queue_node_lookup( &self, _view_number: ViewNumber, _pk: K ) -> Result<(), TrySendError<Option<(ViewNumber, K)>>>

queues lookup of a node

§Errors

Does not error.

source

fn update_view<'a, 'life0, 'async_trait, TYPES>( &'a self, _view: u64, _membership: &'life0 TYPES::Membership ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where TYPES: NodeType<SignatureKey = K> + 'a + 'async_trait, Self: 'async_trait, 'a: 'async_trait, 'life0: 'async_trait,

Update view can be used for any reason, but mostly it’s for canceling tasks, and looking up the address of the leader of a future view.

source

fn is_primary_down(&self) -> bool

Is primary network down? Makes sense only for combined network

Object Safety§

This trait is not object safe.

Implementors§