xml reader

This commit is contained in:
Janik Schlemminger
2014-04-08 10:46:38 +02:00
51 changed files with 5117 additions and 240 deletions

View File

@@ -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);
}
}