]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[65-libyang-logger] Added Unexpected for impossible conditions and @throw for BadValue
authorFrancis Dupont <fdupont@isc.org>
Sat, 22 Sep 2018 15:04:19 +0000 (17:04 +0200)
committerFrancis Dupont <fdupont@isc.org>
Sat, 22 Sep 2018 15:04:19 +0000 (17:04 +0200)
src/lib/yang/translator_logger.cc
src/lib/yang/translator_logger.h

index 34f480c7715e0c57abe8f215b3e101221f4e423b..2b069d3f76ae38386ebfab0475d59f0a9ee8d8c5 100644 (file)
@@ -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 (;;) {
index 9467c5d4108a14c499ee55da5442266f3b81af94..e626cc01d1756dfd740f5736472831fbe2560cf5 100644 (file)
@@ -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);