* Helping functions
*/
void surf_parse_assert(bool cond, const char *fmt, ...) {
- if (!cond ) {
+ if (not cond) {
va_list va;
va_start(va,fmt);
int lineno = surf_parse_lineno;
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.attach = A_surfxml_storage_attach;
sg_platf_new_storage(&storage);
}
current_model_property_set = nullptr;
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.size = surf_parse_get_size(A_surfxml_storage___type_size,
netzone->setProperty(A_surfxml_prop_id, A_surfxml_prop_value);
}
else{
- if (!current_property_set)
+ if (not current_property_set)
current_property_set = xbt_dict_new_homogeneous(&xbt_free_f); // Maybe, it should raise an error
xbt_dict_set(current_property_set, A_surfxml_prop_id, xbt_strdup(A_surfxml_prop_value), nullptr);
XBT_DEBUG("add prop %s=%s into current property set %p", A_surfxml_prop_id, A_surfxml_prop_value,
link_name = bprintf("%s_DOWN", A_surfxml_link___ctn_id);
link = simgrid::surf::LinkImpl::byName(link_name);
break;
+ default:
+ surf_parse_error("Invalid direction for link %s", link_name);
+ break;
}
xbt_free(link_name); // no-op if it's already nullptr
sg_platf_new_trace(&trace);
}
-void STag_surfxml_trace___connect(){
+void STag_surfxml_trace___connect()
+{
parse_after_config();
s_sg_platf_trace_connect_cbarg_t trace_connect;
memset(&trace_connect,0,sizeof(trace_connect));
case A_surfxml_trace___connect_kind_LINK___AVAIL:
trace_connect.kind = SURF_TRACE_CONNECT_KIND_LINK_AVAIL;
break;
+ default:
+ surf_parse_error("Invalid trace kind");
+ break;
}
sg_platf_trace_connect(&trace_connect);
}
-void STag_surfxml_AS(){
+void STag_surfxml_AS()
+{
AX_surfxml_zone_id = AX_surfxml_AS_id;
AX_surfxml_zone_routing = (AT_surfxml_zone_routing)AX_surfxml_AS_routing;
STag_surfxml_zone();
}
-void ETag_surfxml_AS(){
+
+void ETag_surfxml_AS()
+{
ETag_surfxml_zone();
}
-void STag_surfxml_zone(){
+
+void STag_surfxml_zone()
+{
parse_after_config();
ZONE_TAG = 1;
- s_sg_platf_AS_cbarg_t AS = { A_surfxml_zone_id, (int)A_surfxml_zone_routing};
+ s_sg_platf_AS_cbarg_t AS = {A_surfxml_zone_id, (int)A_surfxml_zone_routing};
sg_platf_new_AS_begin(&AS);
}
-void ETag_surfxml_zone(){
+
+void ETag_surfxml_zone()
+{
sg_platf_new_AS_seal();
}
-void STag_surfxml_config(){
+void STag_surfxml_config()
+{
ZONE_TAG = 0;
xbt_assert(current_property_set == nullptr, "Someone forgot to reset the property set to nullptr in its closing tag (or XML malformed)");
XBT_DEBUG("START configuration name = %s",A_surfxml_config_id);
"<link>, etc).");
}
}
-void ETag_surfxml_config(){
+
+void ETag_surfxml_config()
+{
xbt_dict_cursor_t cursor = nullptr;
char *key;
char *elem;
xbt_dict_foreach(current_property_set, cursor, key, elem) {
if (xbt_cfg_is_default_value(key)) {
- char* cfg = bprintf("%s:%s", key, elem);
- xbt_cfg_set_parse(cfg);
- free(cfg);
+ std::string cfg = std::string(key) + ":" + elem;
+ xbt_cfg_set_parse(cfg.c_str());
} else
XBT_INFO("The custom configuration '%s' is already defined by user!",key);
}
case A_surfxml_actor_on___failure_RESTART:
actor.on_failure = SURF_ACTOR_ON_FAILURE_RESTART;
break;
+ default:
+ surf_parse_error("Invalid on failure behavior");
+ break;
}
sg_platf_new_process(&actor);
}
void STag_surfxml_model___prop(){
- if (!current_model_property_set)
+ if (not current_model_property_set)
current_model_property_set = new std::map<std::string, std::string>();
current_model_property_set->insert(
xbt_free(dir);
surf_file_to_parse = surf_fopen(file, "r");
- xbt_assert((surf_file_to_parse), "Unable to open \"%s\"\n", file);
+ xbt_assert(surf_file_to_parse != nullptr, "Unable to open '%s'\n", file);
surf_input_buffer = surf_parse__create_buffer(surf_file_to_parse, YY_BUF_SIZE);
surf_parse__switch_to_buffer(surf_input_buffer);
surf_parse_lineno = 1;
return surf_parse_lex();
}
-int_f_void_t surf_parse = _surf_parse;
+int_f_void_t surf_parse = &_surf_parse;
SG_END_DECL()