SimGrid
3.21
Versatile Simulation of Distributed Systems
|
SURF model interface class.
A model is an object which handle the interactions between its Resources and its Actions
#include <Model.hpp>
Public Types | |
enum | UpdateAlgo { UpdateAlgo::FULL, UpdateAlgo::LAZY } |
Possible update mechanisms. More... | |
Public Member Functions | |
Model (Model::UpdateAlgo algo) | |
virtual | ~Model () |
Action::StateSet * | get_inited_action_set () const |
Get the set of actions in inited state. More... | |
Action::StateSet * | get_started_action_set () const |
Get the set of actions in started state. More... | |
Action::StateSet * | get_failed_action_set () const |
Get the set of actions in failed state. More... | |
Action::StateSet * | get_finished_action_set () const |
Get the set of actions in finished state. More... | |
Action::StateSet * | get_ignored_action_set () const |
Get the set of actions in ignored state. More... | |
Action::ModifiedSet * | get_modified_set () const |
Get the set of modified actions. More... | |
lmm::System * | get_maxmin_system () const |
Get the maxmin system of the current Model. More... | |
void | set_maxmin_system (lmm::System *system) |
Set the maxmin system of the current Model. More... | |
UpdateAlgo | get_update_algorithm () const |
Get the update algorithm of the current Model. More... | |
ActionHeap & | get_action_heap () |
Get Action heap. More... | |
virtual double | next_occuring_event (double now) |
Share the resources between the actions. More... | |
virtual double | next_occuring_event_lazy (double now) |
virtual double | next_occuring_event_full (double now) |
Action * | extract_done_action () |
Action * | extract_failed_action () |
virtual void | update_actions_state (double now, double delta) |
Update action to the current time. More... | |
virtual void | update_actions_state_lazy (double now, double delta) |
virtual void | update_actions_state_full (double now, double delta) |
virtual bool | next_occuring_event_is_idempotent () |
Returns whether this model have an idempotent share_resource() More... | |
|
strong |
Possible update mechanisms.
|
explicit |
|
virtual |
|
inline |
Get the set of actions in inited state.
|
inline |
Get the set of actions in started state.
|
inline |
Get the set of actions in failed state.
|
inline |
Get the set of actions in finished state.
|
inline |
Get the set of actions in ignored state.
Action::ModifiedSet* simgrid::kernel::resource::Model::get_modified_set | ( | ) | const |
Get the set of modified actions.
|
inline |
Get the maxmin system of the current Model.
|
inline |
Set the maxmin system of the current Model.
|
inline |
Get the update algorithm of the current Model.
|
inline |
Get Action heap.
|
virtual |
Share the resources between the actions.
now | The current time of the simulation |
|
virtual |
|
virtual |
Action* simgrid::kernel::resource::Model::extract_done_action | ( | ) |
Action* simgrid::kernel::resource::Model::extract_failed_action | ( | ) |
|
virtual |
Update action to the current time.
now | The current time of the simulation |
delta | The delta of time since the last update |
|
virtual |
|
virtual |
|
inlinevirtual |
Returns whether this model have an idempotent share_resource()
The only model that is not is NS3: computing the next timestamp moves the model up to that point, so we need to call it only when the next timestamp of other sources is computed.