X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f3af8b430269d158689ad7cdef5b5e54df8360a1..ab18a775a1f75bc5899cab352f64334fee259216:/src/simdag/sd_link.c diff --git a/src/simdag/sd_link.c b/src/simdag/sd_link.c index 272ceba542..3a4257445b 100644 --- a/src/simdag/sd_link.c +++ b/src/simdag/sd_link.c @@ -1,55 +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(void *data, const char *name,/* double capacity,*/ double bandwidth, double latency) { - /* xbt_assert0(capacity >= 0, "Invalid parameter");*/ /* or capacity > 0 ? */ +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 !"); + xbt_assert0(name != NULL, "name is NULL !"); - SG_link_t link = xbt_new0(s_SG_link_t, 1); + 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->data = data; - link->name = xbt_strdup(name); /*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 data can be NULL. +/* 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; @@ -58,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; @@ -68,11 +86,15 @@ 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->name) - free(link->name); + if (((SD_link_t) link)->sd_data != NULL) + xbt_free(((SD_link_t) link)->sd_data); - free(link); + /* TODO: name */ + + xbt_free(link); } +