X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/66f8d6364c9d16e5ba469db4c93d98da40ae007a..6a6935148284f51d20bceed365ed0edea8b5a70e:/src/surf/StorageImpl.hpp?ds=sidebyside diff --git a/src/surf/StorageImpl.hpp b/src/surf/StorageImpl.hpp index b02503e94e..ac7a6025fa 100644 --- a/src/surf/StorageImpl.hpp +++ b/src/surf/StorageImpl.hpp @@ -7,6 +7,7 @@ #include #include +#include "simgrid/s4u/Storage.hpp" #include "src/surf/PropertyHolder.hpp" #include "surf_interface.hpp" #include @@ -86,7 +87,12 @@ public: StorageImpl(Model* model, const char* name, lmm_system_t maxminSystem, double bread, double bwrite, const char* type_id, const char* content_name, sg_size_t size, const char* attach); - ~StorageImpl(); + ~StorageImpl() override; + +public: + /** @brief Public interface */ + s4u::Storage piface_; + static StorageImpl* byName(const char* name); /** @brief Check if the Storage is used (if an action currently uses its resources) */ bool isUsed() override; @@ -96,20 +102,21 @@ public: void turnOn() override; void turnOff() override; - std::map* content_; + std::map* content_; sg_size_t size_; sg_size_t usedSize_; char* typeId_; - char* attach_; // FIXME: this is the name of the host. Use the host directly - - /** - * @brief Open a file - * - * @param mount The mount point - * @param path The path to the file - * - * @return The StorageAction corresponding to the opening - */ + std::string attach_; // Name of the host to which this storage is attached. + // Only used until the platform is fully parsed only. + // Then the interface stores the Host directly. + /** + * @brief Open a file + * + * @param mount The mount point + * @param path The path to the file + * + * @return The StorageAction corresponding to the opening + */ virtual StorageAction* open(const char* mount, const char* path) = 0; /** @@ -143,7 +150,7 @@ public: * * @return A xbt_dict_t with path as keys and size in bytes as values */ - virtual std::map* getContent(); + virtual std::map* getContent(); /** * @brief Get the available size in bytes of the current Storage @@ -159,8 +166,9 @@ public: */ virtual sg_size_t getUsedSize(); - std::map* parseContent(const char* filename); - + std::map* parseContent(const char* filename); + static std::unordered_map* storages; + static std::unordered_map* storagesMap() { return StorageImpl::storages; } std::vector writeActions_; lmm_constraint_t constraintWrite_; /* Constraint for maximum write bandwidth*/