auto jupiter = e.host_by_name("Jupiter");
// Display the details on vetoed activities
- simgrid::s4u::Activity::on_veto.connect([](simgrid::s4u::Activity& a) {
+ simgrid::s4u::Activity::on_veto.connect([](const simgrid::s4u::Activity& a) {
XBT_INFO("Activity '%s' vetoed. Dependencies: %s; Ressources: %s", a.get_cname(),
(a.dependencies_solved() ? "solved" : "NOT solved"), (a.is_assigned() ? "assigned" : "NOT assigned"));
});
simgrid::s4u::Activity::on_completion.connect([](simgrid::s4u::Activity& activity) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
if (exec != nullptr)
XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec->get_cname(), exec->get_start_time(),
exec->get_finish_time());
- auto* comm = dynamic_cast<simgrid::s4u::Comm*>(&activity);
+ const auto* comm = dynamic_cast<simgrid::s4u::Comm*>(&activity);
if (comm != nullptr)
XBT_INFO("Activity '%s' is complete", comm->get_cname());
});
auto* faulty = e.host_by_name("Faulty Host");
auto* safe = e.host_by_name("Safe Host");
sg4::Activity::on_completion.connect([](sg4::Activity& activity) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
if (exec == nullptr) // Only Execs are concerned here
return;
if (exec->get_state() == sg4::Activity::State::FINISHED)
XBT_INFO("-------------- Summary of executed schedule ------------------");
for (const auto& a : dag) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(a.get());
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(a.get());
if (exec != nullptr) {
XBT_INFO("[%f->%f] '%s' executed on %s", exec->get_start_time(), exec->get_finish_time(), exec->get_cname(),
exec->get_host()->get_cname());
}
- auto* comm = dynamic_cast<simgrid::s4u::Comm*>(a.get());
+ const auto* comm = dynamic_cast<simgrid::s4u::Comm*>(a.get());
if (comm != nullptr) {
XBT_INFO("[%f->%f] '%s' transferred from %s to %s", comm->get_start_time(), comm->get_finish_time(),
comm->get_cname(), comm->get_source()->get_cname(), comm->get_destination()->get_cname());
auto carl = e.host_by_name("carl");
// Display the details on vetoed activities
- simgrid::s4u::Activity::on_veto.connect([](simgrid::s4u::Activity& a) {
+ simgrid::s4u::Activity::on_veto.connect([](const simgrid::s4u::Activity& a) {
XBT_INFO("Activity '%s' vetoed. Dependencies: %s; Ressources: %s", a.get_cname(),
(a.dependencies_solved() ? "solved" : "NOT solved"), (a.is_assigned() ? "assigned" : "NOT assigned"));
});
simgrid::s4u::Activity::on_completion.connect([](simgrid::s4u::Activity& activity) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
if (exec == nullptr) // Only Execs are concerned here
return;
XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec->get_cname(), exec->get_start_time(),
auto fafard = e.host_by_name("Fafard");
// Display the details on vetoed activities
- simgrid::s4u::Activity::on_veto.connect([](simgrid::s4u::Activity& a) {
- auto& exec = static_cast<simgrid::s4u::Exec&>(a); // all activities are execs in this example
+ simgrid::s4u::Activity::on_veto.connect([](const simgrid::s4u::Activity& a) {
+ const auto& exec = static_cast<const simgrid::s4u::Exec&>(a); // all activities are execs in this example
XBT_INFO("Activity '%s' vetoed. Dependencies: %s; Ressources: %s", exec.get_cname(),
(exec.dependencies_solved() ? "solved" : "NOT solved"),
});
simgrid::s4u::Activity::on_completion.connect([](simgrid::s4u::Activity& activity) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
if (exec == nullptr) // Only Execs are concerned here
return;
XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec->get_cname(), exec->get_start_time(),
/** Set the source and destination of communications that bypass the mailbox mechanism */
CommPtr set_source(Host* from);
- Host* get_source() { return from_; }
+ Host* get_source() const { return from_; }
CommPtr set_destination(Host* to);
- Host* get_destination() { return to_; }
+ Host* get_destination() const { return to_; }
/** Sets the maximal communication rate (in byte/sec). Must be done before start */
CommPtr set_rate(double rate);
}
/** If non-null, the provided set will be filled with all activities that fail to start because of a veto */
- void track_vetoed_activities(std::set<Activity*>* vetoed_activities);
+ void track_vetoed_activities(std::set<Activity*>* vetoed_activities) const;
void load_deployment(const std::string& deploy) const;
protected:
explicit Exec(kernel::activity::ExecImplPtr pimpl);
- void reset();
+ void reset() const;
public:
#ifndef DOXYGEN
s4u::Exec::on_start.connect([](s4u::Exec const&) {
Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->push_event("execute");
});
- s4u::Activity::on_completion.connect([](s4u::Activity&) {
+ s4u::Activity::on_completion.connect([](const s4u::Activity&) {
Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->pop_event();
});
s4u::Comm::on_send.connect([](s4u::Comm const&) {
->get_state("MPI_STATE")
->push_event("computing", new CpuTIData("compute", exec.get_cost()));
});
- s4u::Activity::on_completion.connect([](s4u::Activity&) {
+ s4u::Activity::on_completion.connect([](const s4u::Activity&) {
Container::by_name(std::string("rank-") + std::to_string(s4u::Actor::self()->get_pid()))
->get_state("MPI_STATE")
->pop_event();
}
double elapsed_time = -1;
- std::set<s4u::Activity*>* vetoed_activities = s4u::Activity::get_vetoed_activities();
+ const std::set<s4u::Activity*>* vetoed_activities = s4u::Activity::get_vetoed_activities();
do {
XBT_DEBUG("New Schedule Round; size(queue)=%zu", actors_to_run_.size());
int SIMIX_is_maestro() // XBT_ATTRIB_DEPRECATED_v333
{
- auto* self = simgrid::kernel::actor::ActorImpl::self();
+ const auto* self = simgrid::kernel::actor::ActorImpl::self();
return self != nullptr && self->is_maestro();
}
static void remove_active_exec(s4u::Activity& task)
{
- auto* exec = dynamic_cast<s4u::Exec*>(&task);
+ const auto* exec = dynamic_cast<s4u::Exec*>(&task);
if (exec == nullptr)
return;
const s4u::VirtualMachine* vm = dynamic_cast<s4u::VirtualMachine*>(exec->get_host());
pre_task();
});
simgrid::s4u::Activity::on_completion.connect([this](simgrid::s4u::Activity& activity) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
if (exec == nullptr) // Only Execs are concerned here
return;
// For more than one host (not yet supported), we can access the host via
}
});
simgrid::s4u::Activity::on_completion.connect([](simgrid::s4u::Activity& activity) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
if (exec == nullptr) // Only Execs are concerned here
return;
if (exec->get_host_number() == 1) { // We only run on one host
static void on_exec_completion(simgrid::s4u::Activity& e)
{
- auto exec = dynamic_cast<simgrid::kernel::activity::ExecImpl*>(e.get_impl());
+ const auto exec = dynamic_cast<simgrid::kernel::activity::ExecImpl*>(e.get_impl());
if (exec == nullptr)
return;
const simgrid::s4u::VirtualMachine* vm = dynamic_cast<simgrid::s4u::VirtualMachine*>(exec->get_host());
}
}
-void Engine::track_vetoed_activities(std::set<Activity*>* vetoed_activities)
+void Engine::track_vetoed_activities(std::set<Activity*>* vetoed_activities) const
{
Activity::set_vetoed_activities(vetoed_activities);
}
pimpl_ = pimpl;
}
-void Exec::reset()
+void Exec::reset() const
{
boost::static_pointer_cast<kernel::activity::ExecImpl>(pimpl_)->reset();
}
actor.get_host()->get_cname(), issuer->get_cname());
issuer->kill(&actor);
}
- for (auto& activity : EngineImpl::get_instance()->get_maestro()->activities_) {
+ for (const auto& activity : EngineImpl::get_instance()->get_maestro()->activities_) {
auto* exec = dynamic_cast<activity::ExecImpl*>(activity.get());
if (exec != nullptr) {
auto hosts = exec->get_hosts();
e.load_platform(argv[1]);
simgrid::s4u::Activity::on_completion.connect([](simgrid::s4u::Activity& activity) {
- auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
+ const auto* exec = dynamic_cast<simgrid::s4u::Exec*>(&activity);
if (exec == nullptr) // Only Execs are concerned here
return;
XBT_INFO("Exec '%s' start time: %f, finish time: %f", exec->get_cname(), exec->get_start_time(),
try {
A->add_successor(A);
- ; /* shouldn't work and must raise an exception */
+ /* shouldn't work and must raise an exception */
xbt_die("Hey, I can add a dependency between A and A!");
} catch (const std::invalid_argument& e) {
XBT_INFO("Caught attempt to self-dependency creation: %s", e.what());