9 #ifndef CLUON_TOJSONVISITOR_HPP 10 #define CLUON_TOJSONVISITOR_HPP 12 #include "cluon/any/any.hpp" 50 ToJSONVisitor(
bool withOuterCurlyBraces =
true,
const std::map<uint32_t, bool> &mask = {}) noexcept;
55 std::string json()
const noexcept;
61 void preVisit(int32_t
id,
const std::string &shortName,
const std::string &longName) noexcept;
62 void postVisit() noexcept;
64 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
bool &v) noexcept;
65 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
char &v) noexcept;
66 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int8_t &v) noexcept;
67 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint8_t &v) noexcept;
68 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int16_t &v) noexcept;
69 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint16_t &v) noexcept;
70 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int32_t &v) noexcept;
71 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint32_t &v) noexcept;
72 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int64_t &v) noexcept;
73 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint64_t &v) noexcept;
74 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
float &v) noexcept;
75 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
double &v) noexcept;
76 void visit(uint32_t
id, std::string &&typeName, std::string &&name, std::string &v) noexcept;
79 void visit(uint32_t &
id, std::string &&typeName, std::string &&name, T &value) noexcept {
81 if ((0 == m_mask.count(
id)) || m_mask[
id]) {
84 value.accept(jsonVisitor);
85 m_buffer <<
'\"' << name <<
'\"' <<
':' << jsonVisitor.
json() <<
',' <<
'\n';
86 }
catch (
const linb::bad_any_cast &) {
98 static std::string encodeBase64(
const std::string &input) noexcept;
101 bool m_withOuterCurlyBraces{
true};
102 std::map<uint32_t, bool> m_mask;
103 std::stringstream m_buffer{};
void visit(uint32_t &id, std::string &&typeName, std::string &&name, T &value) noexcept
Definition: ToJSONVisitor.hpp:79
#define LIBCLUON_API
Definition: cluon.hpp:56
Definition: ToJSONVisitor.hpp:34
std::string json() const noexcept
Definition: ToJSONVisitor.cpp:20