]> AND Public Git Repository - simgrid.git/blobdiff - src/kernel/activity/IoImpl.hpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move Cpu resource definition where it belongs
[simgrid.git] / src / kernel / activity / IoImpl.hpp
index 3bd9c7b5ccc8b4b347785c94f3b6939642d803d9..d3b84fd561d04bf70cd7ca0415602bb5566897d2 100644 (file)
@@ -14,10 +14,11 @@ namespace kernel {
 namespace activity {
 
 class XBT_PUBLIC IoImpl : public ActivityImpl_T<IoImpl> {
-  resource::DiskImpl* disk_       = nullptr;
-  sg_size_t size_                 = 0;
-  s4u::Io::OpType type_           = s4u::Io::OpType::READ;
-  sg_size_t performed_ioops_      = 0;
+  resource::DiskImpl* disk_           = nullptr;
+  double sharing_penalty_             = 1.0;
+  sg_size_t size_                     = 0;
+  s4u::Io::OpType type_               = s4u::Io::OpType::READ;
+  sg_size_t performed_ioops_          = 0;
   resource::Action* timeout_detector_ = nullptr;
   s4u::Io* piface_;
 
@@ -25,11 +26,14 @@ public:
   IoImpl();
   s4u::Io* get_iface() { return piface_; }
 
+  IoImpl& set_sharing_penalty(double sharing_penalty);
   IoImpl& set_timeout(double timeout) override;
   IoImpl& set_size(sg_size_t size);
   IoImpl& set_type(s4u::Io::OpType type);
   IoImpl& set_disk(resource::DiskImpl* disk);
 
+  IoImpl& update_sharing_penalty(double sharing_penalty);
+
   sg_size_t get_performed_ioops() const { return performed_ioops_; }
   resource::DiskImpl* get_disk() const { return disk_; }