X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cb91af44a1bd7e5f331686df25d5fe80ff571a43..c46c0b0d1e605253fa05ccf16251d1a753b3fec7:/src/msg/msg_environment.c diff --git a/src/msg/msg_environment.c b/src/msg/msg_environment.c index 5814f78189..8a042aa571 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-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -7,7 +7,7 @@ #include "msg_private.h" #include "xbt/sysdep.h" #include "xbt/log.h" -#include "xbt/dict.h" + #ifdef HAVE_LUA #include #include @@ -34,39 +34,56 @@ */ 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]); + __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)); + } + } -/** - * @ingroup MSG_LUA - * \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(); +} -void MSG_load_platform_script(const char *script_file) +const char *MSG_environment_as_get_name(msg_as_t as) { + return surf_AS_get_name(as); +} + +msg_as_t MSG_environment_as_get_by_name(const char * name) { + return surf_AS_get_by_name(name); +} + +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; +} + +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! It is mandatory to use MSG_load_platform_script however. Bailing out..."); -#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); }