X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5f7e9bf9cd6ea2c2cfb9246613c03d667d66fd79..e487ef4538248f261ddb6e814357593df7646e33:/src/msg/msg_actions.c diff --git a/src/msg/msg_actions.c b/src/msg/msg_actions.c index f2b1e812a7..8d1785c285 100644 --- a/src/msg/msg_actions.c +++ b/src/msg/msg_actions.c @@ -22,36 +22,42 @@ static xbt_dynar_t action_list; * \param name the reference name of the action. * \param code the function; prototype given by the type: void...(xbt_dynar_t action) */ -void MSG_action_register(const char*action_name, msg_action_fun function) { - xbt_dict_set(action_funs,action_name,function,NULL); +void MSG_action_register(const char *action_name, msg_action_fun function) +{ + xbt_dict_set(action_funs, action_name, function, NULL); } + /** \ingroup msg_actions * \brief Unregisters a function, which handled a kind of action * * \param name the reference name of the action. */ -void MSG_action_unregister(const char*action_name) { - xbt_dict_remove(action_funs,action_name); +void MSG_action_unregister(const char *action_name) +{ + xbt_dict_remove(action_funs, action_name); } -static int MSG_action_runner(int argc, char* argv[]) { - xbt_dynar_t evt; - unsigned int cursor; +static int MSG_action_runner(int argc, char *argv[]) +{ + xbt_dynar_t evt; + unsigned int cursor; - xbt_dynar_foreach(action_list,cursor,evt) { - if (!strcmp(xbt_dynar_get_as(evt,0,char*),argv[0])) { - msg_action_fun function = xbt_dict_get(action_funs,xbt_dynar_get_as(evt,1,char*)); - (*function)(evt); - } - } + xbt_dynar_foreach(action_list, cursor, evt) { + if (!strcmp(xbt_dynar_get_as(evt, 0, char *), argv[0])) { + msg_action_fun function = + xbt_dict_get(action_funs, xbt_dynar_get_as(evt, 1, char *)); + (*function) (evt); + } + } - return 0; + return 0; } -void _MSG_action_init() { - action_funs = xbt_dict_new(); - action_list = xbt_dynar_new(sizeof(xbt_dynar_t),xbt_dynar_free_voidp); - MSG_function_register_default(MSG_action_runner); +void _MSG_action_init() +{ + action_funs = xbt_dict_new(); + action_list = xbt_dynar_new(sizeof(xbt_dynar_t), xbt_dynar_free_voidp); + MSG_function_register_default(MSG_action_runner); } /** \ingroup msg_actions @@ -59,37 +65,38 @@ void _MSG_action_init() { * * Load a trace file containing actions, and execute them. */ -MSG_error_t MSG_action_trace_run(char*path) { - MSG_error_t res; - - FILE * fp; - char * line = NULL; - size_t len = 0; - ssize_t read; - - xbt_dynar_t evt; - - fp = fopen(path, "r"); - xbt_assert2(fp != NULL,"Cannot open %s: %s",path,strerror(errno)); - - while ((read = getline(&line, &len, fp)) != -1) { - char *comment = strchr(line,'#'); - if (comment!=NULL) - *comment='\0'; - xbt_str_trim(line,NULL); - if (line[0]=='\0') - continue; - evt = xbt_str_split_quoted(line); - xbt_dynar_push(action_list,&evt); - } - - if (line) - free(line); - fclose(fp); - - res = MSG_main(); - xbt_dynar_free(&action_list); - action_list = xbt_dynar_new(sizeof(xbt_dynar_t),xbt_dynar_free_voidp); - - return res; +MSG_error_t MSG_action_trace_run(char *path) +{ + MSG_error_t res; + + FILE *fp; + char *line = NULL; + size_t len = 0; + ssize_t read; + + xbt_dynar_t evt; + + fp = fopen(path, "r"); + xbt_assert2(fp != NULL, "Cannot open %s: %s", path, strerror(errno)); + + while ((read = getline(&line, &len, fp)) != -1) { + char *comment = strchr(line, '#'); + if (comment != NULL) + *comment = '\0'; + xbt_str_trim(line, NULL); + if (line[0] == '\0') + continue; + evt = xbt_str_split_quoted(line); + xbt_dynar_push(action_list, &evt); + } + + if (line) + free(line); + fclose(fp); + + res = MSG_main(); + xbt_dynar_free(&action_list); + action_list = xbt_dynar_new(sizeof(xbt_dynar_t), xbt_dynar_free_voidp); + + return res; }