INET Framework for OMNeT++/OMNEST
|
Functions | |
const cXMLElement * | getUniqueChild (const cXMLElement *node, const char *name) |
const cXMLElement * | getUniqueChildIfExists (const cXMLElement *node, const char *name) |
bool | parseBool (const char *text) |
void | checkTags (const cXMLElement *node, const char *allowed) |
const char * | getParameterStrValue (const cXMLElement *ptr, const char *name, const char *def) |
bool | getParameterBoolValue (const cXMLElement *ptr, const char *name, bool def) |
bool | getParameterBoolValue (const cXMLElement *ptr, const char *name) |
const char * | getParameterStrValue (const cXMLElement *ptr, const char *name) |
int | getParameterIntValue (const cXMLElement *ptr, const char *name, int def) |
int | getParameterIntValue (const cXMLElement *ptr, const char *name) |
IPAddress | getParameterIPAddressValue (const cXMLElement *ptr, const char *name, IPAddress def) |
IPAddress | getParameterIPAddressValue (const cXMLElement *ptr, const char *name) |
double | getParameterDoubleValue (const cXMLElement *ptr, const char *name, double def) |
double | getParameterDoubleValue (const cXMLElement *ptr, const char *name) |
void checkTags | ( | const cXMLElement * | node, |
const char * | allowed | ||
) |
Referenced by RSVP::delSession(), SimpleClassifier::readItemFromXML(), SimpleClassifier::readTableFromXML(), LIBTable::readTableFromXML(), RSVP::readTrafficFromXML(), RSVP::readTrafficRouteFromXML(), and RSVP::readTrafficSessionFromXML().
{ std::vector<const char *> tags; cStringTokenizer st(allowed, " "); const char *nt; while((nt = st.nextToken())!=NULL) tags.push_back(nt); for(cXMLElement *child=node->getFirstChild(); child; child=child->getNextSibling()) { unsigned int i; for(i = 0; i < tags.size(); i++) if(!strcmp(child->getTagName(), tags[i])) break; if(i == tags.size()) opp_error("subtag <%s> not expected in <%s>", child->getTagName(), node->getTagName()); } }
bool getParameterBoolValue | ( | const cXMLElement * | ptr, |
const char * | name, | ||
bool | def | ||
) |
Referenced by RSVP::readTrafficSessionFromXML().
{ const cXMLElement *xvalue = getUniqueChildIfExists(ptr, name); if(xvalue) return parseBool(xvalue->getNodeValue()); else return def; }
bool getParameterBoolValue | ( | const cXMLElement * | ptr, |
const char * | name | ||
) |
{ const cXMLElement *xvalue = getUniqueChild(ptr, name); return parseBool(xvalue->getNodeValue()); }
double getParameterDoubleValue | ( | const cXMLElement * | ptr, |
const char * | name, | ||
double | def | ||
) |
Referenced by RSVP::readTrafficSessionFromXML().
{ const cXMLElement *xvalue = getUniqueChildIfExists(ptr, name); if(xvalue) return strtod(xvalue->getNodeValue(), NULL); else return def; }
double getParameterDoubleValue | ( | const cXMLElement * | ptr, |
const char * | name | ||
) |
{ const cXMLElement *xvalue = getUniqueChild(ptr, name); return strtod(xvalue->getNodeValue(), NULL); }
int getParameterIntValue | ( | const cXMLElement * | ptr, |
const char * | name, | ||
int | def | ||
) |
Referenced by RSVP::delSession(), SimpleClassifier::readItemFromXML(), LIBTable::readTableFromXML(), and RSVP::readTrafficSessionFromXML().
{ const cXMLElement *xvalue = getUniqueChildIfExists(ptr, name); if(xvalue) return atoi(xvalue->getNodeValue()); else return def; }
int getParameterIntValue | ( | const cXMLElement * | ptr, |
const char * | name | ||
) |
{ const cXMLElement *xvalue = getUniqueChild(ptr, name); return atoi(xvalue->getNodeValue()); }
Referenced by RSVP::delSession(), SimpleClassifier::readItemFromXML(), and RSVP::readTrafficSessionFromXML().
{ const cXMLElement *xvalue = getUniqueChildIfExists(ptr, name); if(xvalue) return IPAddress(xvalue->getNodeValue()); else return def; }
IPAddress getParameterIPAddressValue | ( | const cXMLElement * | ptr, |
const char * | name | ||
) |
{ const cXMLElement *xvalue = getUniqueChild(ptr, name); return IPAddressResolver().resolve(xvalue->getNodeValue()).get4(); }
const char* getParameterStrValue | ( | const cXMLElement * | ptr, |
const char * | name | ||
) |
{ const cXMLElement *xvalue = getUniqueChild(ptr, name); return xvalue->getNodeValue(); }
const char* getParameterStrValue | ( | const cXMLElement * | ptr, |
const char * | name, | ||
const char * | def | ||
) |
Referenced by LIBTable::readTableFromXML(), and RSVP::readTrafficSessionFromXML().
{ const cXMLElement *xvalue = getUniqueChildIfExists(ptr, name); if(xvalue) return xvalue->getNodeValue(); else return def; }
const cXMLElement* getUniqueChild | ( | const cXMLElement * | node, |
const char * | name | ||
) |
Referenced by getParameterBoolValue(), getParameterDoubleValue(), getParameterIntValue(), getParameterIPAddressValue(), getParameterStrValue(), LIBTable::readTableFromXML(), and RSVP::readTrafficSessionFromXML().
{ const cXMLElement *child = getUniqueChildIfExists(node, name); if(!child) throw cRuntimeError("xml error: exactly one %s element expected", name); return child; }
const cXMLElement* getUniqueChildIfExists | ( | const cXMLElement * | node, |
const char * | name | ||
) |
Referenced by RSVP::delSession(), getParameterBoolValue(), getParameterDoubleValue(), getParameterIntValue(), getParameterIPAddressValue(), getParameterStrValue(), getUniqueChild(), SimpleClassifier::readItemFromXML(), and RSVP::readTrafficSessionFromXML().
{ cXMLElementList list = node->getChildrenByTagName(name); if(list.size() > 1) throw cRuntimeError("xml error: at most one %s element expected", name); else if(list.size() == 1) return (*list.begin()); else return NULL; }
bool parseBool | ( | const char * | text | ) |
Referenced by getParameterBoolValue().
{ if(!strcasecmp(text, "down")) return false; else if(!strcasecmp(text, "off")) return false; else if(!strcasecmp(text, "false")) return false; else if(!strcasecmp(text, "no")) return false; else if(!strcasecmp(text, "0")) return false; else if(!strcasecmp(text, "up")) return true; else if(!strcasecmp(text, "on")) return true; else if(!strcasecmp(text, "true")) return true; else if(!strcasecmp(text, "yes")) return true; else if(!strcasecmp(text, "1")) return true; else throw cRuntimeError("unknown bool constant: %s", text); }