Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add capacity to set priorities on I/Os + example
[simgrid.git] / src / kernel / activity / IoImpl.hpp
index 3bd9c7b..2c2ab5b 100644 (file)
@@ -14,10 +14,11 @@ namespace kernel {
 namespace activity {
 
 class XBT_PUBLIC IoImpl : public ActivityImpl_T<IoImpl> {
 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_;
 
   resource::Action* timeout_detector_ = nullptr;
   s4u::Io* piface_;
 
@@ -25,6 +26,7 @@ public:
   IoImpl();
   s4u::Io* get_iface() { return piface_; }
 
   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_timeout(double timeout) override;
   IoImpl& set_size(sg_size_t size);
   IoImpl& set_type(s4u::Io::OpType type);