-/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-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. */
#include "simgrid/kernel/resource/Resource.hpp"
#include "simgrid/s4u/Io.hpp"
#include "simgrid/s4u/Storage.hpp"
-#include "src/kernel/resource/profile/trace_mgr.hpp"
-#include "src/surf/PropertyHolder.hpp"
#include "surf_interface.hpp"
+#include "xbt/PropertyHolder.hpp"
#include <map>
* @brief SURF storage interface class
* @details A Storage represent a storage unit (e.g.: hard drive, usb key)
*/
-class StorageImpl : public Resource, public surf::PropertyHolder {
+class StorageImpl : public Resource, public xbt::PropertyHolder {
+ s4u::Storage piface_;
+ lmm::Constraint* constraint_read_; /* Constraint for maximum write bandwidth*/
+ lmm::Constraint* constraint_write_; /* Constraint for maximum write bandwidth*/
+
+ std::string typeId_;
+ bool currently_destroying_ = false;
+ // Name of the host to which this storage is attached. Only used at platform parsing time, then the interface stores
+ // the Host directly.
+ std::string attach_;
+
public:
+ const std::string content_name_; // Only used at parsing time then goes to the FileSystemExtension
+ const sg_size_t size_; // Only used at parsing time then goes to the FileSystemExtension
/** @brief Storage constructor */
StorageImpl(Model* model, const std::string& name, kernel::lmm::System* maxmin_system, double bread, double bwrite,
const std::string& type_id, const std::string& content_name, sg_size_t size, const std::string& attach);
~StorageImpl() override;
- /** @brief Public interface */
- s4u::Storage piface_;
-
+ s4u::Storage* get_iface() { return &piface_; }
+ const char* get_type() { return typeId_.c_str(); }
+ 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;
*/
virtual StorageAction* write(sg_size_t size) = 0;
const std::string& get_host() const { return attach_; }
-
- lmm::Constraint* constraint_write_; /* Constraint for maximum write bandwidth*/
- lmm::Constraint* constraint_read_; /* Constraint for maximum write bandwidth*/
-
- std::string typeId_;
- std::string content_name_; // Only used at parsing time then goes to the FileSystemExtension
- sg_size_t size_; // Only used at parsing time then goes to the FileSystemExtension
-
-private:
- bool currently_destroying_ = false;
- // Name of the host to which this storage is attached. Only used at platform parsing time, then the interface stores
- // the Host directly.
- std::string attach_;
};
/**********