#include "xbt/config.h"
#include "xbt/str.h"
#include "surf/surf_private.h"
+#include "surf/surf_routing.h" /* COORD_HOST_LEVEL and COORD_ASR_LEVEL */
#include "simix/context.h"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_config, surf,
SIMIX_context_set_parallel_threshold(xbt_cfg_get_int(_surf_cfg_set, name));
}
+static void _surf_cfg_cb__surf_network_coordinates(const char *name,
+ int pos)
+{
+ char *val = xbt_cfg_get_string(_surf_cfg_set, name);
+ if (!strcmp(val, "yes")) {
+ if (!COORD_HOST_LEVEL) {
+ COORD_HOST_LEVEL = xbt_lib_add_level(host_lib,xbt_dynar_free_voidp);
+ COORD_ASR_LEVEL = xbt_lib_add_level(as_router_lib,xbt_dynar_free_voidp);
+ }
+ } else if (!strcmp(val, "no")) {
+ if (COORD_HOST_LEVEL)
+ XBT_WARN("Cannot disable CMD prop coordinates, once set.");
+ } else {
+ XBT_WARN("Setting CMD prop coordinates must be \"yes\" or \"no\"");
+ }
+}
+
static void _surf_cfg_cb__surf_network_fullduplex(const char *name,
int pos)
{
xbt_cfgelm_int, &default_value_int, 1, 1,
_surf_cfg_cb_contexts_parallel_threshold, NULL);
+ default_value = xbt_strdup("no");
+ xbt_cfg_register(&_surf_cfg_set, "coordinates",
+ "\"yes\" or \"no\" (FIXME: document)",
+ xbt_cfgelm_string, &default_value, 1, 1,
+ _surf_cfg_cb__surf_network_coordinates, NULL);
+ xbt_cfg_setdefault_string(_surf_cfg_set, "coordinates", default_value);
+
default_value_int = 0;
xbt_cfg_register(&_surf_cfg_set, "fullduplex",
"Activate the interferences between uploads and downloads for fluid max-min models (LV08, CM03)",
#include "xbt/peer.h"
#include "xbt/config.h" /* prototypes of this module */
-#include "surf/surf_routing.h" /* COORD_HOST_LEVEL and COORD_ASR_LEVEL */
-
-xbt_lib_t host_lib;
-int COORD_HOST_LEVEL; //Coordinates level
-xbt_lib_t as_router_lib;
-int COORD_ASR_LEVEL; //Coordinates level
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_cfg, xbt, "configuration support");
}
*(val++) = '\0';
- if (!strcmp(name,"coordinates")){
- if(!strcmp(val,"yes") && !COORD_HOST_LEVEL){
- XBT_INFO("Configuration change: Set '%s' to '%s'", name, val);
- COORD_HOST_LEVEL = xbt_lib_add_level(host_lib,xbt_dynar_free_voidp);
- COORD_ASR_LEVEL = xbt_lib_add_level(as_router_lib,xbt_dynar_free_voidp);
- free(optionlist_cpy);
- return;
- }
- if(strcmp(val,"yes"))
- xbt_die("Setting CMD prop coordinates must be \"yes\"");
- }
-
if (strncmp(name, "contexts/", strlen("contexts/")))
XBT_INFO("Configuration change: Set '%s' to '%s'", name, val);