9 #ifndef CLUON_FROMMSGPACKVISITOR_HPP    10 #define CLUON_FROMMSGPACKVISITOR_HPP    13 #include "cluon/any/any.hpp"    29     class MsgPackKeyValue {
    31         MsgPackKeyValue &operator=(MsgPackKeyValue &&) = 
delete;
    34         MsgPackKeyValue()                        = 
default;
    35         MsgPackKeyValue(
const MsgPackKeyValue &) = 
default;
    36         MsgPackKeyValue(MsgPackKeyValue &&)      = 
default;
    37         MsgPackKeyValue &operator=(
const MsgPackKeyValue &) = 
default;
    38         ~MsgPackKeyValue()                                  = 
default;
    41         std::string m_key{
""};
    57     FromMsgPackVisitor(std::map<std::string, FromMsgPackVisitor::MsgPackKeyValue> &preset) noexcept;
    69     void decodeFrom(std::istream &in) noexcept;
    75     void preVisit(int32_t 
id, 
const std::string &shortName, 
const std::string &longName) noexcept;
    76     void postVisit() noexcept;
    78     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, 
bool &v) noexcept;
    79     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, 
char &v) noexcept;
    80     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, int8_t &v) noexcept;
    81     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, uint8_t &v) noexcept;
    82     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, int16_t &v) noexcept;
    83     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, uint16_t &v) noexcept;
    84     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, int32_t &v) noexcept;
    85     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, uint32_t &v) noexcept;
    86     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, int64_t &v) noexcept;
    87     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, uint64_t &v) noexcept;
    88     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, 
float &v) noexcept;
    89     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, 
double &v) noexcept;
    90     void visit(uint32_t 
id, std::string &&typeName, std::string &&name, std::string &v) noexcept;
    93     void visit(uint32_t &
id, std::string &&typeName, std::string &&name, T &value) noexcept {
    97         if (0 < m_keyValues.count(name)) {
    99                 std::map<std::string, FromMsgPackVisitor::MsgPackKeyValue> v
   100                     = linb::any_cast<std::map<std::string, FromMsgPackVisitor::MsgPackKeyValue>>(m_keyValues[name].m_value);
   102                 value.accept(nestedMsgPackDecoder);
   103             } 
catch (
const linb::bad_any_cast &) { 
   110     std::map<std::string, FromMsgPackVisitor::MsgPackKeyValue> readKeyValues(std::istream &in) noexcept;
   111     uint64_t readUint(std::istream &in) noexcept;
   112     int64_t readInt(std::istream &in) noexcept;
   113     std::string readString(std::istream &in) noexcept;
   116     std::map<std::string, FromMsgPackVisitor::MsgPackKeyValue> m_data{};
   117     std::map<std::string, FromMsgPackVisitor::MsgPackKeyValue> &m_keyValues;
 
#define LIBCLUON_API
Definition: cluon.hpp:56
 
void visit(uint32_t &id, std::string &&typeName, std::string &&name, T &value) noexcept
Definition: FromMsgPackVisitor.hpp:93
 
Definition: FromMsgPackVisitor.hpp:25
 
MsgPackConstants
Definition: MsgPackConstants.hpp:16