From: Francis Dupont Date: Sat, 22 Sep 2018 15:04:19 +0000 (+0200) Subject: [65-libyang-logger] Added Unexpected for impossible conditions and @throw for BadValue X-Git-Tag: 153-netconf-configs_base^2~1^2^2^2^2^2~1^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6ae9f94e635111f48debd9a8ff964c77255e56c;p=thirdparty%2Fkea.git [65-libyang-logger] Added Unexpected for impossible conditions and @throw for BadValue --- diff --git a/src/lib/yang/translator_logger.cc b/src/lib/yang/translator_logger.cc index 34f480c771..2b069d3f76 100644 --- a/src/lib/yang/translator_logger.cc +++ b/src/lib/yang/translator_logger.cc @@ -43,7 +43,8 @@ ElementPtr TranslatorLogger::getLoggerKea(const string& xpath) { ConstElementPtr name = getItem(xpath + "/name"); if (!name) { - return (ElementPtr()); + // Can't happen as name is the key. + isc_throw(Unexpected, "getLoggerKea requires name: " << xpath); } ElementPtr result = Element::createMap(); result->set("name", name); @@ -70,7 +71,8 @@ ElementPtr TranslatorLogger::getOutputOption(const string& xpath) { ConstElementPtr output = getItem(xpath + "/output"); if (!output) { - return (ElementPtr()); + // Can't happen as output is the key. + isc_throw(Unexpected, "getOutputOption requires (!output): " << xpath); } ElementPtr result = Element::createMap(); result->set("output", output); @@ -93,7 +95,9 @@ ElementPtr TranslatorLogger::getOutputOptions(const string& xpath) { S_Iter_Value iter = getIter(xpath + "/*"); if (!iter) { - return (ElementPtr()); + // Can't happen. + isc_throw(Unexpected, "getOutputOptions: can't get iterator: " + << xpath); } ElementPtr result = Element::createList(); for (;;) { @@ -217,7 +221,8 @@ ElementPtr TranslatorLoggers::getLoggersKea(const string& xpath) { S_Iter_Value iter = getIter(xpath + "/*"); if (!iter) { - return (ElementPtr()); + // Can't happen. + isc_throw(Unexpected, "getLoggersKea: can't get iterator: " << xpath); } ElementPtr result = Element::createList(); for (;;) { diff --git a/src/lib/yang/translator_logger.h b/src/lib/yang/translator_logger.h index 9467c5d410..e626cc01d1 100644 --- a/src/lib/yang/translator_logger.h +++ b/src/lib/yang/translator_logger.h @@ -107,6 +107,7 @@ protected: /// /// @param xpath The xpath of the output options. /// @param elem The JSON element. + /// @throw BadValue on an output option without output. void setOutputOptions(const std::string& xpath, isc::data::ConstElementPtr elem); @@ -173,6 +174,7 @@ protected: /// /// @param xpath The xpath of loggers. /// @param elem The JSON element. + /// @throw BadValue on a logger without name. void setLoggersKea(const std::string& xpath, isc::data::ConstElementPtr elem);