Luc*_*hux 5 c++ serialization stream msgpack
我很想尝试msgpack.我需要序列化一个对象(用户定义的类的实例),它包含指针(内部树,散列等)和一些基本类型属性.
到目前为止,我可以在msgpack.org wiki的快速示例中执行操作,只需将类序列化为a 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);
Run Code Online (Sandbox Code Playgroud)
谢谢大家!
最好的,
Luchux.
从这里的例子来看:
http://wiki.msgpack.org/pages/viewpage.action?pageId=1081387
看起来 sbuf.data() 将返回地址,而 sbuf.size() 将返回要写入二进制文件的数据的大小。
当您想要从二进制文件加载数据时,请将其读入您分配的缓冲区,然后将地址和大小传递给 msgpack::unpack 调用。