X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/07c319ec54d6fc778ee3cc5e75a747242006723e..bac023bb1c1ebfc6909be7f4c1fd4927949eda1c:/src/gras/gras.c diff --git a/src/gras/gras.c b/src/gras/gras.c index dedb373f9f..b0a652dfdb 100644 --- a/src/gras/gras.c +++ b/src/gras/gras.c @@ -11,6 +11,7 @@ #include "xbt/module.h" /* xbt_init/exit */ #include "xbt/xbt_os_time.h" /* xbt_os_time */ #include "xbt/synchro.h" +#include "xbt/socket.h" #include "Virtu/virtu_interface.h" /* Module mechanism FIXME: deplace&rename */ #include "Virtu/virtu_private.h" @@ -20,16 +21,17 @@ #include "gras.h" #include "gras/process.h" /* FIXME: killme and put process_init in modinter */ +#include "gras/transport.h" #include "gras/Msg/msg_private.h" #include "portable.h" /* hexa_*(); signalling stuff */ XBT_LOG_NEW_DEFAULT_CATEGORY(gras, - "All GRAS categories (cf. section \ref GRAS_API)"); + "All GRAS categories (cf. section \\ref GRAS_API)"); static int gras_running_process = 0; #if defined(HAVE_SIGNAL) && defined(HAVE_SIGNAL_H) static void gras_sigusr_handler(int sig) { - INFO0("SIGUSR1 received. Display the backtrace"); + XBT_INFO("SIGUSR1 received. Display the backtrace"); xbt_backtrace_display_current(); } @@ -50,48 +52,28 @@ static void gras_sigint_handler(int sig) } #endif -XBT_LOG_EXTERNAL_CATEGORY(gras_ddt); -XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_cbps); -XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_convert); -XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_create); -XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_exchange); -XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_lexer); -XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_parse); -XBT_LOG_EXTERNAL_CATEGORY(gras_modules); -XBT_LOG_EXTERNAL_CATEGORY(gras_msg); -XBT_LOG_EXTERNAL_CATEGORY(gras_msg_read); -XBT_LOG_EXTERNAL_CATEGORY(gras_msg_rpc); -XBT_LOG_EXTERNAL_CATEGORY(gras_timer); -XBT_LOG_EXTERNAL_CATEGORY(gras_trp); -XBT_LOG_EXTERNAL_CATEGORY(gras_trp_meas); -XBT_LOG_EXTERNAL_CATEGORY(gras_virtu); -XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_emul); -XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_process); - +/** + * @ingroup GRAS_API + * \brief Initialize the gras mechanisms. + */ void gras_init(int *argc, char **argv) { int first = 0; gras_procdata_t *pd; gras_msg_procdata_t msg_pd; - VERB0("Initialize GRAS"); xbt_getpid = gras_os_getpid; /* First initialize the XBT */ xbt_init(argc, argv); + XBT_VERB("Initialize GRAS"); + /* module registrations: * - declare process specific data we need (without creating them) */ if (gras_running_process == 0) { first = 1; /* Connect our log channels: that must be done manually under windows */ - XBT_LOG_CONNECT(gras_ddt, gras); - XBT_LOG_CONNECT(gras_ddt_cbps, gras_ddt); - XBT_LOG_CONNECT(gras_ddt_convert, gras_ddt); - XBT_LOG_CONNECT(gras_ddt_create, gras_ddt); - XBT_LOG_CONNECT(gras_ddt_exchange, gras_ddt); - XBT_LOG_CONNECT(gras_ddt_lexer, gras_ddt_parse); - XBT_LOG_CONNECT(gras_ddt_parse, gras_ddt); XBT_LOG_CONNECT(gras_modules, gras); @@ -101,15 +83,21 @@ void gras_init(int *argc, char **argv) XBT_LOG_CONNECT(gras_timer, gras); - XBT_LOG_CONNECT(gras_trp, gras); - XBT_LOG_CONNECT(gras_trp_meas, gras_trp); - XBT_LOG_CONNECT(gras_virtu, gras); XBT_LOG_CONNECT(gras_virtu_emul, gras_virtu); XBT_LOG_CONNECT(gras_virtu_process, gras_virtu); + if (!getenv("GRAS_NO_WARN_EXPERIMENTAL")) + XBT_WARN("GRAS is not well maintained anymore. We consider it to be experimental (and not stable anymore) since SimGrid 3.6. Sorry about it, please consider contributing to improve this situation"); + gras_trp_register(); gras_msg_register(); + + xbt_trp_plugin_new("file", gras_trp_file_setup); + if (gras_if_SG()) { + xbt_trp_plugin_new("sg", gras_trp_sg_setup); + } + /* the TCP plugin (used in RL mode) is automatically loaded by XBT */ } gras_running_process++; @@ -124,8 +112,6 @@ void gras_init(int *argc, char **argv) if (first) { gras_emul_init(); gras_msg_init(); - gras_trp_init(); - gras_datadesc_init(); #if defined(HAVE_SIGNAL) && defined(HAVE_SIGNAL_H) # ifdef SIGUSR1 signal(SIGUSR1, gras_sigusr_handler); @@ -143,19 +129,19 @@ void gras_init(int *argc, char **argv) pd->listener = gras_msg_listener_launch(msg_pd->msg_received); } +/** + * @ingroup GRAS_API + * @brief Finalize the gras mechanisms. + * */ void gras_exit(void) { - gras_procdata_t *pd; - INFO0("Exiting GRAS"); + XBT_INFO("Exiting GRAS"); amok_exit(); gras_moddata_leave(); - pd = gras_procdata_get(); gras_msg_listener_shutdown(); gras_process_exit(); if (--gras_running_process == 0) { gras_msg_exit(); - gras_trp_exit(); - gras_datadesc_exit(); gras_emul_exit(); gras_moddata_exit(); } @@ -169,8 +155,7 @@ const char *hexa_str(unsigned char *data, int size, int downside) int begin, increment; if (buffsize < 5 * (size + 1)) { - if (buff) - free(buff); + free(buff); buffsize = 5 * (size + 1); buff = xbt_malloc(buffsize); }