X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5446e31400836f485c597000912d534b52f41840..b35d70d6818026204833410d2e3917252fa35127:/src/surf/storage_n11.cpp diff --git a/src/surf/storage_n11.cpp b/src/surf/storage_n11.cpp index 8e13f5ca60..f54f289981 100644 --- a/src/surf/storage_n11.cpp +++ b/src/surf/storage_n11.cpp @@ -31,7 +31,7 @@ static XBT_INLINE void routing_storage_type_free(void *r) static XBT_INLINE void surf_storage_resource_free(void *r) { // specific to storage - Storage *storage = static_cast(r); + simgrid::surf::Storage *storage = static_cast(r); // generic resource delete storage; } @@ -42,41 +42,12 @@ static XBT_INLINE void routing_storage_host_free(void *r) xbt_dynar_free(&dyn); } -static void mount_free(void *p) +void storage_register_callbacks() { - mount_t mnt = (mount_t) p; - xbt_free(mnt->name); -} - -static void storage_parse_mount(sg_platf_mount_cbarg_t mount) -{ - // Verification of an existing storage -#ifndef NDEBUG - void* storage = xbt_lib_get_or_null(storage_lib, mount->storageId, ROUTING_STORAGE_LEVEL); -#endif - xbt_assert(storage,"Disk id \"%s\" does not exists", mount->storageId); - - XBT_DEBUG("ROUTING Mount '%s' on '%s'",mount->storageId, mount->name); - - s_mount_t mnt; - mnt.storage = surf_storage_resource_priv(surf_storage_resource_by_name(mount->storageId)); - mnt.name = xbt_strdup(mount->name); - - if(!mount_list){ - XBT_DEBUG("Create a Mount list for %s",A_surfxml_host_id); - mount_list = xbt_dynar_new(sizeof(s_mount_t), mount_free); - } - xbt_dynar_push(mount_list, &mnt); -} - -void storage_register_callbacks() { - ROUTING_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, xbt_free_f); ROUTING_STORAGE_HOST_LEVEL = xbt_lib_add_level(storage_lib, routing_storage_host_free); ROUTING_STORAGE_TYPE_LEVEL = xbt_lib_add_level(storage_type_lib, routing_storage_type_free); SURF_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, surf_storage_resource_free); - - sg_platf_mount_add_cb(storage_parse_mount); } /********* @@ -85,10 +56,13 @@ void storage_register_callbacks() { void surf_storage_model_init_default(void) { - surf_storage_model = new StorageN11Model(); + surf_storage_model = new simgrid::surf::StorageN11Model(); xbt_dynar_push(all_existing_models, &surf_storage_model); } +namespace simgrid { +namespace surf { + StorageN11Model::StorageN11Model() : StorageModel() { Action *action = NULL; @@ -124,7 +98,7 @@ Storage *StorageN11Model::createStorage(const char* id, const char* type_id, Storage *storage = new StorageN11(this, id, properties, p_maxminSystem, Bread, Bwrite, Bconnection, type_id, (char *)content_name, xbt_strdup(content_type), storage_type->size, (char *) attach); - surf_callback_emit(storageCreatedCallbacks, storage); + storageCreatedCallbacks(storage); xbt_lib_set(storage_lib, id, SURF_STORAGE_LEVEL, storage); XBT_DEBUG("SURF storage create resource\n\t\tid '%s'\n\t\ttype '%s'\n\t\tproperties '%p'\n\t\tBread '%f'\n", @@ -423,3 +397,5 @@ void StorageN11Action::setPriority(double /*priority*/) THROW_UNIMPLEMENTED; } +} +}