X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/152117af2fbcf4c99d0da5d10a6813aac7eee007..a1688a8f4d3a06b7dfd59fdcf06c7a198b235fbb:/src/surf/surfxml_parse.c diff --git a/src/surf/surfxml_parse.c b/src/surf/surfxml_parse.c index 4fc26516e7..661240fdae 100644 --- a/src/surf/surfxml_parse.c +++ b/src/surf/surfxml_parse.c @@ -109,6 +109,33 @@ double surf_parse_get_time(const char *string) return surf_parse_get_value_with_unit(string, units); } +double surf_parse_get_size(const char *string) +{ + const struct unit_scale units[] = { + { "TiB", pow(1024, 4) }, + { "GiB", pow(1024, 3) }, + { "MiB", pow(1024, 2) }, + { "KiB", 1024 }, + { "TB", 1e12 }, + { "GB", 1e9 }, + { "MB", 1e6 }, + { "kB", 1e3 }, + { "B", 1.0 }, + { "", 1.0 }, /* default unit is bytes*/ + { "Tib", 0.125 * pow(1024, 4) }, + { "Gib", 0.125 * pow(1024, 3) }, + { "Mib", 0.125 * pow(1024, 2) }, + { "Kib", 0.125 * 1024 }, + { "Tb", 0.125 * 1e12 }, + { "Gb", 0.125 * 1e9 }, + { "Mb", 0.125 * 1e6 }, + { "kb", 0.125 * 1e3 }, + { "b", 0.125 }, + { NULL, 0 } + }; + return surf_parse_get_value_with_unit(string, units); +} + double surf_parse_get_bandwidth(const char *string) { const struct unit_scale units[] = { @@ -205,6 +232,7 @@ void ETag_surfxml_storage(void) storage.id = A_surfxml_storage_id; storage.type_id = A_surfxml_storage_typeId; storage.content = A_surfxml_storage_content; + storage.content_type = A_surfxml_storage_content___type; storage.properties = current_property_set; sg_platf_new_storage(&storage); current_property_set = NULL; @@ -221,10 +249,11 @@ void ETag_surfxml_storage___type(void) memset(&storage_type,0,sizeof(storage_type)); storage_type.content = A_surfxml_storage___type_content; + storage_type.content_type = A_surfxml_storage___type_content___type; storage_type.id = A_surfxml_storage___type_id; storage_type.model = A_surfxml_storage___type_model; storage_type.properties = current_property_set; - storage_type.size = surf_parse_get_int(A_surfxml_storage___type_size); + storage_type.size = surf_parse_get_size(A_surfxml_storage___type_size); sg_platf_new_storage_type(&storage_type); current_property_set = NULL; } @@ -251,7 +280,7 @@ void ETag_surfxml_mount(void) memset(&mount,0,sizeof(mount)); mount.name = A_surfxml_mount_name; - mount.id = A_surfxml_mount_id; + mount.storageId = A_surfxml_mount_storageId; sg_platf_new_mount(&mount); } @@ -463,9 +492,11 @@ void STag_surfxml_router(void){ sg_platf_new_router(&router); } -void STag_surfxml_cluster(void){ +void ETag_surfxml_cluster(void){ s_sg_platf_cluster_cbarg_t cluster; memset(&cluster,0,sizeof(cluster)); + cluster.properties = current_property_set; + cluster.id = A_surfxml_cluster_id; cluster.prefix = A_surfxml_cluster_prefix; cluster.suffix = A_surfxml_cluster_suffix; @@ -517,6 +548,12 @@ void STag_surfxml_cluster(void){ cluster.availability_trace = A_surfxml_cluster_availability___file; cluster.state_trace = A_surfxml_cluster_state___file; sg_platf_new_cluster(&cluster); + + current_property_set = NULL; +} + +void STag_surfxml_cluster(void){ + xbt_assert(current_property_set == NULL, "Someone forgot to reset the property set to NULL in its closing tag (or XML malformed)"); } void STag_surfxml_cabinet(void){ @@ -916,7 +953,6 @@ void ETag_surfxml_trace___connect(void){} void STag_surfxml_trace(void){} void ETag_surfxml_router(void){} void ETag_surfxml_host___link(void){} -void ETag_surfxml_cluster(void){} void ETag_surfxml_cabinet(void){} void ETag_surfxml_peer(void){} void STag_surfxml_backbone(void){}