X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c5ad8ca1a68bbaa9152471c8d0eeb99d762f0d86..f757db3e61c8c5cbcab605a1beba36b5e21dc6f9:/src/msg/msg_environment.c diff --git a/src/msg/msg_environment.c b/src/msg/msg_environment.c index 6b1da36f98..279f4adaed 100644 --- a/src/msg/msg_environment.c +++ b/src/msg/msg_environment.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2004-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -7,44 +7,16 @@ #include "msg_private.h" #include "xbt/sysdep.h" #include "xbt/log.h" -#include "xbt/dict.h" + #ifdef HAVE_LUA #include #include #include #endif -//#endif -/** \defgroup msg_easier_life Platform and Application management - * \brief This section describes functions to manage the platform creation - * and the application deployment. You should also have a look at - * \ref MSG_examples to have an overview of their usage. - */ -/** @addtogroup msg_easier_life - * \htmlonly \endhtmlonly - * - */ /********************************* MSG **************************************/ -/** \ingroup msg_easier_life - * \brief A name directory service... - * - * Finds a m_host_t using its name. - * \param name the name of an host. - * \return the corresponding host - */ -m_host_t MSG_get_host_by_name(const char *name) -{ - smx_host_t simix_h = NULL; - simix_h = simcall_host_get_by_name(name); - - if (simix_h == NULL) - return NULL; - - return (m_host_t) simcall_host_get_data(simix_h); -} - -/** \ingroup msg_easier_life +/** \ingroup msg_simulation * \brief A platform constructor. * * Creates a new platform, including hosts, links and the @@ -62,38 +34,53 @@ m_host_t MSG_get_host_by_name(const char *name) */ void MSG_create_environment(const char *file) { + SIMIX_create_environment(file); +} + +void MSG_post_create_environment(void) { xbt_lib_cursor_t cursor; void **data; char *name; - SIMIX_create_environment(file); - /* Initialize MSG hosts */ xbt_lib_foreach(host_lib, cursor, name, data) { if(data[SIMIX_HOST_LEVEL]) - __MSG_host_create((smx_host_t)data[SIMIX_HOST_LEVEL], NULL); + __MSG_host_create(xbt_dict_cursor_get_elm(cursor)); } + + /* Initialize MSG storages */ + xbt_lib_foreach(storage_lib, cursor, name, data) { + if(data[SIMIX_STORAGE_LEVEL]) + __MSG_storage_create(xbt_dict_cursor_get_elm(cursor)); + } + } -/** - * \brief A platform constructor bypassing the parser. - * - * load lua script file to set up new platform, including hosts,links - * and the routing table - */ +msg_as_t MSG_environment_get_routing_root() { + return surf_AS_get_routing_root(); +} + +const char *MSG_environment_as_get_name(msg_as_t as) { + return surf_AS_get_name(as); +} + +xbt_dict_t MSG_environment_as_get_routing_sons(msg_as_t as) { + xbt_dict_t res = surf_AS_get_routing_sons(as); + return res; +} -void MSG_load_platform_script(const char *script_file) +const char *MSG_environment_as_get_property_value(msg_as_t as, const char *name) { -#ifdef HAVE_LUA - lua_State *L = lua_open(); - luaL_openlibs(L); + xbt_dict_t dict = xbt_lib_get_or_null(as_router_lib, MSG_environment_as_get_name(as), ROUTING_PROP_ASR_LEVEL); + if (dict==NULL) + return NULL; + return xbt_dict_get_or_null(dict, name); +} - if (luaL_loadfile(L, script_file) || lua_pcall(L, 0, 0, 0)) { - printf("error: %s\n", lua_tostring(L, -1)); - return; - } -#else - xbt_die - ("Lua is not available!! to call MSG_load_platform_script, lua should be available..."); -#endif +const char *MSG_environment_as_get_model(msg_as_t as) { + return surf_AS_get_model(as); +} + +xbt_dynar_t MSG_environment_as_get_hosts(msg_as_t as) { + return surf_AS_get_hosts(as); }