simpleOutput.hh 685 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include <iostream>
  3. class JSonElement;
  4. class Params;
  5. class SimpleOutput
  6. {
  7. public:
  8. static void display(std::ostream &out, const JSonElement *root, const Params &params);
  9. private:
  10. SimpleOutput(std::ostream &output, const Params &p);
  11. std::string getIndent() const;
  12. inline void writeObjectEntry(const JSonObjectEntry *);
  13. inline void writePrimitive(const AJSonPrimitive *);
  14. inline void writeContainer(const JSonContainer *);
  15. inline void write(const JSonElement *);
  16. void indent_inc(int i =1);
  17. private:
  18. std::ostream &out;
  19. const Params &params;
  20. unsigned short indent;
  21. };