/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
+#include <stdarg.h> /* va_arg */
+
#include "xbt/misc.h"
#include "xbt/log.h"
#include "xbt/str.h"
/*
* Helping functions
*/
-void surf_parse_error(const char *msg) {
- xbt_die("Parse error at %s:%d: %s\n", surf_parsed_filename, surf_parse_lineno, msg);
+void surf_parse_error(const char *fmt, ...) {
+ va_list va;
+ va_start(va,fmt);
+ char *msg = bvprintf(fmt,va);
+ va_end(va);
+ xbt_die("Parse error at %s:%d: %s", surf_parsed_filename, surf_parse_lineno, msg);
+}
+void surf_parse_warn(const char *fmt, ...) {
+ va_list va;
+ va_start(va,fmt);
+ char *msg = bvprintf(fmt,va);
+ va_end(va);
+ XBT_WARN("%s:%d: %s", surf_parsed_filename, surf_parse_lineno, msg);
+ free(msg);
}
double surf_parse_get_double(const char *string) {
double res;
int ret = sscanf(string, "%lg", &res);
if (ret != 1)
- surf_parse_error(bprintf("%s is not a double", string));
+ surf_parse_error("%s is not a double", string);
return res;
}
int res;
int ret = sscanf(string, "%d", &res);
if (ret != 1)
- surf_parse_error(bprintf("%s is not an integer", string));
+ surf_parse_error("%s is not an integer", string);
return res;
}
cluster.sharing_policy = SURF_LINK_FATPIPE;
break;
default:
- surf_parse_error(bprintf
- ("Invalid cluster sharing policy for cluster %s",
- cluster.id));
+ surf_parse_error("Invalid cluster sharing policy for cluster %s",
+ cluster.id);
break;
}
switch (AX_surfxml_cluster_bb_sharing_policy) {
cluster.bb_sharing_policy = SURF_LINK_SHARED;
break;
default:
- surf_parse_error(bprintf
- ("Invalid bb sharing policy in cluster %s",
- cluster.id));
+ surf_parse_error("Invalid bb sharing policy in cluster %s",
+ cluster.id);
break;
}
link.state = SURF_RESOURCE_OFF;
break;
default:
- surf_parse_error(bprintf("invalid state for link %s",link.id));
+ surf_parse_error("invalid state for link %s", link.id);
break;
}
link.state_trace = tmgr_trace_new(A_surfxml_link_state_file);
link.policy = SURF_LINK_FULLDUPLEX;
break;
default:
- surf_parse_error(bprintf("Invalid sharing policy in link %s",link.id));
+ surf_parse_error("Invalid sharing policy in link %s", link.id);
break;
}