1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // MessagePack for C++ example
- //
- // Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi
- //
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- //
- #include <msgpack.hpp>
- #include <string>
- #include <iostream>
- #include <sstream>
- int main(void)
- {
- msgpack::type::tuple<int, bool, std::string> src(1, true, "example");
- // serialize the object into the buffer.
- // any classes that implements write(const char*,size_t) can be a buffer.
- std::stringstream buffer;
- msgpack::pack(buffer, src);
- // send the buffer ...
- buffer.seekg(0);
- // deserialize the buffer into msgpack::object instance.
- std::string str(buffer.str());
- msgpack::object_handle oh = msgpack::unpack(str.data(), str.size());
- // deserialized object is valid during the msgpack::object_handle instance alive.
- msgpack::object deserialized = oh.get();
- // msgpack::object supports ostream.
- std::cout << deserialized << std::endl;
- // convert msgpack::object instance into the original type.
- // if the type is mismatched, it throws msgpack::type_error exception.
- msgpack::type::tuple<int, bool, std::string> dst;
- deserialized.convert(dst);
- return 0;
- }
|