xml reader
This commit is contained in:
@@ -19,7 +19,7 @@ std::string phaseNameToString(tlm::tlm_phase phase)
|
||||
return str;
|
||||
}
|
||||
|
||||
unsigned int queryIntParameter(XMLElement* node, string name) {
|
||||
unsigned int queryUIntParameter(XMLElement* node, string name) {
|
||||
int result;
|
||||
XMLElement* element;
|
||||
for (element = node->FirstChildElement("parameter"); element != NULL;
|
||||
@@ -34,10 +34,24 @@ unsigned int queryIntParameter(XMLElement* node, string name) {
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "error: " + name + " element not found" << endl;
|
||||
reportFatal("Query XML","Parameter '" + name +"' does not exist.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool parameterExists(tinyxml2::XMLElement* node, std::string name)
|
||||
{
|
||||
XMLElement* element;
|
||||
for (element = node->FirstChildElement("parameter"); element != NULL;
|
||||
element = element->NextSiblingElement("parameter"))
|
||||
{
|
||||
if (element->Attribute("id") == name)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
double queryDoubleParameter(XMLElement* node, string name) {
|
||||
double result;
|
||||
XMLElement* element;
|
||||
@@ -53,7 +67,7 @@ double queryDoubleParameter(XMLElement* node, string name) {
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "error: " + name + " element not found" << endl;
|
||||
reportFatal("Query XML","Parameter '" + name +"' does not exist.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -65,14 +79,14 @@ bool queryBoolParameter(XMLElement* node, string name) {
|
||||
{
|
||||
if (element->Attribute("id") == name)
|
||||
{
|
||||
assert(!strcmp(element->Attribute("type"), "double"));
|
||||
assert(!strcmp(element->Attribute("type"), "bool"));
|
||||
XMLError error = element->QueryBoolAttribute("value", &result);
|
||||
assert(!error);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "error: " + name + " element not found" << endl;
|
||||
reportFatal("Query XML","Parameter '" + name +"' does not exist.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -87,6 +101,16 @@ string queryStringParameter(XMLElement* node, string name) {
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "error: element not found" << endl;
|
||||
reportFatal("Query XML","Parameter '" + name +"' does not exist.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void loadXML(string uri, XMLDocument& doc)
|
||||
{
|
||||
XMLError error = doc.LoadFile(uri.c_str());
|
||||
|
||||
if (error) {
|
||||
reportFatal("Configuration", "Error loading xml from: " + uri);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user