constexpr kernel::lmm::Constraint::SharingPolicy to_maxmin_policy(s4u::Disk::SharingPolicy policy)
{
- switch (policy) {
- case s4u::Disk::SharingPolicy::NONLINEAR:
- return kernel::lmm::Constraint::SharingPolicy::NONLINEAR;
- default:
- return kernel::lmm::Constraint::SharingPolicy::SHARED;
- }
+ kernel::lmm::Constraint::SharingPolicy lmm_policy = kernel::lmm::Constraint::SharingPolicy::SHARED;
+ if (policy == s4u::Disk::SharingPolicy::NONLINEAR)
+ lmm_policy = kernel::lmm::Constraint::SharingPolicy::NONLINEAR;
+ return lmm_policy;
}
void DiskImpl::set_sharing_policy(s4u::Disk::Operation op, s4u::Disk::SharingPolicy policy,
sharing_policy_cb_[s4u::Disk::Operation::WRITE]);
}
+void DiskImpl::set_factor_cb(const std::function<s4u::Disk::IoFactorCb>& cb)
+{
+ xbt_assert(not is_sealed(), "Cannot set I/O factor callback in an already sealed disk(%s)", get_cname());
+ factor_cb_ = cb;
+}
+
/**********
* Action *
**********/