- xbt_dict_get(action_funs, xbt_dynar_get_as(evt, 1, char *));
- (*function) (evt);
- xbt_dynar_free(&evt);
+ (msg_action_fun)xbt_dict_get(action_funs, evt[1]);
+ function(evt);
+ free(evt);
+ }
+ } else { // Should have got my trace file in argument
+ xbt_assert(argc >= 2,
+ "No '%s' agent function provided, no simulation-wide trace file provided to MSG_action_trace_run(), "
+ "and no process-wide trace file provided in deployment file. Aborting.",
+ argv[0]
+ );
+ xbt_replay_trace_reader_t reader = xbt_replay_trace_reader_new(argv[1]);
+ while ((evt=xbt_replay_trace_reader_get(reader))) {
+ if (!strcmp(argv[0],evt[0])) {
+ msg_action_fun function =
+ (msg_action_fun)xbt_dict_get(action_funs, evt[1]);
+ function(evt);
+ free(evt);
+ } else {
+ XBT_WARN("%s: Ignore trace element not for me",
+ xbt_replay_trace_reader_position(reader));
+ }
+ }
+ xbt_replay_trace_reader_free(&reader);