diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-05-18 10:51:56 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-05-18 10:51:56 +0000 |
commit | e08998140f9b5cbdc973fae0554042925f431df3 (patch) | |
tree | 06fbc2fa84aebf7d4006eef1bb577f2cd7f687a7 /protocols/FacebookRM/JSON_CAJUN/writer.h | |
parent | a85e238092f480e9de278ae507af710633fa2824 (diff) |
renaming FacebookRM folder
git-svn-id: http://svn.miranda-ng.org/main/trunk@35 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/FacebookRM/JSON_CAJUN/writer.h')
-rw-r--r-- | protocols/FacebookRM/JSON_CAJUN/writer.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/protocols/FacebookRM/JSON_CAJUN/writer.h b/protocols/FacebookRM/JSON_CAJUN/writer.h new file mode 100644 index 0000000000..c364bcb289 --- /dev/null +++ b/protocols/FacebookRM/JSON_CAJUN/writer.h @@ -0,0 +1,57 @@ +/**********************************************
+
+License: BSD
+Project Webpage: http://cajun-jsonapi.sourceforge.net/
+Author: Terry Caton
+
+***********************************************/
+
+#pragma once
+
+#include "elements.h"
+#include "visitor.h"
+
+namespace json
+{
+
+class Writer : private ConstVisitor
+{
+public:
+ static void Write(const Object& object, std::ostream& ostr);
+ static void Write(const Array& array, std::ostream& ostr);
+ static void Write(const String& string, std::ostream& ostr);
+ static void Write(const Number& number, std::ostream& ostr);
+ static void Write(const Boolean& boolean, std::ostream& ostr);
+ static void Write(const Null& null, std::ostream& ostr);
+ static void Write(const UnknownElement& elementRoot, std::ostream& ostr);
+
+private:
+ Writer(std::ostream& ostr);
+
+ template <typename ElementTypeT>
+ static void Write_i(const ElementTypeT& element, std::ostream& ostr);
+
+ void Write_i(const Object& object);
+ void Write_i(const Array& array);
+ void Write_i(const String& string);
+ void Write_i(const Number& number);
+ void Write_i(const Boolean& boolean);
+ void Write_i(const Null& null);
+ void Write_i(const UnknownElement& unknown);
+
+ virtual void Visit(const Array& array);
+ virtual void Visit(const Object& object);
+ virtual void Visit(const Number& number);
+ virtual void Visit(const String& string);
+ virtual void Visit(const Boolean& boolean);
+ virtual void Visit(const Null& null);
+
+ std::ostream& m_ostr;
+ int m_nTabDepth;
+};
+
+
+} // End namespace
+
+
+#include "writer.inl"
\ No newline at end of file |