- double get_remaining_ratio();
-
- //////////////// Deprecated functions
- /** @deprecated See Exec::set_priority() */
- XBT_ATTRIB_DEPRECATED_v323("Please use Exec::set_priority()") ExecPtr setPriority(double priority)
- {
- return set_priority(priority);
- }
- /** @deprecated See Exec::set_bound() */
- XBT_ATTRIB_DEPRECATED_v323("Please use Exec::set_bound()") ExecPtr setBound(double bound) { return set_bound(bound); }
- /** @deprecated See Exec::set_host() */
- XBT_ATTRIB_DEPRECATED_v323("Please use Exec::set_host()") ExecPtr setHost(Host* host) { return set_host(host); }
- /** @deprecated See Exec::get_host() */
- XBT_ATTRIB_DEPRECATED_v323("Please use Exec::get_host()") Host* getHost() { return get_host(); }
- /** @deprecated See Exec::get_remaining_ratio() */
- XBT_ATTRIB_DEPRECATED_v323("Please use Exec::get_remaining_ratio()") double getRemainingRatio()
- {
- return get_remaining_ratio();
- }
-
-private:
- Host* host_ = nullptr;
- double flops_amount_ = 0.0;
- double priority_ = 1.0;
- double bound_ = 0.0;
- std::string name_ = "";
- std::string tracing_category_ = "";
- std::atomic_int_fast32_t refcount_{0};
-}; // class
-}
-}; // Namespace simgrid::s4u
+ double get_remaining_ratio() override;
+};
+
+class XBT_PUBLIC ExecPar : public Exec {
+ std::vector<s4u::Host*> hosts_;
+ std::vector<double> flops_amounts_;
+ std::vector<double> bytes_amounts_;
+ explicit ExecPar(const std::vector<s4u::Host*>& hosts, const std::vector<double>& flops_amounts,
+ const std::vector<double>& bytes_amounts);
+ ExecPtr set_host(Host*) override { /* parallel exec cannot be moved */ THROW_UNIMPLEMENTED; }
+
+public:
+ ~ExecPar() = default;
+ friend XBT_PUBLIC ExecPtr this_actor::exec_init(const std::vector<s4u::Host*>& hosts,
+ const std::vector<double>& flops_amounts,
+ const std::vector<double>& bytes_amounts);
+ double get_remaining() override;
+ double get_remaining_ratio() override;
+ Exec* start() override;
+};
+
+} // namespace s4u
+} // namespace simgrid