X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/81588aeededcff1407c760226b43f347eb832b39..2983e2d4248b6cdb5c7df3b1bd9b35540e7a32b8:/src/simgrid/host.cpp diff --git a/src/simgrid/host.cpp b/src/simgrid/host.cpp index 78ce58d310..fdceaacf89 100644 --- a/src/simgrid/host.cpp +++ b/src/simgrid/host.cpp @@ -14,6 +14,17 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(sg_host, sd, "Logging specific to sg_hosts"); +extern xbt_dict_t host_list; // FIXME:killme don't dupplicate the content of s4u::Host this way + +void sg_host_exit() +{ + xbt_dict_cursor_t cursor = nullptr; + const char* name = nullptr; + simgrid::s4u::Host* host = nullptr; + xbt_dict_foreach(host_list, cursor, name, host) host->destroy(); + xbt_dict_free(&host_list); +} + size_t sg_host_count() { return xbt_dict_length(host_list); @@ -28,7 +39,7 @@ size_t sg_host_count() * internally). * \see sg_host_count() */ -sg_host_t *sg_host_list(void) { +sg_host_t *sg_host_list() { xbt_assert(sg_host_count() > 0, "There is no host!"); return (sg_host_t*)xbt_dynar_to_array(sg_hosts_as_dynar()); } @@ -53,14 +64,9 @@ sg_host_t sg_host_by_name(const char *name) return simgrid::s4u::Host::by_name_or_null(name); } -sg_host_t sg_host_by_name_or_create(const char *name) +xbt_dynar_t sg_hosts_as_dynar() { - return simgrid::s4u::Host::by_name_or_create(name); -} - -xbt_dynar_t sg_hosts_as_dynar(void) -{ - xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t),NULL); + xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t),nullptr); xbt_dict_cursor_t cursor = nullptr; const char* name = nullptr; @@ -96,14 +102,9 @@ void sg_host_msg_set(sg_host_t host, msg_host_priv_t smx_host) { } // ========== Simix layer ============= +#include "src/simix/smx_host_private.h" smx_host_priv_t sg_host_simix(sg_host_t host){ - return (smx_host_priv_t) host->extension(SIMIX_HOST_LEVEL); -} -void sg_host_simix_set(sg_host_t host, smx_host_priv_t smx_host) { - host->extension_set(SIMIX_HOST_LEVEL, smx_host); -} -void sg_host_simix_destroy(sg_host_t host) { - host->extension_set(SIMIX_HOST_LEVEL, nullptr); + return host->extension(); } // ========= storage related functions ============ @@ -162,7 +163,7 @@ xbt_dict_t sg_host_get_properties(sg_host_t host) { * * \param host a host * \param name a property name - * \return value of a property (or NULL if property not set) + * \return value of a property (or nullptr if property not set) */ const char *sg_host_get_property_value(sg_host_t host, const char *name) { @@ -173,7 +174,7 @@ const char *sg_host_get_property_value(sg_host_t host, const char *name) void sg_host_dump(sg_host_t host) { xbt_dict_t props; - xbt_dict_cursor_t cursor=NULL; + xbt_dict_cursor_t cursor=nullptr; char *key,*data; XBT_INFO("Displaying host %s", sg_host_get_name(host));