2 * MessagePack for C dynamic typing routine
4 * Copyright (C) 2008-2009 FURUHASHI Sadayuki
6 * Distributed under the Boost Software License, Version 1.0.
7 * (See accompanying file LICENSE_1_0.txt or copy at
8 * http://www.boost.org/LICENSE_1_0.txt)
10 #ifndef MSGPACK_OBJECT_H
11 #define MSGPACK_OBJECT_H
22 * @defgroup msgpack_object Dynamically typed object
28 MSGPACK_OBJECT_NIL
= 0x00,
29 MSGPACK_OBJECT_BOOLEAN
= 0x01,
30 MSGPACK_OBJECT_POSITIVE_INTEGER
= 0x02,
31 MSGPACK_OBJECT_NEGATIVE_INTEGER
= 0x03,
32 MSGPACK_OBJECT_FLOAT32
= 0x0a,
33 MSGPACK_OBJECT_FLOAT64
= 0x04,
34 MSGPACK_OBJECT_FLOAT
= 0x04,
35 #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
36 MSGPACK_OBJECT_DOUBLE
= MSGPACK_OBJECT_FLOAT
, /* obsolete */
37 #endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */
38 MSGPACK_OBJECT_STR
= 0x05,
39 MSGPACK_OBJECT_ARRAY
= 0x06,
40 MSGPACK_OBJECT_MAP
= 0x07,
41 MSGPACK_OBJECT_BIN
= 0x08,
42 MSGPACK_OBJECT_EXT
= 0x09
43 } msgpack_object_type
;
46 struct msgpack_object
;
47 struct msgpack_object_kv
;
51 struct msgpack_object
* ptr
;
52 } msgpack_object_array
;
56 struct msgpack_object_kv
* ptr
;
79 #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
80 double dec
; /* obsolete*/
81 #endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */
83 msgpack_object_array array
;
84 msgpack_object_map map
;
85 msgpack_object_str str
;
86 msgpack_object_bin bin
;
87 msgpack_object_ext ext
;
88 } msgpack_object_union
;
90 typedef struct msgpack_object
{
91 msgpack_object_type type
;
92 msgpack_object_union via
;
95 typedef struct msgpack_object_kv
{
100 #if !defined(_KERNEL_MODE)
102 void msgpack_object_print(FILE* out
, msgpack_object o
);
106 int msgpack_object_print_buffer(char *buffer
, size_t buffer_size
, msgpack_object o
);
109 bool msgpack_object_equal(const msgpack_object x
, const msgpack_object y
);
118 #endif /* msgpack/object.h */