[][src]Struct tcb::vv::middleware::version_vector::VV

pub struct VV {
    pub V: VersionVector,
    pub R: VersionVector,
    pub DQ: Vec<QueueNode>,
    pub M: Vec<VersionVector>,
    pub M_entry_row_num: VersionVector,
    pub SV: VersionVector,
    pub SMap: HashMap<Dot, StableDot>,
    pub ctr: usize,
    pub peer_index: usize,
    pub client: Sender<MiddlewareClient>,
    pub configuration: Arc<Configuration>,
    pub peer_number: usize,
}

Implementation of the causal delivery algorithm.

Fields

V: VersionVectorR: VersionVectorDQ: Vec<QueueNode>M: Vec<VersionVector>M_entry_row_num: VersionVectorSV: VersionVectorSMap: HashMap<Dot, StableDot>ctr: usizepeer_index: usizeclient: Sender<MiddlewareClient>configuration: Arc<Configuration>peer_number: usize

Implementations

impl VV[src]

pub fn new(
    peer_number: usize,
    peer_index: usize,
    client: Sender<MiddlewareClient>,
    configuration: Arc<Configuration>
) -> Self
[src]

Builds a new VV struct that implements the causal delivery algorithm.

Arguments

peer_number - Number of peers in the group.

peer_index - Local peer's globally unique id.

client - Channel between the Middleware and the Peer that will be used to send delivered/stable messages to Peer.

configuration - Middleware's configuration file.

pub fn dequeue(&mut self, message: Message)[src]

Handler for a message sent by the Client to be broadcast. This function adds a message to the causal graph.

Arguments

message - Message received from the Client.

pub fn receive(&mut self, j: usize, message: Message)[src]

Handles a message received from a peer via broadcast.

Arguments

j - Sender id

message - Message received from a peer in the group.

Auto Trait Implementations

impl RefUnwindSafe for VV

impl Send for VV

impl Sync for VV

impl Unpin for VV

impl UnwindSafe for VV

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, 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.