-/* Copyright (c) 2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2019-2020. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/*********
* Model *
*********/
-class DiskModel : public kernel::resource::Model {
+class DiskModel : public Model {
public:
DiskModel();
DiskModel(const DiskModel&) = delete;
s4u::Disk piface_;
double read_bw_;
double write_bw_;
+ lmm::Constraint* constraint_write_; /* Constraint for maximum write bandwidth*/
+ lmm::Constraint* constraint_read_; /* Constraint for maximum write bandwidth*/
public:
DiskImpl(Model* model, const std::string& name, kernel::lmm::System* maxmin_system, double read_bw, double bwrite_bw);
/** @brief Public interface */
s4u::Disk* get_iface() { return &piface_; }
+ s4u::Host* get_host() const { return host_; }
+ void set_host(s4u::Host* host) { host_ = host; }
+
double get_read_bandwidth() { return read_bw_; }
double get_write_bandwidth() { return write_bw_; }
+ lmm::Constraint* get_read_constraint() const { return constraint_read_; }
+ lmm::Constraint* get_write_constraint() const { return constraint_write_; }
/** @brief Check if the Storage is used (if an action currently uses its resources) */
bool is_used() override;
-
void apply_event(profile::Event* event, double value) override;
-
void turn_on() override;
void turn_off() override;
- s4u::Host* get_host() { return host_; }
- void set_host(s4u::Host* host) { host_ = host; }
-
void destroy(); // Must be called instead of the destructor
virtual DiskAction* io_start(sg_size_t size, s4u::Io::OpType type) = 0;
virtual DiskAction* read(sg_size_t size) = 0;
virtual DiskAction* write(sg_size_t size) = 0;
-
- lmm::Constraint* constraint_write_; /* Constraint for maximum write bandwidth*/
- lmm::Constraint* constraint_read_; /* Constraint for maximum write bandwidth*/
};
/**********