-private:
- bool free_arrays_ = false; // By default, computationAmount_ and friends are freed by caller. But not for sequential
- // exec and regular comms
+ friend CpuAction* CpuL07::execution_start(double size);
+ friend CpuAction* CpuL07::sleep(double duration);
+ friend CpuAction* HostL07Model::execute_parallel(const std::vector<s4u::Host*>& host_list, const double* flops_amount,
+ const double* bytes_amount, double rate);
+ friend Action* NetworkL07Model::communicate(s4u::Host* src, s4u::Host* dst, double size, double rate);
+
+public:
+ L07Action() = delete;
+ L07Action(kernel::resource::Model* model, const std::vector<s4u::Host*>& host_list, const double* flops_amount,
+ const double* bytes_amount, double rate);
+ L07Action(const L07Action&) = delete;
+ L07Action& operator=(const L07Action&) = delete;
+ ~L07Action() override;
+
+ void updateBound();
+ double get_latency() const { return latency_; }
+ void set_latency(double latency) { latency_ = latency; }
+ void update_latency(double delta, double precision) { double_update(&latency_, delta, precision); }