X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cf6462fa490b741ba5c0b5fd6bb64838d9093fd1..52f9687dc29416ebfb912151beca87b2d7aab118:/src/simdag/sd_link.c diff --git a/src/simdag/sd_link.c b/src/simdag/sd_link.c index e130213202..dc3076ed3a 100644 --- a/src/simdag/sd_link.c +++ b/src/simdag/sd_link.c @@ -1,59 +1,72 @@ #include "private.h" #include "simdag/simdag.h" +#include "surf/surf.h" #include "xbt/sysdep.h" /* xbt_new0 */ /* Creates a link. */ -SG_link_t __SG_link_create(const char *name, void *surf_link, void *data) { +SD_link_t __SD_link_create(void *surf_link, char *name, void *data) { + CHECK_INIT_DONE(); xbt_assert0(surf_link != NULL, "surf_link is NULL !"); - SG_link_data_t sgdata = xbt_new0(s_SG_link_data_t, 1); /* link private data */ - sgdata->surf_link = surf_link; + xbt_assert0(name != NULL, "name is NULL !"); - SG_link_t link = xbt_new0(s_SG_link_t, 1); - link->name = xbt_strdup(name); - link->data = data; - link->sgdata = sgdata; + SD_link_data_t sd_data = xbt_new0(s_SD_link_data_t, 1); /* link private data */ + sd_data->surf_link = surf_link; + sd_data->name = xbt_strdup(name); + + SD_link_t link = xbt_new0(s_SD_link_t, 1); + link->sd_data = sd_data; /* private data */ + link->data = data; /* user data */ /*link->capacity = capacity;*/ /* link->current_bandwidth = bandwidth; link->current_latency = latency;*/ + /*xbt_dynar_push(sd_global->links, link);*/ + xbt_dict_set(sd_global->links, name, link, __SD_link_destroy); /* add the workstation to the dictionary */ + return link; } /* Returns the user data of a link. The user data can be NULL. */ -void* SG_link_get_data(SG_link_t link) { - xbt_assert0(link, "Invalid parameter"); +void* SD_link_get_data(SD_link_t link) { + CHECK_INIT_DONE(); + xbt_assert0(link != NULL, "Invalid parameter"); return link->data; } /* Sets the user data of a link. The new data can be NULL. The old data should have been freed first if it was not NULL. */ -void SG_link_set_data(SG_link_t link, void *data) { - xbt_assert0(link, "Invalid parameter"); +void SD_link_set_data(SD_link_t link, void *data) { + CHECK_INIT_DONE(); + xbt_assert0(link != NULL, "Invalid parameter"); link->data = data; } /* Returns the name of a link. The name can be NULL. */ -const char* SG_link_get_name(SG_link_t link) { - xbt_assert0(link, "Invalid parameter"); - return link->name; +const char* SD_link_get_name(SD_link_t link) { + CHECK_INIT_DONE(); + xbt_assert0(link != NULL, "Invalid parameter"); + return link->sd_data->name; + + /* return surf_network_resource->common_public->get_resource_name(link->sd_data->surf_link);*/ } /* Returns the capacity of a link. */ /* -double SG_link_get_capacity(SG_link_t link) { +double SD_link_get_capacity(SD_link_t link) { xbt_assert0(link, "Invalid parameter"); return link->capacity; }*/ /* Return the current bandwidth of a link. */ -double SG_link_get_current_bandwidth(SG_link_t link) { - xbt_assert0(link, "Invalid parameter"); +double SD_link_get_current_bandwidth(SD_link_t link) { + CHECK_INIT_DONE(); + xbt_assert0(link != NULL, "Invalid parameter"); /* TODO */ return 0; @@ -62,8 +75,9 @@ double SG_link_get_current_bandwidth(SG_link_t link) { /* Return the current latency of a link. */ -double SG_link_get_current_latency(SG_link_t link) { - xbt_assert0(link, "Invalid parameter"); +double SD_link_get_current_latency(SD_link_t link) { + CHECK_INIT_DONE(); + xbt_assert0(link != NULL, "Invalid parameter"); /* TODO */ return 0; @@ -72,14 +86,18 @@ double SG_link_get_current_latency(SG_link_t link) { /* Destroys a link. The user data (if any) should have been destroyed first. */ -void __SG_link_destroy(SG_link_t link) { - xbt_assert0(link, "Invalid parameter"); +void __SD_link_destroy(void *link) { + CHECK_INIT_DONE(); + xbt_assert0(link != NULL, "Invalid parameter"); - if (link->sgdata != NULL) - xbt_free(link->sgdata); + SD_link_data_t sd_data = ((SD_link_t) link)->data; + if (sd_data != NULL) { + if (sd_data->name != NULL) + xbt_free(sd_data->name); - if (link->name != NULL) - xbt_free(link->name); + xbt_free(sd_data); + } xbt_free(link); } +