OpenDaVINCI  4.16.0
CSVFromVisitableVisitor.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_REFLECTION_CSVFROMVISITABLEVISITOR_H_
21 #define OPENDAVINCI_CORE_REFLECTION_CSVFROMVISITABLEVISITOR_H_
22 
23 #include <ostream>
24 #include <sstream>
25 #include <string>
26 
29 
30 namespace odcore { namespace serialization { class Serializable; } }
31 
32 namespace odcore {
33  namespace reflection {
34 
35  using namespace std;
36 
41  private:
48 
55 
56  public:
58 
67  CSVFromVisitableVisitor(ostream &out, const bool &header = true, const char &delimiter = ',', const string &headerPrefix = "");
68 
69  virtual ~CSVFromVisitableVisitor();
70 
71  public:
72  virtual void beginVisit(const int32_t &id, const string &shortName, const string &longName);
73  virtual void endVisit();
74 
75  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, odcore::serialization::Serializable &v);
76  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, bool &v);
77  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, char &v);
78  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, unsigned char &v);
79  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int8_t &v);
80  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int16_t &v);
81  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint16_t &v);
82  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int32_t &v);
83  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint32_t &v);
84  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int64_t &v);
85  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint64_t &v);
86  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, float &v);
87  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, double &v);
88  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, string &v);
89  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &size);
90  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &count, const odcore::TYPE_ &t);
91 
92 
93  public:
100  string getHeader() const;
101 
107  string getEntry() const;
108 
109  private:
110  ostream &m_buffer;
111  stringstream m_header;
112  string m_headerPrefix;
113  stringstream m_entry;
114  string m_entryBackup;
115  bool m_addHeader;
116  char m_delimiter;
117  };
118 
119  }
120 } // odcore::reflection
121 
122 #endif /*OPENDAVINCI_CORE_REFLECTION_CSVFROMVISITABLEVISITOR_H_*/
Definition: CSVFromVisitableVisitor.h:40
TYPE_
Definition: opendavinci.h:96
Definition: Visitor.h:37
Definition: Serializable.h:59