Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
better leaking than segfaulting
[simgrid.git] / src / surf / storage_n11.hpp
index 547ef87..e34e694 100644 (file)
@@ -1,27 +1,26 @@
+/* Copyright (c) 2013-2015. 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 <xbt/base.h>
+
 #include "storage_interface.hpp"
 
 #ifndef STORAGE_N11_HPP_
 #define STORAGE_N11_HPP_
 
+namespace simgrid {
+namespace surf {
+
 /***********
  * Classes *
  ***********/
 
-class StorageN11Model;
-typedef StorageN11Model *StorageN11ModelPtr;
-
-class StorageN11;
-typedef StorageN11 *StorageN11Ptr;
-
-class StorageN11Lmm;
-typedef StorageN11Lmm *StorageN11LmmPtr;
-
-class StorageN11Action;
-typedef StorageN11Action *StorageN11ActionPtr;
-
-class StorageN11ActionLmm;
-typedef StorageN11ActionLmm *StorageN11ActionLmmPtr;
-
+class XBT_PRIVATE StorageN11Model;
+class XBT_PRIVATE StorageN11;
+class XBT_PRIVATE StorageN11Action;
 
 /*********
  * Model *
@@ -31,31 +30,28 @@ class StorageN11Model : public StorageModel {
 public:
   StorageN11Model();
   ~StorageN11Model();
-  StoragePtr createResource(const char* id, const char* type_id,
-                  const char* content_name, const char* content_type, xbt_dict_t properties);
+  Storage *createStorage(const char* id, const char* type_id,
+                  const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach);
+  void addTraces(){DIE_IMPOSSIBLE;}
   double shareResources(double now);
   void updateActionsState(double now, double delta);
-
-  xbt_dynar_t p_storageList;
 };
 
 /************
  * Resource *
  ************/
 
-class StorageN11Lmm : public StorageLmm {
+class StorageN11 : public Storage {
 public:
-  StorageN11Lmm(StorageModelPtr model, const char* name, xbt_dict_t properties,
+  StorageN11(StorageModel *model, const char* name, xbt_dict_t properties,
                     lmm_system_t maxminSystem, double bread, double bwrite, double bconnection,
-                    const char* type_id, char *content_name, char *content_type, sg_size_t size);
-
-  StorageActionPtr open(const char* mount, const char* path);
-  StorageActionPtr close(surf_file_t fd);
-  StorageActionPtr ls(const char *path);
-  xbt_dict_t getContent();
-  sg_size_t getSize();
-  StorageActionPtr read(surf_file_t fd, sg_size_t size);//FIXME:why we have a useless param ptr ??
-  StorageActionPtr write(surf_file_t fd, sg_size_t size);//FIXME:why we have a useless param ptr ??
+                    const char* type_id, char *content_name, char *content_type, sg_size_t size, char *attach);
+
+  StorageAction *open(const char* mount, const char* path);
+  StorageAction *close(surf_file_t fd);
+  StorageAction *ls(const char *path);
+  StorageAction *read(surf_file_t fd, sg_size_t size);//FIXME:why we have a useless param  *??
+  StorageAction *write(surf_file_t fd, sg_size_t size);//FIXME:why we have a useless param  *??
   void rename(const char *src, const char *dest);
 
   lmm_constraint_t p_constraintWrite;    /* Constraint for maximum write bandwidth*/
@@ -66,14 +62,12 @@ public:
  * Action *
  **********/
 
-class StorageN11ActionLmm : public StorageActionLmm {
+class StorageN11Action : public StorageAction {
 public:
-       StorageN11ActionLmm() {}; //FIXME:REMOVE
-  StorageN11ActionLmm(ModelPtr model, double cost, bool failed, StorageLmmPtr storage, e_surf_action_storage_type_t type);
+  StorageN11Action(Model *model, double cost, bool failed, Storage *storage, e_surf_action_storage_type_t type);
   void suspend();
   int unref();
   void cancel();
-  //FIXME:??void recycle();
   void resume();
   bool isSuspended();
   void setMaxDuration(double duration);
@@ -81,4 +75,7 @@ public:
 
 };
 
+}
+}
+
 #endif /* STORAGE_N11_HPP_ */