}else{
if (created) { // declared, let's work
char valuestr[100];
+ s_subVariable n;
snprintf(valuestr, 100, "%g", value);
container_t container = PJ_container_get(resource);
type_t type = PJ_type_get (variable, container->type);
new_pajeAddVariable(time, container, type, value);
break;
case INSTR_US_SUB:
- new_pajeSubVariable(time, container, type, value);
+ n.new_pajeSubVariable(time, container, type, value);
break;
default:
THROW_IMPOSSIBLE;
xbt_dict_t values; //valid for all types except variable and container
}s_type_t;
+//--------------------------------------------------
class s_val;
-
typedef s_val *val_t;
class s_val {
char *color;
type_t father;
};
-
typedef s_val s_val_t;
+//--------------------------------------------------
typedef enum {
INSTR_HOST,
INSTR_LINK,
INSTR_MSG_TASK
} e_container_types;
-typedef struct s_container *container_t;
-typedef struct s_container {
+//--------------------------------------------------
+class s_container;
+typedef s_container *container_t;
+
+class s_container {
+ public:
sg_netpoint_t netpoint;
char *name; /* Unique name of this container */
char *id; /* Unique id of this container */
type_t type; /* Type of this container */
int level; /* Level in the hierarchy, root level is 0 */
e_container_types kind; /* This container is of what kind */
- struct s_container *father;
+ s_container *father;
xbt_dict_t children;
-}s_container_t;
-
+};
+typedef s_container s_container_t;
+//--------------------------------------------------
class paje_event;
-
typedef paje_event *paje_event_t;
class paje_event {
void (*free) (paje_event_t event);
void *data;
};
-
typedef paje_event s_paje_event_t;
+//--------------------------------------------------
typedef struct s_defineContainerType *defineContainerType_t;
typedef struct s_defineContainerType {
double value;
}s_addVariable_t;
-typedef struct s_subVariable *subVariable_t;
-typedef struct s_subVariable {
+//--------------------------------------------------
+class s_subVariable;
+
+typedef s_subVariable *subVariable_t;
+
+class s_subVariable {
+ public:
container_t container;
type_t type;
double value;
-}s_subVariable_t;
+ //methods
+ XBT_PUBLIC(void) new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
+};
+typedef s_subVariable s_subVariable_t;
+//--------------------------------------------------
class s_setState;
XBT_PUBLIC(void) new_pajeSetVariable (double timestamp, container_t container, type_t type, double value);
XBT_PUBLIC(void) new_pajeAddVariable (double timestamp, container_t container, type_t type, double value);
-XBT_PUBLIC(void) new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
+
XBT_PUBLIC(void) new_pajeSetState (double timestamp, container_t container, type_t type, val_t value);
XBT_PUBLIC(void) new_pajePushState (double timestamp, container_t container, type_t type, val_t value);
}
static void instr_event (double now, double delta, type_t variable, container_t resource, double value)
-{
+{ s_subVariable n;
__TRACE_surf_check_variable_set_to_zero(now, variable->name, resource->name);
new_pajeAddVariable(now, resource, variable, value);
- new_pajeSubVariable(now + delta, resource, variable, value);
+ n.new_pajeSubVariable(now + delta, resource, variable, value);
}
/* TRACE_surf_link_set_utilization: entry point from SimGrid */
insert_into_buffer (event);
}
-void new_pajeSubVariable (double timestamp, container_t container, type_t type, double value)
+void s_subVariable_t::new_pajeSubVariable (double timestamp, container_t container, type_t type, double value)
{
paje_event_t event = xbt_new0(s_paje_event_t, 1);
event->event_type = PAJE_SubVariable;