auto jupiter = e.host_by_name("Jupiter");
// Create operations
- auto exec1 = simgrid::plugins::ExecOp::create("exec1", 1e9, tremblay);
- auto exec2 = simgrid::plugins::ExecOp::create("exec2", 1e9, jupiter);
- auto comm = simgrid::plugins::CommOp::create("comm", 1e7, tremblay, jupiter);
+ auto exec1 = simgrid::plugins::ExecOp::init("exec1", 1e9, tremblay);
+ auto exec2 = simgrid::plugins::ExecOp::init("exec2", 1e9, jupiter);
+ auto comm = simgrid::plugins::CommOp::init("comm", 1e7, tremblay, jupiter);
// Create the graph by defining dependencies between operations
exec1->add_successor(comm);
comm->add_successor(exec2);
// Add a function to be called when operations end for log purpose
- std::vector<simgrid::plugins::OperationPtr> ops{exec1, exec2, comm};
- for (auto op : ops)
- op->on_end([](simgrid::plugins::Operation* op) {
- XBT_INFO("Operation %s finished (%d)", op->get_name().c_str(), op->get_count());
- });
+ simgrid::plugins::Operation::on_end_cb([](simgrid::plugins::Operation* op) {
+ XBT_INFO("Operation %s finished (%d)", op->get_name().c_str(), op->get_count());
+ });
// Enqueue two executions for operation exec1
exec1->enqueue_execs(2);