#include <pcre.h> /* regular expression library */
-#include "simgrid/platf.h" // platform creation API
+#include "simgrid/platf_interface.h" // platform creation API internal interface
#include "surf_routing_private.h"
#include "surf/surf_routing.h"
/**
* \brief Add a "router" to the network element list
*/
-static void parse_S_router(void)
+static void parse_S_router(surf_parsing_router_arg_t router)
{
network_element_info_t info = NULL;
if (current_routing->hierarchy == SURF_ROUTING_NULL)
current_routing->hierarchy = SURF_ROUTING_BASE;
- xbt_assert(!xbt_lib_get_or_null(as_router_lib,struct_router->V_router_id, ROUTING_ASR_LEVEL),
+ xbt_assert(!xbt_lib_get_or_null(as_router_lib,router->V_router_id, ROUTING_ASR_LEVEL),
"Reading a router, processing unit \"%s\" already exists",
- struct_router->V_router_id);
+ router->V_router_id);
xbt_assert(current_routing->set_processing_unit,
"no defined method \"set_processing_unit\" in \"%s\"",
current_routing->name);
(*(current_routing->set_processing_unit)) (current_routing,
- struct_router->V_router_id);
+ router->V_router_id);
info = xbt_new0(s_network_element_info_t, 1);
info->rc_component = current_routing;
info->rc_type = SURF_NETWORK_ELEMENT_ROUTER;
- xbt_lib_set(as_router_lib,struct_router->V_router_id,ROUTING_ASR_LEVEL,(void *) info);
+ xbt_lib_set(as_router_lib,router->V_router_id,ROUTING_ASR_LEVEL,(void *) info);
if (strcmp(A_surfxml_router_coordinates,"")) {
if(!COORD_ASR_LEVEL) xbt_die("To use coordinates, you must set configuration 'coordinates' to 'yes'");
xbt_dynar_t ctn = xbt_str_split_str(A_surfxml_router_coordinates, " ");
xbt_dynar_shrink(ctn, 0);
- xbt_lib_set(as_router_lib,struct_router->V_router_id,COORD_ASR_LEVEL,(void *) ctn);
+ xbt_lib_set(as_router_lib,router->V_router_id,COORD_ASR_LEVEL,(void *) ctn);
}
}
/**
* brief Add a "router" to the network element list from XML description
*/
-static void parse_S_router_XML(void)
-{
- return parse_S_router();
-}
-
-/**
- * brief Add a "router" to the network element list from XML description
- */
-static void parse_S_router_lua(const char* router_id)
-{
- struct_router->V_router_id = xbt_strdup(router_id);
- struct_router->V_router_coord = xbt_strdup("");
- return parse_S_router();
+static void parse_S_router_lua(const char* router_id) {
+ s_surf_parsing_router_arg_t router;
+ memset(&router,0,sizeof(router));
+ router.V_router_id = router_id;
+ router.V_router_coord = "";
+ return parse_S_router(&router);
}
/**
/* parse generic elements */
surf_parse_host_add_cb(parse_S_host_XML);
surfxml_add_callback(ETag_surfxml_host_cb_list, &parse_E_host_XML);
- surfxml_add_callback(STag_surfxml_router_cb_list, &parse_S_router_XML);
+ surf_parse_router_add_cb(parse_S_router);
surfxml_add_callback(STag_surfxml_route_cb_list,
&parse_S_route_new_and_endpoints_XML);
host.V_host_core = struct_cluster->S_cluster_core;
host.V_host_state_initial = SURF_RESOURCE_ON;
host.V_host_coord = "";
- surf_parse_host(&host);
+ sg_platf_new_host(&host);
XBT_DEBUG("</host>");
A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
radical_ends = xbt_str_split(groups, "-");
switch (xbt_dynar_length(radical_ends)) {
case 1:
- surf_parse_get_int(&start, xbt_dynar_get_as(radical_ends, 0, char *));
+ start=surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
host_id = bprintf("%s%d%s", struct_cluster->V_cluster_prefix, start, struct_cluster->V_cluster_suffix);
link_id = bprintf("%s_link_%d", struct_cluster->V_cluster_id, start);
host.V_host_core = struct_cluster->S_cluster_core;
host.V_host_state_initial = SURF_RESOURCE_ON;
host.V_host_coord = "";
- surf_parse_host(&host);
+ sg_platf_new_host(&host);
XBT_DEBUG("</host>");
A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
case 2:
- surf_parse_get_int(&start,
- xbt_dynar_get_as(radical_ends, 0, char *));
- surf_parse_get_int(&end, xbt_dynar_get_as(radical_ends, 1, char *));
+ start=surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
+ end= surf_parse_get_int(xbt_dynar_get_as(radical_ends, 1, char *));
for (i = start; i <= end; i++) {
host_id = bprintf("%s%d%s", struct_cluster->V_cluster_prefix, i, struct_cluster->V_cluster_suffix);
link_id = bprintf("%s_link_%d", struct_cluster->V_cluster_id, i);
host.V_host_core = struct_cluster->S_cluster_core;
host.V_host_state_initial = SURF_RESOURCE_ON;
host.V_host_coord = "";
- surf_parse_host(&host);
+ sg_platf_new_host(&host);
XBT_DEBUG("</host>");
A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
char *random_radical = A_surfxml_random_radical;
char *rd_name = NULL;
char *rd_value;
- surf_parse_get_double(&mean,A_surfxml_random_mean);
- surf_parse_get_double(&std,A_surfxml_random_std_deviation);
- surf_parse_get_double(&min,A_surfxml_random_min);
- surf_parse_get_double(&max,A_surfxml_random_max);
- surf_parse_get_double(&seed,A_surfxml_random_seed);
+ mean = surf_parse_get_double(A_surfxml_random_mean);
+ std = surf_parse_get_double(A_surfxml_random_std_deviation);
+ min = surf_parse_get_double(A_surfxml_random_min);
+ max = surf_parse_get_double(A_surfxml_random_max);
+ seed = surf_parse_get_double(A_surfxml_random_seed);
double res = 0;
int i = 0;
xbt_free(tmpbuf);
break;
- case 2: surf_parse_get_int(&start,
- xbt_dynar_get_as(radical_ends, 0, char *));
- surf_parse_get_int(&end, xbt_dynar_get_as(radical_ends, 1, char *));
+ case 2:
+ start = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
+ end = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 1, char *));
for (i = start; i <= end; i++) {
xbt_assert(!xbt_dict_get_or_null(random_value,random_id),"Custom Random '%s' already exists !",bprintf("%s%d",random_id,i));
res = random_generate(random);