summaryrefslogtreecommitdiff
path: root/src/include/serialiser_texttree.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/serialiser_texttree.hpp')
-rw-r--r--src/include/serialiser_texttree.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/include/serialiser_texttree.hpp b/src/include/serialiser_texttree.hpp
new file mode 100644
index 00000000..ad88e155
--- /dev/null
+++ b/src/include/serialiser_texttree.hpp
@@ -0,0 +1,34 @@
+/*
+ */
+
+#ifndef _SERIALISER_TEXTTREE_HPP_INCLUDED_
+#define _SERIALISER_TEXTTREE_HPP_INCLUDED_
+
+#include <ostream>
+#include "serialise.hpp"
+
+class Serialiser_TextTree:
+ public Serialiser
+{
+ ::std::ostream& m_os;
+ int m_indent_level;
+public:
+ Serialiser_TextTree(::std::ostream& os);
+
+ virtual Serialiser& operator<<(bool val) override;
+ virtual Serialiser& operator<<(unsigned int val) override;
+ virtual Serialiser& operator<<(const ::std::string& s) override;
+
+protected:
+ virtual void start_object(const char *tag) override;
+ virtual void end_object(const char* tag) override;
+ virtual void start_array(unsigned int size) override;
+ virtual void end_array() override;
+private:
+ void indent();
+ void unindent();
+ void print_indent();
+};
+
+#endif
+