xbt::signal<void(Disk&)> Disk::on_creation;
xbt::signal<void(Disk const&)> Disk::on_destruction;
-xbt::signal<void(Disk const&)> Disk::on_state_change;
+xbt::signal<void(Disk const&)> Disk::on_onoff;
const std::string& Disk::get_name() const
{
[this, profile]() { this->pimpl_->set_write_bandwidth_profile(profile); });
return this;
}
+int Disk::get_concurrency_limit() const
+{
+ return pimpl_->get_concurrency_limit();
+}
+
+Disk* Disk::set_concurrency_limit(int limit)
+{
+ kernel::actor::simcall_object_access(pimpl_, [this, limit] { pimpl_->set_concurrency_limit(limit); });
+ return this;
+}
IoPtr Disk::io_init(sg_size_t size, Io::OpType type) const
{
IoPtr Disk::read_async(sg_size_t size) const
{
- return IoPtr(io_init(size, Io::OpType::READ))->vetoable_start();
+ return IoPtr(io_init(size, Io::OpType::READ))->start();
}
sg_size_t Disk::read(sg_size_t size) const
{
- return IoPtr(io_init(size, Io::OpType::READ))->vetoable_start()->wait()->get_performed_ioops();
+ return IoPtr(io_init(size, Io::OpType::READ))->start()->wait()->get_performed_ioops();
}
sg_size_t Disk::read(sg_size_t size, double priority) const
{
return IoPtr(io_init(size, Io::OpType::READ))
->set_priority(priority)
- ->vetoable_start()
+ ->start()
->wait()
->get_performed_ioops();
}
IoPtr Disk::write_async(sg_size_t size) const
{
- return IoPtr(io_init(size, Io::OpType::WRITE)->vetoable_start());
+ return IoPtr(io_init(size, Io::OpType::WRITE)->start());
}
sg_size_t Disk::write(sg_size_t size) const
{
- return IoPtr(io_init(size, Io::OpType::WRITE))->vetoable_start()->wait()->get_performed_ioops();
+ return IoPtr(io_init(size, Io::OpType::WRITE))->start()->wait()->get_performed_ioops();
}
sg_size_t Disk::write(sg_size_t size, double priority) const
{
return IoPtr(io_init(size, Io::OpType::WRITE))
->set_priority(priority)
- ->vetoable_start()
+ ->start()
->wait()
->get_performed_ioops();
}