MessagePassing

Trait MessagePassing 

Source
pub trait MessagePassing: Send + Sync {
    // Required methods
    fn send_message(
        &self,
        target: NodeId,
        message: DistributedMessage,
    ) -> BoxFuture<'_, Result<()>>;
    fn receive_message(&self) -> BoxFuture<'_, Result<DistributedMessage>>;
    fn broadcast_message(
        &self,
        message: DistributedMessage,
    ) -> BoxFuture<'_, Result<()>>;
    fn send_and_receive(
        &self,
        target: NodeId,
        message: DistributedMessage,
    ) -> BoxFuture<'_, Result<DistributedMessage>>;
    fn has_pending_messages(&self) -> BoxFuture<'_, Result<bool>>;
    fn pending_message_count(&self) -> BoxFuture<'_, Result<usize>>;
    fn flush_outgoing(&self) -> BoxFuture<'_, Result<()>>;
}
Expand description

Core trait for message-passing communication in distributed systems

Required Methods§

Source

fn send_message( &self, target: NodeId, message: DistributedMessage, ) -> BoxFuture<'_, Result<()>>

Send a message to a specific node

Source

fn receive_message(&self) -> BoxFuture<'_, Result<DistributedMessage>>

Receive the next available message

Source

fn broadcast_message( &self, message: DistributedMessage, ) -> BoxFuture<'_, Result<()>>

Broadcast a message to all nodes in the cluster

Source

fn send_and_receive( &self, target: NodeId, message: DistributedMessage, ) -> BoxFuture<'_, Result<DistributedMessage>>

Send a message and wait for a response

Source

fn has_pending_messages(&self) -> BoxFuture<'_, Result<bool>>

Check if any messages are available

Source

fn pending_message_count(&self) -> BoxFuture<'_, Result<usize>>

Get the number of pending messages

Source

fn flush_outgoing(&self) -> BoxFuture<'_, Result<()>>

Flush all pending outgoing messages

Implementors§