// MessagePack for C++ example // // Copyright (C) 2015 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 #include #include #include enum my_enum { elem1, elem2, elem3 }; MSGPACK_ADD_ENUM(my_enum); int main(void) { { // pack, unpack std::stringstream sbuf; msgpack::pack(sbuf, elem1); msgpack::pack(sbuf, elem2); my_enum e3 = elem3; msgpack::pack(sbuf, e3); msgpack::object_handle oh; std::size_t off = 0; msgpack::unpack(oh, sbuf.str().data(), sbuf.str().size(), off); std::cout << oh.get().as() << std::endl; assert(oh.get().as() == elem1); msgpack::unpack(oh, sbuf.str().data(), sbuf.str().size(), off); std::cout << oh.get().as() << std::endl; assert(oh.get().as() == elem2); msgpack::unpack(oh, sbuf.str().data(), sbuf.str().size(), off); std::cout << oh.get().as() << std::endl; assert(oh.get().as() == elem3); } { // create object without zone msgpack::object obj(elem2); std::cout << obj.as() << std::endl; assert(obj.as() == elem2); } { // create object with zone msgpack::zone z; msgpack::object objz(elem3, z); std::cout << objz.as() << std::endl; assert(objz.as() == elem3); } }