OpenDaVINCI  4.15.3
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 
66  CSVFromVisitableVisitor(ostream &out, const bool &header = true, const char &delimiter = ',');
67 
68  virtual ~CSVFromVisitableVisitor();
69 
70  public:
71  virtual void beginVisit(const int32_t &id, const string &shortName, const string &longName);
72  virtual void endVisit();
73 
74  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, odcore::serialization::Serializable &v);
75  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, bool &v);
76  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, char &v);
77  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, unsigned char &v);
78  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int8_t &v);
79  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int16_t &v);
80  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint16_t &v);
81  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int32_t &v);
82  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint32_t &v);
83  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int64_t &v);
84  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint64_t &v);
85  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, float &v);
86  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, double &v);
87  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, string &v);
88  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &size);
89 
90  public:
97  string getHeader() const;
98 
104  string getEntry() const;
105 
106  private:
107  ostream &m_buffer;
108  stringstream m_header;
109  stringstream m_entry;
110  string m_entryBackup;
111  bool m_addHeader;
112  char m_delimiter;
113  };
114 
115  }
116 } // odcore::reflection
117 
118 #endif /*OPENDAVINCI_CORE_REFLECTION_CSVFROMVISITABLEVISITOR_H_*/
Definition: CSVFromVisitableVisitor.h:40
Definition: Visitor.h:37
Definition: Serializable.h:59