Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'mc++'
[simgrid.git] / src / surf / storage_n11.cpp
index c23f61d..289e657 100644 (file)
@@ -72,7 +72,8 @@ static void parse_storage_init(sg_platf_storage_cbarg_t storage)
                                      ((storage_type_t) stype)->type_id,
                                      storage->content,
                                      storage->content_type,
-                                     storage->properties);
+                                     storage->properties,
+                                     storage->attach);
 }
 
 static void parse_mstorage_init(sg_platf_mstorage_cbarg_t /*mstorage*/)
@@ -234,7 +235,7 @@ StorageN11Model::~StorageN11Model(){
 }
 
 StoragePtr StorageN11Model::createResource(const char* id, const char* type_id,
-               const char* content_name, const char* content_type, xbt_dict_t properties)
+               const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach)
 {
 
   xbt_assert(!surf_storage_resource_priv(surf_storage_resource_by_name(id)),
@@ -249,7 +250,7 @@ StoragePtr StorageN11Model::createResource(const char* id, const char* type_id,
 
   StoragePtr storage = new StorageN11(this, id, properties, p_maxminSystem,
                  Bread, Bwrite, Bconnection,
-                 type_id, (char *)content_name, xbt_strdup(content_type), storage_type->size);
+                 type_id, (char *)content_name, xbt_strdup(content_type), storage_type->size, (char *) attach);
 
   xbt_lib_set(storage_lib, id, SURF_STORAGE_LEVEL, static_cast<ResourcePtr>(storage));
 
@@ -354,9 +355,9 @@ void StorageN11Model::updateActionsState(double /*now*/, double delta)
 
 StorageN11::StorageN11(StorageModelPtr 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)
+            const char* type_id, char *content_name, char *content_type, sg_size_t size, char *attach)
  : Storage(model, name, properties,
-          maxminSystem, bread, bwrite, bconnection, type_id, content_name, content_type, size) {
+          maxminSystem, bread, bwrite, bconnection, type_id, content_name, content_type, size, attach) {
   XBT_DEBUG("Create resource with Bconnection '%f' Bread '%f' Bwrite '%f' and Size '%llu'", bconnection, bread, bwrite, size);
 }
 
@@ -405,9 +406,10 @@ StorageActionPtr StorageN11::ls(const char* path)
   return action;
 }
 
-StorageActionPtr StorageN11::open(const char* mount, const char* path)
+StorageActionPtr StorageN11::open(char* mount, char* path)
 {
   XBT_DEBUG("\tOpen file '%s'",path);
+
   sg_size_t size, *psize;
   psize = (sg_size_t*) xbt_dict_get_or_null(p_content, path);
   // if file does not exist create an empty file
@@ -428,6 +430,9 @@ StorageActionPtr StorageN11::open(const char* mount, const char* path)
 
   StorageActionPtr action = new StorageN11Action(getModel(), 0, getState() != SURF_RESOURCE_ON, this, OPEN);
   action->p_file = file;
+  free(path);
+  free(mount);
+
   return action;
 }