とりあえず、シリアライズしてファイルへの保存と、読み込みしてデシリアライズをしてみました。
ファイルに保存するときの拡張子は.mpacにするのがいいそうです。
#include <msgpack.hpp> #include <vector> #include <string> #include <iostream> #include <fstream> #include <boost/range/algorithm/for_each.hpp> void disp(const std::string& s) { std::cout << s << std::endl; } int main() { // シリアライズ { std::vector<std::string> vec; vec.push_back("Hello"); vec.push_back("MessagePack"); std::ofstream file("data.mpac"); msgpack::pack(&file, vec); } // デシリアライズ { std::ifstream file("data.mpac"); std::istreambuf_iterator<char> first(file); std::istreambuf_iterator<char> last; const std::string data(first, last); try { msgpack::unpacked msg; msgpack::unpack(&msg, data.data(), data.size()); msgpack::object obj = msg.get(); const std::vector<std::string> vec = obj.as<std::vector<std::string> >(); boost::for_each(vec, disp); } catch (msgpack::unpack_error&) { std::cout << "unpack failed" << std::endl; } catch (msgpack::type_error&) { std::cout << "type error" << std::endl; } } }
Hello MessagePack