+ xbt_dict_cursor_t cursor = NULL;
+ unsigned int cursor_ar = 0;
+ char *key, *value, *res;
+ char *resource;
+ char *aux = NULL;
+ char *var_cpy = NULL;
+ xbt_dynar_t resources = NULL;
+ if (!IS_TRACING_PLATFORM) return;
+ if (!xbt_dict_length(method_b_dict)){
+ return;
+ }else{
+ /* get all resources from method_b_dict */
+ resources = xbt_dynar_new(sizeof(char*), xbt_free);
+ xbt_dict_foreach(method_b_dict, cursor, key, value) {
+ res = strsplit (key, 0, VARIABLE_SEPARATOR);
+ aux = strsplit (key, 1, VARIABLE_SEPARATOR);
+ if (strcmp (aux, "Time") == 0){ //only need to add one of three
+ var_cpy = xbt_strdup (res);
+ xbt_dynar_push (resources, &var_cpy);
+ }
+ free (aux);
+ free (res);
+ }
+
+ /* iterate through resources array */
+ xbt_dynar_foreach (resources, cursor_ar, resource) {
+ char timekey[100], valuekey[100], variablekey[100];
+ char *time = NULL;
+ char *value = NULL;
+ char *variable = NULL;
+ snprintf (timekey, 100, "%s%cTime", resource, VARIABLE_SEPARATOR);
+ snprintf (valuekey, 100, "%s%cValue", resource, VARIABLE_SEPARATOR);
+ snprintf (variablekey, 100, "%s%cVariable", resource, VARIABLE_SEPARATOR);
+
+ time = xbt_dict_get_or_null (method_b_dict, timekey);
+ if (!time) continue;
+ value = xbt_dict_get (method_b_dict, valuekey);
+ variable = xbt_dict_get (method_b_dict, variablekey);
+ pajeSubVariable (atof(time), variable, resource, value);
+
+ xbt_dict_remove (method_b_dict, timekey);
+ xbt_dict_remove (method_b_dict, valuekey);
+ xbt_dict_remove (method_b_dict, variablekey);
+ }
+ }
+ xbt_dict_free (&method_b_dict);
+}
+
+static void __TRACE_B_start (smx_action_t action) {}
+static void __TRACE_B_event (smx_action_t action, double now, double delta, const char *variable, const char *resource, double value)
+{
+