Returns the tangent of `x`.
+## <a id="json-object"></a> Json object
+
+The global `Json` object can be used to encode and decode JSON.
+
+### <a id="json-encode"></a> Json.encode
+
+Signature:
+
+ function encode(x);
+
+Encodes an arbitrary value into JSON.
+
+### <a id="json-decode"></a> Json.decode
+
+Signature:
+
+ function decode(x);
+
+Decodes a JSON string.
+
## <a id="number-type"></a> Number type
### <a id="number-to_string"></a> Number#to_string
set(base_SOURCES
application.cpp application-version.cpp application.thpp array.cpp array-script.cpp boolean.cpp boolean-script.cpp console.cpp context.cpp
convert.cpp debuginfo.cpp dictionary.cpp dictionary-script.cpp dynamicobject.cpp dynamicobject.thpp dynamictype.cpp
- exception.cpp fifo.cpp filelogger.cpp filelogger.thpp initialize.cpp json.cpp logger.cpp logger.thpp math-script.cpp
+ exception.cpp fifo.cpp filelogger.cpp filelogger.thpp initialize.cpp json.cpp json-script.cpp logger.cpp logger.thpp math-script.cpp
netstring.cpp networkstream.cpp number.cpp number-script.cpp object.cpp object-script.cpp primitivetype.cpp process.cpp
ringbuffer.cpp scriptframe.cpp function.cpp function-script.cpp functionwrapper.cpp scriptglobal.cpp
scriptutils.cpp serializer.cpp socket.cpp stacktrace.cpp
--- /dev/null
+/******************************************************************************
+ * Icinga 2 *
+ * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org) *
+ * *
+ * This program is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU General Public License *
+ * as published by the Free Software Foundation; either version 2 *
+ * of the License, or (at your option) any later version. *
+ * *
+ * 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. *
+ ******************************************************************************/
+
+#include "base/dictionary.hpp"
+#include "base/function.hpp"
+#include "base/functionwrapper.hpp"
+#include "base/scriptframe.hpp"
+#include "base/initialize.hpp"
+#include "base/json.hpp"
+
+using namespace icinga;
+
+static String JsonEncodeShim(const Value& value)
+{
+ return JsonEncode(value);
+}
+
+static void InitializeJsonObj(void)
+{
+ Dictionary::Ptr jsonObj = new Dictionary();
+
+ /* Methods */
+ jsonObj->Set("encode", new Function(WrapFunction(JsonEncodeShim)));
+ jsonObj->Set("decode", new Function(WrapFunction(JsonDecode)));
+
+ ScriptGlobal::Set("Json", jsonObj);
+}
+
+INITIALIZE_ONCE(InitializeJsonObj);
+
BOOST_THROW_EXCEPTION(std::invalid_argument(msgbuf.str()));
}
- if (m_Name.IsEmpty()) {
- std::ostringstream msgbuf;
- msgbuf << "The name of an object may not be empty: " << m_DebugInfo;
- BOOST_THROW_EXCEPTION(std::invalid_argument(msgbuf.str()));
- }
-
std::vector<Expression *> exprs;
Array::Ptr templateArray = new Array();