static void routing_parse_Srandom(void); /* random bypass */
static void routing_parse_Erandom(void); /* random bypass */
-static void routing_parse_Sconfig(void); /* config Tag */
-static void routing_parse_Econfig(void); /* config Tag */
-
static char* replace_random_parameter(char * chaine);
static void clean_routing_after_parse(void);
void surf_parse_add_callback_config(void)
{
- surfxml_add_callback(STag_surfxml_config_cb_list, &routing_parse_Sconfig);
- surfxml_add_callback(ETag_surfxml_config_cb_list, &routing_parse_Econfig);
surfxml_add_callback(STag_surfxml_prop_cb_list, &parse_properties_XML);
surfxml_add_callback(STag_surfxml_random_cb_list, &routing_parse_Srandom);
}
src,dst,src_as->name, dst_as->name,rc->name);
}
-static void routing_parse_Sconfig(void)
-{
- XBT_DEBUG("START configuration name = %s",A_surfxml_config_id);
-}
-
-static void routing_parse_Econfig(void)
-{
- xbt_dict_cursor_t cursor = NULL;
- char *key;
- char *elem;
- char *cfg;
- xbt_dict_foreach(current_property_set, cursor, key, elem) {
- cfg = bprintf("%s:%s",key,elem);
- if(xbt_cfg_is_default_value(_surf_cfg_set, key))
- xbt_cfg_set_parse(_surf_cfg_set, cfg);
- else
- XBT_INFO("The custom configuration '%s' is already defined by user!",key);
- free(cfg);
- }
- XBT_DEBUG("End configuration name = %s",A_surfxml_config_id);
-}
static void parse_create_host_link(int i)
{
xbt_dynar_t ETag_surfxml_ASroute_cb_list = NULL;
xbt_dynar_t STag_surfxml_bypassRoute_cb_list = NULL;
xbt_dynar_t ETag_surfxml_bypassRoute_cb_list = NULL;
-xbt_dynar_t STag_surfxml_config_cb_list = NULL;
-xbt_dynar_t ETag_surfxml_config_cb_list = NULL;
xbt_dynar_t STag_surfxml_include_cb_list = NULL;
xbt_dynar_t ETag_surfxml_include_cb_list = NULL;
xbt_dynar_new(sizeof(void_f_void_t), NULL);
ETag_surfxml_peer_cb_list =
xbt_dynar_new(sizeof(void_f_void_t), NULL);
- STag_surfxml_config_cb_list =
- xbt_dynar_new(sizeof(void_f_void_t), NULL);
- ETag_surfxml_config_cb_list =
- xbt_dynar_new(sizeof(void_f_void_t), NULL);
STag_surfxml_include_cb_list =
xbt_dynar_new(sizeof(void_f_void_t), NULL);
ETag_surfxml_include_cb_list =
xbt_dynar_free(&ETag_surfxml_cluster_cb_list);
xbt_dynar_free(&STag_surfxml_peer_cb_list);
xbt_dynar_free(&ETag_surfxml_peer_cb_list);
- xbt_dynar_free(&STag_surfxml_config_cb_list);
- xbt_dynar_free(&ETag_surfxml_config_cb_list);
xbt_dynar_free(&STag_surfxml_include_cb_list);
xbt_dynar_free(&ETag_surfxml_include_cb_list);
}
surfxml_call_cb_functions(STag_surfxml_bypassRoute_cb_list);
}
void STag_surfxml_config(void){
- surfxml_call_cb_functions(STag_surfxml_config_cb_list);
+ XBT_DEBUG("START configuration name = %s",A_surfxml_config_id);
+ xbt_assert(current_property_set == NULL, "Someone forgot to reset the property set to NULL in its closing tag (or XML malformed)");
+ current_property_set = xbt_dict_new();
+
+}
+void ETag_surfxml_config(void){
+ xbt_dict_cursor_t cursor = NULL;
+ char *key;
+ char *elem;
+ char *cfg;
+ xbt_dict_foreach(current_property_set, cursor, key, elem) {
+ cfg = bprintf("%s:%s",key,elem);
+ if(xbt_cfg_is_default_value(_surf_cfg_set, key))
+ xbt_cfg_set_parse(_surf_cfg_set, cfg);
+ else
+ XBT_INFO("The custom configuration '%s' is already defined by user!",key);
+ free(cfg);
+ }
+ XBT_DEBUG("End configuration name = %s",A_surfxml_config_id);
+ current_property_set = NULL;
}
void STag_surfxml_random(void){
surfxml_call_cb_functions(STag_surfxml_random_cb_list);
parse_method(E, AS);
parse_method(E, ASroute);
parse_method(E, bypassRoute);
-parse_method(E, config);
/* Open and Close parse file */