pub struct BroadcastNetwork {
broadcasters: HashMap<String, Broadcaster>,
message_queue: VecDeque<(String, String, BroadcastMessage)>,
}Expand description
Simulates a network of broadcasters for testing.
Fields§
§broadcasters: HashMap<String, Broadcaster>Broadcasters indexed by replica ID.
message_queue: VecDeque<(String, String, BroadcastMessage)>Message queue: (from, to, message).
Implementations§
Source§impl BroadcastNetwork
impl BroadcastNetwork
Sourcepub fn fully_connected(n: usize) -> Self
pub fn fully_connected(n: usize) -> Self
Create a fully connected network of n replicas.
Sourcefn collect_send_events(&mut self, from: &str)
fn collect_send_events(&mut self, from: &str)
Collect send events and add to message queue. Only extracts Send events, leaving HeadsReceived events in place.
Sourcepub fn deliver_one(&mut self) -> bool
pub fn deliver_one(&mut self) -> bool
Deliver the next message in the queue.
Sourcepub fn deliver_all(&mut self)
pub fn deliver_all(&mut self)
Deliver all pending messages.
Sourcepub fn broadcaster(&self, id: &str) -> Option<&Broadcaster>
pub fn broadcaster(&self, id: &str) -> Option<&Broadcaster>
Get a broadcaster by replica ID.
Sourcepub fn broadcaster_mut(&mut self, id: &str) -> Option<&mut Broadcaster>
pub fn broadcaster_mut(&mut self, id: &str) -> Option<&mut Broadcaster>
Get a mutable broadcaster by replica ID.
Sourcepub fn received_heads(&mut self, id: &str) -> Vec<Hash>
pub fn received_heads(&mut self, id: &str) -> Vec<Hash>
Get all received heads for a replica.
Sourcepub fn pending_messages(&self) -> usize
pub fn pending_messages(&self) -> usize
Check how many messages are pending.
Auto Trait Implementations§
impl Freeze for BroadcastNetwork
impl RefUnwindSafe for BroadcastNetwork
impl Send for BroadcastNetwork
impl Sync for BroadcastNetwork
impl Unpin for BroadcastNetwork
impl UnwindSafe for BroadcastNetwork
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more