1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #include <sstream>
- #include <iostream>
- #include <cassert>
- #include <msgpack.hpp>
- enum my_enum {
- elem1,
- elem2,
- elem3
- };
- MSGPACK_ADD_ENUM(my_enum);
- int main(void)
- {
- {
- 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<my_enum>() << std::endl;
- assert(oh.get().as<my_enum>() == elem1);
- msgpack::unpack(oh, sbuf.str().data(), sbuf.str().size(), off);
- std::cout << oh.get().as<my_enum>() << std::endl;
- assert(oh.get().as<my_enum>() == elem2);
- msgpack::unpack(oh, sbuf.str().data(), sbuf.str().size(), off);
- std::cout << oh.get().as<my_enum>() << std::endl;
- assert(oh.get().as<my_enum>() == elem3);
- }
- {
- msgpack::object obj(elem2);
- std::cout << obj.as<my_enum>() << std::endl;
- assert(obj.as<my_enum>() == elem2);
- }
- {
- msgpack::zone z;
- msgpack::object objz(elem3, z);
- std::cout << objz.as<my_enum>() << std::endl;
- assert(objz.as<my_enum>() == elem3);
- }
- }
|