Struct dfir_rs::util::simulation::Fleet
source · pub struct Fleet { /* private fields */ }
Expand description
A fleet is a collection of hosts in the simulation. It is responsible for running the simulation and processing network messages.
Implementations§
source§impl Fleet
impl Fleet
sourcepub fn add_host<F>(&mut self, name: String, transducer_builder: F) -> &Host
pub fn add_host<F>(&mut self, name: String, transducer_builder: F) -> &Host
Adds a new host to the fleet with the given name and transducer.
sourcepub fn get_host_mut(&mut self, name: &str) -> Option<&mut Host>
pub fn get_host_mut(&mut self, name: &str) -> Option<&mut Host>
Get a host by name.
sourcepub async fn run_single_tick_all_hosts(&mut self) -> bool
pub async fn run_single_tick_all_hosts(&mut self) -> bool
Advance time on all hosts by a single tick. Returns true if any work was done by any of the hosts. After ticking once on all the hosts, the method also processes network messages.
The order in which the ticks are processed is not guaranteed.
sourcepub async fn process_network(&mut self)
pub async fn process_network(&mut self)
Process all network messages in the simulation. This method picks up all messages from all outboxes on all hosts and delivers them to the corresponding inboxes on the destination.
The order in which the messages are processed is not guaranteed.
sourcepub async fn run_until_quiescent(&mut self)
pub async fn run_until_quiescent(&mut self)
Tick all hosts until all hosts are quiescent (i.e. no new work is done by any host). Ticking is done in “rounds”. At each round, all hosts are ticked once and then network messages are processed. The process continues until no work is done by any host in a round.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Fleet
impl !RefUnwindSafe for Fleet
impl !Send for Fleet
impl !Sync for Fleet
impl Unpin for Fleet
impl !UnwindSafe for Fleet
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more