Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
massive cleanups in the storage world.
[simgrid.git] / src / surf / HostImpl.hpp
index 13c19a9..d22e5d4 100644 (file)
@@ -4,11 +4,11 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "surf_interface.hpp"
-#include "storage_interface.hpp"
 #include "cpu_interface.hpp"
 #include "network_interface.hpp"
 #include "src/surf/PropertyHolder.hpp"
 
+#include "StorageImpl.hpp"
 #include <xbt/base.h>
 
 #ifndef SURF_HOST_INTERFACE_HPP_
@@ -48,7 +48,7 @@ class HostModel : public Model {
 public:
   HostModel() : Model() {}
 
-  virtual void adjustWeightOfDummyCpuActions();
+  virtual void ignoreEmptyVmInPmLMM();
   virtual Action* executeParallelTask(int host_nb, sg_host_t* host_list, double* flops_amount, double* bytes_amount,
                                       double rate);
 };
@@ -63,26 +63,14 @@ public:
 class HostImpl : public simgrid::surf::PropertyHolder {
 
 public:
-  HostImpl(s4u::Host* host);
-  virtual ~HostImpl();
+  explicit HostImpl(s4u::Host* host);
+  virtual ~HostImpl() = default;
 
-public:
   /** @brief Return the storage of corresponding mount point */
-  virtual simgrid::surf::Storage* findStorageOnMountList(const char* storage);
-
-  /** @brief Get the xbt_dict_t of mount_point: Storage */
-  virtual xbt_dict_t getMountedStorageList();
+  virtual simgrid::surf::StorageImpl* findStorageOnMountList(const char* storage);
 
   /** @brief Get the xbt_dynar_t of storages attached to the Host */
-  virtual xbt_dynar_t getAttachedStorageList();
-
-  /**
-   * @brief Open a file
-   *
-   * @param fullpath The full path to the file
-   * @return The StorageAction corresponding to the opening
-   */
-  virtual Action* open(const char* fullpath);
+  virtual void getAttachedStorageList(std::vector<const char*>* storages);
 
   /**
    * @brief Close a file
@@ -127,20 +115,6 @@ public:
    */
   virtual Action* write(surf_file_t fd, sg_size_t size);
 
-  /**
-   * @brief Get the information of a file descriptor
-   * @details The returned xbt_dynar_t contains:
-   *  - the size of the file,
-   *  - the mount point,
-   *  - the storage name,
-   *  - the storage typeId,
-   *  - the storage content type
-   *
-   * @param fd The file descriptor
-   * @return An xbt_dynar_t with the file information
-   */
-  virtual xbt_dynar_t getInfo(surf_file_t fd);
-
   /**
    * @brief Get the current position of the file descriptor
    *
@@ -174,8 +148,7 @@ public:
    */
   virtual int fileMove(surf_file_t fd, const char* fullpath);
 
-public:
-  xbt_dynar_t storage_        = nullptr;
+  std::map<std::string, simgrid::surf::StorageImpl*> storage_;
   simgrid::s4u::Host* piface_ = nullptr;
 
   simgrid::s4u::Host* getHost() { return piface_; }