用户定义的类序列化、C++和msgpack
User defined Class Serialization, C++ and msgpack
我是一个尝试msgpack的新手。我需要序列化一个对象(用户定义类的实例),它包含指针(内部树、散列等)和一些基本类型属性。
到目前为止,我可以执行msgpack.org wiki的快速示例中所做的操作,只需将类序列化为msgpack::sbuffer
,然后读取缓冲区以取消序列化。
但是现在,我想将缓冲区发送到文件,或者将序列化结果发送到文件然后取消序列化。
有人能给我一些怎么做的建议吗?我浏览和阅读了足够多的内容,已经厌倦了:)
我的代码如下:
msgpack::sbuffer sbuf;
msgpack::pack(sbuf, cluster); //cluster is the instance of my class clustering
//HERE I SHOULD SEND THE BUFFER TO A STREAM FILE, AND THEN LOAD IT IN THE UNPACK;
msgpack::unpacked msg;
msgpack::unpack(&msg, sbuf.data(), sbuf.size());
msgpack::object obj = msg.get();
clustering clustUnser
obj.convert(&clustUnser);
谢谢大家
最佳,
勒克斯。
从这里的例子来看:
http://wiki.msgpack.org/pages/viewpage.action?pageId=1081387
看起来sbuf.data()会返回要写入二进制文件的数据的地址,sbuf.size()则会返回数据的大小。
当您想从二进制文件加载数据时,将其读取到您分配的缓冲区中,然后将地址和大小传递给msgpack::unpack调用。
相关文章:
- Msgpack能否提供更好的性能和与Python的struct.pack()相同的功能?
- msgpack:在不知道类型的情况下解包自定义类
- Msgpack中是否具有版本控制功能
- 使用C++中的MsgPack读取二进制文件
- Autobahncpp 解包复杂的 msgpack 消息
- 用 msgpack 打包多态类结构
- 使用 msgpack-c 时需要清理什么以及何时清理?
- msgpack:将类打包在成员函数中
- msgpack:C++和Java之间的消息传递
- 在C++中使用带有变体数据结构的msgpack
- C++MsgPack无法编译
- 将msgpack解包到任意对象,不包含msgpack_define
- 如何用msgpack-c打包多键地图
- MsgPack c++打包长度超过32个字符的字符串[Uubuntu]
- 在msgpack的c++实现中,如何在使用pack_map或pack_array对对象进行串行化后将其反串行化
- 使用 MsgPack 通过 ZeroMQ (zmqpp) 发送数据时会出现"msgpack::v1::insufficient_bytes"错误
- 用msgpack发送一个矢量通过zeromq
- 在MsgPack中不匹配的free()/delete
- MsgPack Woes-析构函数、pack_raw_body等
- 用户定义的类序列化、C++和msgpack