1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #include <msgpack.h>
- #include <stdio.h>
- void print(char const* buf, unsigned int len)
- {
- size_t i = 0;
- for(; i < len ; ++i)
- printf("%02x ", 0xff & buf[i]);
- printf("\n");
- }
- int main(void)
- {
- msgpack_sbuffer sbuf;
- msgpack_packer pk;
- msgpack_zone mempool;
- msgpack_object deserialized;
- /* msgpack::sbuffer is a simple buffer implementation. */
- msgpack_sbuffer_init(&sbuf);
- /* serialize values into the buffer using msgpack_sbuffer_write callback function. */
- msgpack_packer_init(&pk, &sbuf, msgpack_sbuffer_write);
- msgpack_pack_array(&pk, 3);
- msgpack_pack_int(&pk, 1);
- msgpack_pack_true(&pk);
- msgpack_pack_str(&pk, 7);
- msgpack_pack_str_body(&pk, "example", 7);
- print(sbuf.data, sbuf.size);
- /* deserialize the buffer into msgpack_object instance. */
- /* deserialized object is valid during the msgpack_zone instance alive. */
- msgpack_zone_init(&mempool, 2048);
- msgpack_unpack(sbuf.data, sbuf.size, NULL, &mempool, &deserialized);
- /* print the deserialized object. */
- msgpack_object_print(stdout, deserialized);
- puts("");
- msgpack_zone_destroy(&mempool);
- msgpack_sbuffer_destroy(&sbuf);
- return 0;
- }
|