私はこれを行う方法がわからないので、C++でmsgpackを使ってext型をパックする方法のサンプルを探しています。Msgpackを使用したC++でのエクステンションタイプのパック
私が見つけた唯一の情報は、このセクションhttps://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_packer#pack-manuallyにあります。
と仮定します。Foo型のオブジェクトをアダプタクラステンプレートを持つmsgpack ext型としてパックしたいとします。 pack_ext
とpack_ext_body
の使い方は?テンプレート内に「サブパッカー」を作成し、Fooデータを手動でパックしてから、バイナリデータのサイズとデータ自体をpack_ext
とpack_ext_body
に渡す必要がありますか? C++の専門家が私に最小限の例を与えることができれば、それは創造的なものになるでしょう。事前に
MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) {
namespace adaptor {
template<>
struct pack<Foo> {
template <typename Stream>
packer<Stream>& operator()(msgpack::packer<Stream>& o, Foo const& v) const {
// how to use ?
o.pack_ext(size_t l, int8_t type);
o.pack_ext_body(const char* b, size_t l);
}
}
}
}
ありがとう!