#include "DiskImpl.hpp"
#include "simgrid/s4u/Engine.hpp"
-#include "simgrid/sg_config.hpp"
#include "src/kernel/EngineImpl.hpp"
#include "src/kernel/lmm/maxmin.hpp"
#include "src/kernel/resource/profile/Profile.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(res_disk, ker_resource, "Disk resources, that fuel I/O activities");
-/***********
- * Options *
- ***********/
-static simgrid::config::Flag<std::string> cfg_disk_solver("disk/solver",
- "Set linear equations solver used by disk model", "maxmin",
- &simgrid::kernel::lmm::System::validate_solver);
-
namespace simgrid::kernel::resource {
xbt::signal<void(DiskAction const&, Action::State, Action::State)> DiskAction::on_state_change;
-/*********
- * Model *
- *********/
-
-DiskModel::DiskModel(const std::string& name) : Model(name)
-{
- set_maxmin_system(lmm::System::build(cfg_disk_solver.get(), true /* selective update */));
-}
-
/************
* Resource *
************/
*********/
class DiskModel : public Model {
public:
- explicit DiskModel(const std::string& name);
- DiskModel(const DiskModel&) = delete;
- DiskModel& operator=(const DiskModel&) = delete;
+ using Model::Model;
virtual DiskImpl* create_disk(const std::string& name, double read_bandwidth, double write_bandwidth) = 0;
};
/* 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. */
+#include "simgrid/sg_config.hpp"
#include <simgrid/kernel/routing/NetPoint.hpp>
#include <simgrid/kernel/routing/NetZoneImpl.hpp>
#include <simgrid/s4u/Engine.hpp>
#include "src/surf/disk_s19.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(res_disk);
+/***********
+ * Options *
+ ***********/
+static simgrid::config::Flag<std::string> cfg_disk_solver("disk/solver",
+ "Set linear equations solver used by disk model", "maxmin",
+ &simgrid::kernel::lmm::System::validate_solver);
/*********
* Model *
}
namespace simgrid::kernel::resource {
+/*********
+ * Model *
+ *********/
+
+DiskS19Model::DiskS19Model(const std::string& name) : DiskModel(name)
+{
+ set_maxmin_system(lmm::System::build(cfg_disk_solver.get(), true /* selective update */));
+}
+
DiskImpl* DiskS19Model::create_disk(const std::string& name, double read_bandwidth, double write_bandwidth)
{
class DiskS19Model : public DiskModel {
public:
- using DiskModel::DiskModel;
+ explicit DiskS19Model(const std::string& name);
+ DiskS19Model(const DiskS19Model&) = delete;
+ DiskS19Model& operator=(const DiskS19Model&) = delete;
DiskImpl* create_disk(const std::string& name, double read_bandwidth, double write_bandwidth) override;
void update_actions_state(double now, double delta) override;
/**********
* Action *
**********/
+
class S22Action : public DiskAction {
const s4u::Host* src_host_;
const DiskImpl* src_disk_;