-xbt::signal<void(DiskAction const&, kernel::resource::Action::State, kernel::resource::Action::State)>
- DiskAction::on_state_change;
+void DiskImpl::seal()
+{
+ if (is_sealed())
+ return;
+
+ xbt_assert(this->get_model(), "Cannot seal Disk (%s) without setting the model first", get_cname());
+ lmm::System* maxmin_system = get_model()->get_maxmin_system();
+ this->set_read_constraint(maxmin_system->constraint_new(this, read_bw_.peak * read_bw_.scale))
+ ->set_write_constraint(maxmin_system->constraint_new(this, write_bw_.peak * write_bw_.scale))
+ ->set_constraint(maxmin_system->constraint_new(this, std::max(read_bw_.peak, write_bw_.peak)));
+ XBT_DEBUG("Create resource with read_bw '%f' write_bw '%f'", read_bw_.peak, write_bw_.peak);
+ Resource::seal();
+ turn_on();
+}