Algorithmique Numérique Distribuée Public GIT Repository
 author Augustin Degomme Tue, 22 Oct 2013 12:35:02 +0000 (14:35 +0200) committer Augustin Degomme Wed, 30 Oct 2013 14:23:49 +0000 (15:23 +0100)

index 734496d..01680ae 100644 (file)
@@ -96,6 +96,7 @@ typedef struct s_pushState {
type_t type;
val_t value;
int size;
+  xbt_dynar_t extra;
}s_pushState_t;

typedef struct s_popState *popState_t;
@@ -463,22 +464,35 @@ static void print_pajePushState(paje_event_t event)
}
}else{
if (event->timestamp == 0){
-      fprintf(tracing_file, "%d 0 %s %s %s %d\n",
+      fprintf(tracing_file, "%d 0 %s %s %s ",
(int)event->event_type,
((pushState_t)event->data)->type->id,
((pushState_t)event->data)->container->id,
-          ((pushState_t)event->data)->value->id,
-          ((pushState_t)event->data)->size);
+          ((pushState_t)event->data)->value->id);
+
+      char *value = NULL;
+      unsigned int iter = 0;
+      xbt_dynar_foreach( ((pushState_t)event->data)->extra, iter, value) {
+        fprintf(tracing_file, "%s ", value);
+      }
+      fprintf(tracing_file, "\n");
+
}else{
-      fprintf(tracing_file, "%d %f %s %s %s %d\n",
+      fprintf(tracing_file, "%d %f %s %s %s ",
(int)event->event_type,
event->timestamp,
((pushState_t)event->data)->type->id,
((pushState_t)event->data)->container->id,
-          ((pushState_t)event->data)->value->id,
-          ((pushState_t)event->data)->size);
-    }
+          ((pushState_t)event->data)->value->id);

+      char *value = NULL;
+      unsigned int iter = 0;
+      xbt_dynar_foreach( ((pushState_t)event->data)->extra, iter, value) {
+        fprintf(tracing_file, "%s ", value);
+      }
+      fprintf(tracing_file, "\n");
+    }
+   xbt_dynar_free(&((pushState_t)event->data)->extra);
}
}

@@ -831,7 +845,7 @@ void new_pajeSetState (double timestamp, container_t container, type_t type, val
}

-void new_pajePushState (double timestamp, container_t container, type_t type, val_t value)
+void new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value, xbt_dynar_t extra)
{
paje_event_t event = xbt_new0(s_paje_event_t, 1);
event->event_type = PAJE_PushState;
@@ -842,14 +856,15 @@ void new_pajePushState (double timestamp, container_t container, type_t type, va
((pushState_t)(event->data))->type = type;
((pushState_t)(event->data))->container = container;
((pushState_t)(event->data))->value = value;
-  ((pushState_t)(event->data))->size = -1;
+  ((pushState_t)(event->data))->extra = extra;

XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);

insert_into_buffer (event);
}

-void new_pajePushStateWithSize (double timestamp, container_t container, type_t type, val_t value, int size)
+
+void new_pajePushState (double timestamp, container_t container, type_t type, val_t value)
{
paje_event_t event = xbt_new0(s_paje_event_t, 1);
event->event_type = PAJE_PushState;
@@ -860,8 +875,6 @@ void new_pajePushStateWithSize (double timestamp, container_t container, type_t
((pushState_t)(event->data))->type = type;
((pushState_t)(event->data))->container = container;
((pushState_t)(event->data))->value = value;
-  ((pushState_t)(event->data))->size = size;
-
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);

insert_into_buffer (event);
index 21baa8f..d557de2 100644 (file)
@@ -122,7 +122,7 @@ XBT_PUBLIC(void) new_pajeAddVariable (double timestamp, container_t container, t
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);
-XBT_PUBLIC(void) new_pajePushStateWithSize (double timestamp, container_t container, type_t type, val_t value, int size);
+XBT_PUBLIC(void) new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value, xbt_dynar_t extra);
XBT_PUBLIC(void) new_pajePopState (double timestamp, container_t container, type_t type);
XBT_PUBLIC(void) new_pajeResetState (double timestamp, container_t container, type_t type);
XBT_PUBLIC(void) new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key);