-DiskS19::DiskS19(DiskModel* model, const std::string& name, lmm::System* maxminSystem, double read_bw, double write_bw)
- : DiskImpl(model, name, maxminSystem, read_bw, write_bw)
-{
- XBT_DEBUG("Create resource with read_bw '%f' write_bw '%f'", read_bw, write_bw);
-}
-
-DiskAction* DiskS19::io_start(sg_size_t size, s4u::Io::OpType type)
-{
- return new DiskS19Action(get_model(), size, not is_on(), this, type);
-}
-
-DiskAction* DiskS19::read(sg_size_t size)
-{
- return new DiskS19Action(get_model(), size, not is_on(), this, s4u::Io::OpType::READ);
-}
+void DiskS19::apply_event(kernel::profile::Event* triggered, double value)
+{
+ /* Find out which of my iterators was triggered, and react accordingly */
+ if (triggered == get_read_event()) {
+ set_read_bandwidth(value);
+ unref_read_event();
+ } else if (triggered == get_write_event()) {
+ set_write_bandwidth(value);
+ unref_write_event();
+ } else if (triggered == get_state_event()) {
+ if (value > 0)
+ turn_on();
+ else
+ turn_off();
+ unref_state_event();
+ } else {
+ xbt_die("Unknown event!\n");
+ }