9 #ifndef CLUON_TOPROTOVISITOR_HPP 10 #define CLUON_TOPROTOVISITOR_HPP 37 std::string encodedData()
const noexcept;
43 void preVisit(int32_t
id,
const std::string &shortName,
const std::string &longName) noexcept;
44 void postVisit() noexcept;
46 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
bool &v) noexcept;
47 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
char &v) noexcept;
48 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int8_t &v) noexcept;
49 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint8_t &v) noexcept;
50 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int16_t &v) noexcept;
51 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint16_t &v) noexcept;
52 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int32_t &v) noexcept;
53 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint32_t &v) noexcept;
54 void visit(uint32_t
id, std::string &&typeName, std::string &&name, int64_t &v) noexcept;
55 void visit(uint32_t
id, std::string &&typeName, std::string &&name, uint64_t &v) noexcept;
56 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
float &v) noexcept;
57 void visit(uint32_t
id, std::string &&typeName, std::string &&name,
double &v) noexcept;
58 void visit(uint32_t
id, std::string &&typeName, std::string &&name, std::string &v) noexcept;
61 void visit(uint32_t &
id, std::string &&typeName, std::string &&name, T &value) noexcept {
67 value.accept(nestedProtoEncoder);
68 encode(m_buffer, std::move(nestedProtoEncoder.
encodedData()));
72 std::size_t encode(std::ostream &o,
bool &v) noexcept;
73 std::size_t encode(std::ostream &o, int8_t &v) noexcept;
74 std::size_t encode(std::ostream &o, uint8_t &v) noexcept;
75 std::size_t encode(std::ostream &o, int16_t &v) noexcept;
76 std::size_t encode(std::ostream &o, uint16_t &v) noexcept;
77 std::size_t encode(std::ostream &o, int32_t &v) noexcept;
78 std::size_t encode(std::ostream &o, uint32_t &v) noexcept;
79 std::size_t encode(std::ostream &o, int64_t &v) noexcept;
80 std::size_t encode(std::ostream &o, uint64_t &v) noexcept;
81 std::size_t encode(std::ostream &o,
float &v) noexcept;
82 std::size_t encode(std::ostream &o,
double &v) noexcept;
83 std::size_t encode(std::ostream &o,
const std::string &v) noexcept;
86 uint8_t toZigZag8(int8_t v) noexcept;
87 uint16_t toZigZag16(int16_t v) noexcept;
88 uint32_t toZigZag32(int32_t v) noexcept;
89 uint64_t toZigZag64(int64_t v) noexcept;
98 std::size_t toVarInt(std::ostream &out, uint64_t v) noexcept;
107 template <
typename T>
111 size += toVarInt(m_buffer, key);
112 size += encode(m_buffer, v);
123 uint64_t encodeKey(uint32_t fieldIdentifier, uint8_t protoType) noexcept;
126 std::stringstream m_buffer{
""};
mf fieldIdentifier((!_fieldIdentifier.empty() ? static_cast< uint32_t >(std::stoi(::stringtoolbox::trim(_fieldIdentifier))) :fieldIdentifierCounter))
#define LIBCLUON_API
Definition: cluon.hpp:56
std::string encodedData() const noexcept
Definition: ToProtoVisitor.cpp:15
void visit(uint32_t &id, std::string &&typeName, std::string &&name, T &value) noexcept
Definition: ToProtoVisitor.hpp:61
Definition: ToProtoVisitor.hpp:23