X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/66b0686fe441796325c3b5738b1b880d15ce1ea6..2746a7207d4568667122f7670f73ee1acee024a4:/src/gras/gras.c diff --git a/src/gras/gras.c b/src/gras/gras.c index 503651b098..f94430d947 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,6 +21,7 @@ #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 */ @@ -50,48 +52,37 @@ 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; - XBT_VERB("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 +92,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 +121,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,6 +138,10 @@ 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) { XBT_INFO("Exiting GRAS"); @@ -152,8 +151,6 @@ void gras_exit(void) gras_process_exit(); if (--gras_running_process == 0) { gras_msg_exit(); - gras_trp_exit(); - gras_datadesc_exit(); gras_emul_exit(); gras_moddata_exit(); } @@ -167,8 +164,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); }