diff options
Diffstat (limited to 'src/include/serialiser_texttree.hpp')
-rw-r--r-- | src/include/serialiser_texttree.hpp | 34 |
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 + |