]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - pdns/json.hh
Merge pull request #8223 from PowerDNS/omoerbeek-patch-1
[thirdparty/pdns.git] / pdns / json.hh
index 00e573e35c13c460b366ab0a46bbc0a16a9f8f23..69deb48faf68d7a8ae10fea1b10c6aa9ed937e2f 100644 (file)
@@ -1,27 +1,41 @@
 /*
-    PowerDNS Versatile Database Driven Nameserver
-    Copyright (C) 2002-2012  PowerDNS.COM BV
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License version 2
-    as published by the Free Software Foundation
-    
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+ * This file is part of PowerDNS or dnsdist.
+ * Copyright -- PowerDNS.COM B.V. and its contributors
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * In addition, for the avoidance of any doubt, permission is granted to
+ * link this program with OpenSSL and to (re)distribute the binaries
+ * produced as the result of such linking.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
 #pragma once // it is 2012, deal with it
 
 #include <string>
-#include <map>
-#include "rapidjson/document.h"
+#include <stdexcept>
+#include "json11.hpp"
+
+int intFromJson(const json11::Json container, const std::string& key);
+int intFromJson(const json11::Json container, const std::string& key, const int default_value);
+double doubleFromJson(const json11::Json container, const std::string& key);
+double doubleFromJson(const json11::Json container, const std::string& key, const double default_value);
+std::string stringFromJson(const json11::Json container, const std::string &key);
+bool boolFromJson(const json11::Json container, const std::string& key);
+bool boolFromJson(const json11::Json container, const std::string& key, const bool default_value);
 
-std::string returnJSONObject(const std::map<std::string, std::string>& items);
-std::string returnJSONError(const std::string& error);
-std::string makeLogGrepJSON(std::map<std::string, std::string>& varmap, const std::string& fname, const std::string& prefix="");
-std::string makeStringFromDocument(const rapidjson::Document& doc);
+class JsonException : public std::runtime_error
+{
+public:
+  JsonException(const std::string& what) : std::runtime_error(what) {
+  }
+};