5


私は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);

みんなありがとう!
ベスト、
ルチュクス。

4

1 に答える 1

3

ここの例から:

http://wiki.msgpack.org/pages/viewpage.action?pageId=1081387

sbuf.data() はアドレスを返し、sbuf.size() はバイナリ ファイルに書き込むデータのサイズを返すようです。

バイナリ ファイルからデータをロードする場合は、割り当てたバッファにデータを読み込み、アドレスとサイズを msgpack::unpack 呼び出しに渡します。

于 2011-06-01T19:18:39.673 に答える