static void print_resources(jed_simgrid_container_t resource_parent);
static void print_key_value_dict(xbt_dict_t meta_info_dict);
static void print_events(xbt_dynar_t event_list);
-static void get_hierarchy_list(xbt_dynar_t hier_list, jed_simgrid_container_t container);
+static void get_hierarchy_list(xbt_dynar_t hier_list,
+ jed_simgrid_container_t container);
/*********************************************************/
-static void get_hierarchy_list(xbt_dynar_t hier_list, jed_simgrid_container_t container) {
+static void get_hierarchy_list(xbt_dynar_t hier_list,
+ jed_simgrid_container_t container) {
xbt_assert( container != NULL );
int child_nb = -1;
jed_simgrid_container_t child_container;
- xbt_dynar_foreach(container->parent->container_children, i, child_container) {
+ xbt_dynar_foreach(container->parent->container_children, i,
+ child_container) {
if( child_container == container ) {
child_nb = i;
break;
}
-static void get_hierarchy_string(jed_simgrid_container_t container, char *outbuf) {
+static void get_hierarchy_string(jed_simgrid_container_t container,
+ char *outbuf) {
char buf[1024];
xbt_dynar_t hier_list;
unsigned int iter;
if( key_value_dict != NULL ) {
xbt_dict_foreach(key_value_dict,cursor,key,data) {
- fprintf(jed_file, "<prop key=\"%s\" value=\"%s\" />\n",key,data);
+ fprintf(jed_file, " <prop key=\"%s\" value=\"%s\" />\n",key,data);
}
}
}
xbt_assert( container != NULL );
- fprintf(jed_file, "<res name=\"%s\">\n", container->name);
+ fprintf(jed_file, " <res name=\"%s\">\n", container->name);
if( container->container_children != NULL ) {
xbt_dynar_foreach(container->container_children, i, child_container) {
print_container(child_container);
} else {
print_resources(container);
}
- fprintf(jed_file, "</res>\n");
+ fprintf(jed_file, " </res>\n");
}
static void print_resources(jed_simgrid_container_t resource_parent) {
get_hierarchy_string(resource_parent, resid);
- fprintf(jed_file, "<rset id=\"%s\" nb=\"%d\" names=\"", resid, res_nb);
+ fprintf(jed_file, " <rset id=\"%s\" nb=\"%d\" names=\"", resid, res_nb);
xbt_dynar_foreach(resource_parent->resource_list, i, res_name) {
fprintf(jed_file, "%s", res_name);
if( i != res_nb-1 ) {
static void print_platform(jed_simgrid_container_t root_container) {
-
- fprintf(jed_file, "<platform>\n");
+ fprintf(jed_file, " <platform>\n");
print_container(root_container);
- fprintf(jed_file, "</platform>\n");
+ fprintf(jed_file, " </platform>\n");
}
static void print_event(jed_event_t event) {
xbt_assert( event != NULL );
xbt_assert( event->resource_subsets != NULL );
- fprintf(jed_file, "<event>\n");
+ fprintf(jed_file, " <event>\n");
- fprintf(jed_file, "<prop key=\"name\" value=\"%s\" />\n", event->name);
- fprintf(jed_file, "<prop key=\"start\" value=\"%g\" />\n", event->start_time);
- fprintf(jed_file, "<prop key=\"end\" value=\"%g\" />\n", event->end_time);
- fprintf(jed_file, "<prop key=\"type\" value=\"%s\" />\n", event->type);
+ fprintf(jed_file, " <prop key=\"name\" value=\"%s\" />\n", event->name);
+ fprintf(jed_file, " <prop key=\"start\" value=\"%g\" />\n",
+ event->start_time);
+ fprintf(jed_file, " <prop key=\"end\" value=\"%g\" />\n",
+ event->end_time);
+ fprintf(jed_file, " <prop key=\"type\" value=\"%s\" />\n", event->type);
- fprintf(jed_file, "<res_util>\n");
+ fprintf(jed_file, " <res_util>\n");
xbt_dynar_foreach(event->resource_subsets, i, subset) {
get_hierarchy_string(subset->parent, resid);
- fprintf(jed_file, "<select resources=\"");
+ fprintf(jed_file, " <select resources=\"");
fprintf(jed_file, "%s", resid);
fprintf(jed_file, ".[%d-%d]", start, end);
fprintf(jed_file, "\" />\n");
}
- fprintf(jed_file, "</res_util>\n");
-
- fprintf(jed_file, "<characteristics>\n");
- {
- char *ch;
- unsigned int iter;
- xbt_dynar_foreach(event->characteristics_list, iter, ch) {
- fprintf(jed_file, "<characteristic name=\"%s\" />\n", ch);
+ fprintf(jed_file, " </res_util>\n");
+ if (!xbt_dynar_is_empty(event->characteristics_list)){
+ fprintf(jed_file, " <characteristics>\n");
+ {
+ char *ch;
+ unsigned int iter;
+ xbt_dynar_foreach(event->characteristics_list, iter, ch) {
+ fprintf(jed_file, " <characteristic name=\"%s\" />\n", ch);
+ }
}
+ fprintf(jed_file, " </characteristics>\n");
}
- fprintf(jed_file, "</characteristics>\n");
- fprintf(jed_file, "<info>\n");
- print_key_value_dict(event->info_hash);
- fprintf(jed_file, "</info>\n");
+ if (!xbt_dict_is_empty(event->info_hash)){
+ fprintf(jed_file, " <info>\n");
+ print_key_value_dict(event->info_hash);
+ fprintf(jed_file, " </info>\n");
+ }
- fprintf(jed_file, "</event>\n");
+ fprintf(jed_file, " </event>\n");
}
static void print_events(xbt_dynar_t event_list) {
unsigned int i;
jed_event_t event;
- fprintf(jed_file, "<events>\n");
+ fprintf(jed_file, " <events>\n");
xbt_dynar_foreach(event_list, i, event) {
print_event(event);
}
- fprintf(jed_file, "</events>\n");
+ fprintf(jed_file, " </events>\n");
}
-
void write_jedule_output(FILE *file, jedule_t jedule,
- xbt_dynar_t event_list, xbt_dict_t meta_info_dict) {
-
-// xbt_assert( jed_file != NULL );
+ xbt_dynar_t event_list, xbt_dict_t meta_info_dict) {
jed_file = file;
if (!xbt_dynar_is_empty(jedule_event_list)){
fprintf(jed_file, "<jedule>\n");
- fprintf(jed_file, "<jedule_meta>\n");
- print_key_value_dict(jedule->jedule_meta_info);
- fprintf(jed_file, "</jedule_meta>\n");
+ if (!xbt_dict_is_empty(jedule->jedule_meta_info)){
+ fprintf(jed_file, " <jedule_meta>\n");
+ print_key_value_dict(jedule->jedule_meta_info);
+ fprintf(jed_file, " </jedule_meta>\n");
+ }
print_platform(jedule->root_container);