From f0a8a2d708e0a6a1cffac49fbc83d451fe8203a8 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Sun, 3 Feb 2019 19:51:40 +0100 Subject: [PATCH] Engine is in charge of platform creation, not SIMIX anymore --- include/simgrid/simix.h | 4 --- src/s4u/s4u_Engine.cpp | 31 ++++++++++++++++++++-- src/simix/smx_environment.cpp | 49 ++--------------------------------- src/simix/smx_global.cpp | 2 +- 4 files changed, 32 insertions(+), 54 deletions(-) diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index bd8ec4b601..29a5655f47 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -108,10 +108,6 @@ XBT_ATTRIB_DEPRECATED_v324("Please use simgrid_load_platform()") XBT_PUBLIC void SIMIX_create_environment(const char* file); SG_END_DECL() -#ifdef __cplusplus -XBT_PUBLIC void SIMIX_create_environment(std::string file); -#endif - /******************************** Deployment **********************************/ SG_BEGIN_DECL() XBT_ATTRIB_DEPRECATED_v324("Please use simgrid_register_function()") XBT_PUBLIC diff --git a/src/s4u/s4u_Engine.cpp b/src/s4u/s4u_Engine.cpp index ccdce477ce..2bcc793eee 100644 --- a/src/s4u/s4u_Engine.cpp +++ b/src/s4u/s4u_Engine.cpp @@ -14,15 +14,17 @@ #include "simgrid/s4u/NetZone.hpp" #include "simgrid/s4u/Storage.hpp" #include "simgrid/simix.h" -#include "src/simix/smx_private.hpp" // For access to simix_global->process_list #include "src/instr/instr_private.hpp" #include "src/kernel/EngineImpl.hpp" +#include "src/simix/smx_private.hpp" // For access to simix_global->process_list #include "src/surf/network_interface.hpp" #include "surf/surf.hpp" // routing_platf. FIXME:KILLME. SOON +#include #include XBT_LOG_NEW_CATEGORY(s4u, "Log channels of the S4U (Simgrid for you) interface"); +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_engine, s4u, "Logging specific to S4U (engine)"); namespace simgrid { namespace s4u { @@ -70,9 +72,34 @@ double Engine::get_clock() return SIMIX_get_clock(); } +/** + * @brief A platform loader. + * + * Creates a new platform, including hosts, links, and the routing_table. + * @param platf a filename of the XML description of a platform. This file follows this DTD : + * + * @include src/surf/xml/simgrid.dtd + * + * Here is a small example of such a platform + * + * @include examples/platforms/small_platform.xml + */ void Engine::load_platform(std::string platf) { - SIMIX_create_environment(platf); + double start = 0; + double end = 0; + if (XBT_LOG_ISENABLED(s4u_engine, xbt_log_priority_debug)) + start = xbt_os_time(); + try { + parse_platform_file(platf); + } catch (xbt_ex& e) { + xbt_die("Error while loading %s: %s", platf.c_str(), e.what()); + } + + if (XBT_LOG_ISENABLED(s4u_engine, xbt_log_priority_debug)) { + end = xbt_os_time(); + XBT_DEBUG("PARSE TIME: %g", (end - start)); + } } void Engine::register_function(std::string name, int (*code)(int, char**)) diff --git a/src/simix/smx_environment.cpp b/src/simix/smx_environment.cpp index b28b1366a4..e7f2c291f5 100644 --- a/src/simix/smx_environment.cpp +++ b/src/simix/smx_environment.cpp @@ -3,55 +3,10 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "smx_private.hpp" -#include "src/include/surf/surf.hpp" -#include "xbt/xbt_os_time.h" - -#include #include +#include -XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_environment, simix, "Logging specific to SIMIX (environment)"); - -/********************************* SIMIX **************************************/ - -/** - * @brief A platform constructor. - * - * Creates a new platform, including hosts, links and the - * routing_table. - * @param file a filename of a xml description of a platform. This file - * follows this DTD : - * - * @include surfxml.dtd - * - * Here is a small example of such a platform - * - * @include small_platform.xml - * - */ -void SIMIX_create_environment(std::string file) -{ - double start = 0; - double end = 0; - if(XBT_LOG_ISENABLED(simix_environment, xbt_log_priority_debug)) - start = xbt_os_time(); - try { - parse_platform_file(file); - } - catch (xbt_ex& e) { - xbt_die("Error while loading %s: %s", file.c_str(), e.what()); - } - if(XBT_LOG_ISENABLED(simix_environment, xbt_log_priority_debug)) - end = xbt_os_time(); - XBT_DEBUG("PARSE TIME: %g", (end - start)); -} - -void SIMIX_create_environment(const char* file) // deprecated +void SIMIX_create_environment(const char* file) // XBT_ATTRIB_DEPRECATED_v324 { simgrid_load_platform(file); } - -void SIMIX_post_create_environment() -{ - surf_presolve(); -} diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index 06d297094a..10547b123b 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -192,7 +192,7 @@ void SIMIX_global_init(int *argc, char **argv) #endif /* register a function to be called by SURF after the environment creation */ sg_platf_init(); - simgrid::s4u::on_platform_created.connect(SIMIX_post_create_environment); + simgrid::s4u::on_platform_created.connect(surf_presolve); simgrid::s4u::Storage::on_creation.connect([](simgrid::s4u::Storage& storage) { sg_storage_t s = simgrid::s4u::Storage::by_name(storage.get_cname()); -- 2.20.1