+ExecPtr Exec::set_flops_amount(double flops_amount)
+{
+ xbt_assert(state_ == State::INITED || state_ == State::STARTING,
+ "Cannot change the flop_amount of an exec after its start");
+ kernel::actor::simcall_object_access(pimpl_.get(), [this, flops_amount] {
+ boost::static_pointer_cast<kernel::activity::ExecImpl>(pimpl_)->set_flops_amount(flops_amount);
+ });
+ set_remaining(flops_amount);
+ return this;
+}
+
+ExecPtr Exec::set_flops_amounts(const std::vector<double>& flops_amounts)
+{
+ xbt_assert(state_ == State::INITED || state_ == State::STARTING,
+ "Cannot change the flops_amounts of an exec after its start");
+ kernel::actor::simcall_object_access(pimpl_.get(), [this, flops_amounts] {
+ boost::static_pointer_cast<kernel::activity::ExecImpl>(pimpl_)->set_flops_amounts(flops_amounts);
+ });
+ parallel_ = true;
+ return this;
+}
+
+ExecPtr Exec::set_bytes_amounts(const std::vector<double>& bytes_amounts)
+{
+ xbt_assert(state_ == State::INITED || state_ == State::STARTING,
+ "Cannot change the bytes_amounts of an exec after its start");
+ kernel::actor::simcall_object_access(pimpl_.get(), [this, bytes_amounts] {
+ boost::static_pointer_cast<kernel::activity::ExecImpl>(pimpl_)->set_bytes_amounts(bytes_amounts);
+ });
+ parallel_ = true;
+ return this;
+}
+
+ExecPtr Exec::set_thread_count(int thread_count)
+{
+ xbt_assert(state_ == State::INITED || state_ == State::STARTING,
+ "Cannot change the bytes_amounts of an exec after its start");
+ kernel::actor::simcall_object_access(pimpl_.get(), [this, thread_count] {
+ boost::static_pointer_cast<kernel::activity::ExecImpl>(pimpl_)->set_thread_count(thread_count);
+ });
+ return this;
+}
+
+/** @brief Retrieve the host on which this activity takes place.
+ * If it runs on more than one host, only the first host is returned.
+ */
+Host* Exec::get_host() const
+{
+ return static_cast<kernel::activity::ExecImpl*>(pimpl_.get())->get_host();
+}
+unsigned int Exec::get_host_number() const
+{
+ return static_cast<kernel::activity::ExecImpl*>(pimpl_.get())->get_host_number();
+}
+
+int Exec::get_thread_count() const
+{
+ return static_cast<kernel::activity::ExecImpl*>(pimpl_.get())->get_thread_count();
+}
+