9 #ifndef CLUON_TOCSVVISITOR_HPP 10 #define CLUON_TOCSVVISITOR_HPP 56 ToCSVVisitor(
char delimiter =
';',
bool withHeader =
true,
const std::map<uint32_t, bool> &mask = {}) noexcept;
68 ToCSVVisitor(
const std::string &prefix,
char delimiter,
bool withHeader,
bool isNested) noexcept;
74 std::string csv()
const noexcept;
79 void clear() noexcept;
85 void preVisit(int32_t
id,
const std::string &shortName,
const std::string &longName) noexcept;
86 void postVisit() noexcept;
88 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
bool &v) noexcept;
89 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
char &v) noexcept;
90 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int8_t &v) noexcept;
91 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint8_t &v) noexcept;
92 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int16_t &v) noexcept;
93 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint16_t &v) noexcept;
94 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int32_t &v) noexcept;
95 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint32_t &v) noexcept;
96 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int64_t &v) noexcept;
97 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint64_t &v) noexcept;
98 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
float &v) noexcept;
99 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
double &v) noexcept;
100 void visit(uint32_t
id, std::string &&typeName, std::string &&name, std::string &v) noexcept;
102 template <
typename T>
103 void visit(uint32_t &
id, std::string &&typeName, std::string &&name, T &value) noexcept {
106 if ((0 == m_mask.count(
id)) || m_mask[
id]) {
107 constexpr
bool IS_NESTED{
true};
108 ToCSVVisitor csvVisitor(name, m_delimiter, m_withHeader, IS_NESTED);
109 value.accept(csvVisitor);
112 m_bufferHeader << csvVisitor.m_bufferHeader.str();
114 m_bufferValues << csvVisitor.m_bufferValues.str();
119 std::map<uint32_t, bool> m_mask{};
120 std::string m_prefix{};
121 char m_delimiter{
';'};
122 bool m_withHeader{
true};
123 bool m_isNested{
false};
124 bool m_fillHeader{
true};
125 std::stringstream m_bufferHeader{};
126 std::stringstream m_bufferValues{};
void visit(uint32_t &id, std::string &&typeName, std::string &&name, T &value) noexcept
Definition: ToCSVVisitor.hpp:103
#define LIBCLUON_API
Definition: cluon.hpp:56
Definition: ToCSVVisitor.hpp:38