+/** @ingroup plugin_operation
+ * @param n The number of executions to enqueue.
+ * @brief Enqueue executions.
+ * @note Immediatly starts an execution if possible.
+ */
+void Operation::enqueue_execs(int n)
+{
+ simgrid::kernel::actor::simcall_answered([this, n] {
+ queued_execs_ += n;
+ if (ready_to_run())
+ execute();
+ });
+}
+
+/** @ingroup plugin_operation
+ * @param amount The amount to set.
+ * @brief Set the amout of work to do.
+ * @note Amount in flop for ExecOp and in bytes for CommOp.
+ */
+void Operation::set_amount(double amount)
+{
+ simgrid::kernel::actor::simcall_answered([this, amount] {
+ amount_ = amount;
+ });
+}
+
+/** @ingroup plugin_operation
+ * @param successor The Operation to add.
+ * @brief Add a successor to this Operation.
+ * @note It also adds this as a predecessor of successor.
+ */
+void Operation::add_successor(OperationPtr successor)