+ /** @brief Check if the Storage is used (if an action currently uses its resources) */
+ bool isUsed() override;
+
+ void apply_event(tmgr_trace_iterator_t event, double value) override;
+
+ void turnOn() override;
+ void turnOff() override;
+
+ xbt_dict_t content_;
+ char* contentType_;
+ 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
+ */
+ virtual StorageAction *open(const char* mount, const char* path)=0;
+
+ /**
+ * @brief Close a file
+ *
+ * @param fd The file descriptor to close
+ * @return The StorageAction corresponding to the closing
+ */
+ virtual StorageAction *close(surf_file_t fd)=0;
+
+ /**
+ * @brief Read a file
+ *
+ * @param fd The file descriptor to read
+ * @param size The size in bytes to read
+ * @return The StorageAction corresponding to the reading
+ */
+ virtual StorageAction *read(surf_file_t fd, sg_size_t size)=0;
+
+ /**
+ * @brief Write a file
+ *
+ * @param fd The file descriptor to write
+ * @param size The size in bytes to write
+ * @return The StorageAction corresponding to the writing
+ */
+ virtual StorageAction *write(surf_file_t fd, sg_size_t size)=0;
+
+ /**
+ * @brief Get the content of the current Storage
+ *
+ * @return A xbt_dict_t with path as keys and size in bytes as values
+ */
+ virtual xbt_dict_t getContent();