Mercurial > hg > piper-cpp
changeset 183:03b067abd91d
Explicitly handle the individual error cases.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Fri, 03 Feb 2017 12:41:37 +0000 |
parents | 02c3a8596c2b |
children | 150cfa0c71e1 |
files | vamp-json/VampJson.h |
diffstat | 1 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/vamp-json/VampJson.h Fri Feb 03 11:18:41 2017 +0000 +++ b/vamp-json/VampJson.h Fri Feb 03 12:41:37 2017 +0000 @@ -1109,13 +1109,18 @@ static bool successful(json11::Json j, std::string &err) { - if (j["result"].is_object()) { - return true; - } else if (j["error"].is_object()) { + const bool hasResult = j["result"].is_object(); + const bool hasError = j["error"].is_object(); + if (hasResult && hasError) { + err = "valid response may contain only one of result and error objects"; + return false; + } else if (hasError) { + return false; + } else if (!hasResult) { + err = "either a result or an error object is required for a valid response"; return false; } else { - err = "result or error object required for valid response"; - return false; + return true; } }