- char key_time[INSTR_DEFAULT_STR_SIZE];
- char key_value[INSTR_DEFAULT_STR_SIZE];
- char nowstr[INSTR_DEFAULT_STR_SIZE];
- char valuestr[INSTR_DEFAULT_STR_SIZE];
- char nowdeltastr[INSTR_DEFAULT_STR_SIZE];
-
- snprintf (key_time, INSTR_DEFAULT_STR_SIZE, "%s %s time", resource, variable);
- snprintf (key_value, INSTR_DEFAULT_STR_SIZE, "%s %s value", resource, variable);
- snprintf (nowstr, INSTR_DEFAULT_STR_SIZE, "%f", now);
- snprintf (valuestr, INSTR_DEFAULT_STR_SIZE, "%f", value);
- snprintf (nowdeltastr, INSTR_DEFAULT_STR_SIZE, "%f", now+delta);
-
- char *lasttimestr = xbt_dict_get_or_null(method_b_dict, key_time);
- char *lastvaluestr = xbt_dict_get_or_null(method_b_dict, key_value);
- if (lasttimestr == NULL){
- __TRACE_surf_check_variable_set_to_zero(now, variable, resource);
- pajeAddVariable(now, variable, resource, valuestr);
- xbt_dict_set(method_b_dict, key_time, xbt_strdup(nowdeltastr), xbt_free);
- xbt_dict_set(method_b_dict, key_value, xbt_strdup(valuestr), xbt_free);
- }else{
- double lasttime = atof (lasttimestr);
- double lastvalue = atof (lastvaluestr);
-
- if (lastvalue == value){
- double dif = fabs(now - lasttime);
- if (dif < 0.000001){
- //perfect, just go on
- }else{
- //time changed, have to update
- pajeSubVariable(lasttime, variable, resource, lastvaluestr);
- pajeAddVariable(now, variable, resource, valuestr);
- }
- }else{
- //value changed, have to update
- pajeSubVariable(lasttime, variable, resource, lastvaluestr);
- pajeAddVariable(now, variable, resource, valuestr);
- }
- xbt_dict_set(method_b_dict, key_time, xbt_strdup(nowdeltastr), xbt_free);
- xbt_dict_set(method_b_dict, key_value, xbt_strdup(valuestr), xbt_free);
- }
- return;
-}
-
-static void __TRACE_B_end(smx_action_t action)
-{
-}
-
-#define C_METHOD
-//C
-static void __TRACE_C_alloc(void)
-{
- method_c_dict = xbt_dict_new();
-}
-
-static void __TRACE_C_release(void)
-{
- xbt_dict_free(&method_c_dict);
-}
-
-static void __TRACE_C_start(smx_action_t action)
-{
- char key[100];
- snprintf(key, 100, "%p", action);
-
- //check if exists
- if (xbt_dict_get_or_null(method_c_dict, key)) {
- xbt_dict_remove(method_c_dict, key); //should never execute here, but it does
- }
- xbt_dict_set(method_c_dict, key, xbt_dict_new(), xbt_free);