X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/79328778c30dcf5d6a2bffefd8c32821c9550f7a..cc375ad134c19925e1e343bae932be21cf8a8caf:/src/xbt/xbt_replay.c diff --git a/src/xbt/xbt_replay.c b/src/xbt/xbt_replay.c index ded2f58bfd..cd6fa9acd8 100644 --- a/src/xbt/xbt_replay.c +++ b/src/xbt/xbt_replay.c @@ -5,7 +5,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "simgrid_config.h" //For getline, keep that include first -#include "gras_config.h" +#include "internal_config.h" #include #include "xbt/sysdep.h" #include "xbt/log.h" @@ -22,10 +22,14 @@ typedef struct s_replay_reader { char *filename; int linenum; } s_xbt_replay_reader_t; +FILE *action_fp; + +xbt_dict_t action_funs; +xbt_dict_t action_queues; + static char *action_line = NULL; static size_t action_len = 0; - static const char **action_get_action(char *name); xbt_replay_reader_t xbt_replay_reader_new(const char *filename) @@ -79,11 +83,12 @@ void xbt_replay_reader_free(xbt_replay_reader_t *reader) *reader=NULL; } -/** \ingroup xbt_replay +/** + * \ingroup XBT_replay * \brief Registers a function to handle a kind of action * * Registers a function to handle a kind of action - * This table is then used by #xbt_replay_action_run + * This table is then used by \ref xbt_replay_action_runner * * The argument of the function is the line describing the action, splitted on spaces with xbt_str_split_quoted() * @@ -95,7 +100,7 @@ void xbt_replay_action_register(const char *action_name, action_fun function) xbt_dict_set(action_funs, action_name, function, NULL); } -/** \ingroup xbt_replay +/** \ingroup XBT_replay * \brief Unregisters a function, which handled a kind of action * * \param action_name the reference name of the action. @@ -118,15 +123,25 @@ void _xbt_replay_action_exit(void) free(action_line); } +/** + * \ingroup XBT_replay + * \brief TODO + + * \param argc argc . + * \param argv argv + */ int xbt_replay_action_runner(int argc, char *argv[]) { const char **evt; + int i; if (action_fp) { // A unique trace file while ((evt = action_get_action(argv[0]))) { action_fun function = (action_fun)xbt_dict_get(action_funs, evt[1]); function(evt); + for (i=0;evt[i]!= NULL;i++) + free((char*)evt[i]); free(evt); } } else { // Should have got my trace file in argument