Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright lines.
[simgrid.git] / src / kernel / resource / DiskImpl.hpp
index 9ce6640..44ae1b9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2019-2021. 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. */
@@ -34,12 +34,12 @@ class DiskAction;
 /*********
  * Model *
  *********/
-class DiskModel : public kernel::resource::Model {
+class DiskModel : public Model {
 public:
   DiskModel();
   DiskModel(const DiskModel&) = delete;
   DiskModel& operator=(const DiskModel&) = delete;
-  ~DiskModel();
+  ~DiskModel() override;
 
   virtual DiskImpl* createDisk(const std::string& id, double read_bw, double write_bw) = 0;
 };
@@ -53,6 +53,8 @@ class DiskImpl : public Resource, public xbt::PropertyHolder {
   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 read bandwidth*/
 
 public:
   DiskImpl(Model* model, const std::string& name, kernel::lmm::System* maxmin_system, double read_bw, double bwrite_bw);
@@ -62,28 +64,26 @@ public:
   ~DiskImpl() override;
 
   /** @brief Public interface */
+  const s4u::Disk* get_iface() const { return &piface_; }
   s4u::Disk* get_iface() { return &piface_; }
-  double get_read_bandwidth() { return read_bw_; }
-  double get_write_bandwidth() { return write_bw_; }
+  s4u::Host* get_host() const { return host_; }
+  void set_host(s4u::Host* host) { host_ = host; }
 
-  /** @brief Check if the Storage is used (if an action currently uses its resources) */
-  bool is_used() override;
+  double get_read_bandwidth() const { return read_bw_; }
+  double get_write_bandwidth() const { 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() const 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*/
 };
 
 /**********