【发布时间】:2019-11-14 14:38:31
【问题描述】:
这是我用来打包和解包已知类的代码 sn-p:
MessageCoffeeIsReady input(1, "Black coffee is ready");
// ---- Serialize to buffer
msgpack::sbuffer sbuf;
msgpack::pack(sbuf, input);
// ---- Send over line...
// ---- Unpack received buffer
msgpack::object_handle oh = msgpack::unpack(sbuf.data(), sbuf.size());
msgpack::object obj = oh.get();
// ---- Convert to message
MessageCoffeIsReady result; // <- How do i know the msgpack::object contains `MessageCoffeIsReady`?
obj.convert(result);
我的班级是这样的:
class MessageCoffeeIsReady : public MessageBase
{
protected:
std::string m_name;
int m_id;
public:
MessageCoffeeIsReady(int id, std::string name)
{ m_id = id; m_name = name; }
MSGPACK_DEFINE (m_name, m_id);
};
我的问题是:我怎么知道我收到了MessageCoffeIsReady 类型的消息?
是否有任何内部 typeid 可用于转换为特定类?
【问题讨论】: