10#ifndef MSGPACK_V2_CREATE_OBJECT_VISITOR_HPP
11#define MSGPACK_V2_CREATE_OBJECT_VISITOR_HPP
35#if !defined(MSGPACK_USE_CPP03)
70 obj->
type = msgpack::type::NIL;
75 obj->
type = msgpack::type::BOOLEAN;
81 obj->
type = msgpack::type::POSITIVE_INTEGER;
88 obj->
type = msgpack::type::POSITIVE_INTEGER;
89 obj->
via.
u64 =
static_cast<uint64_t
>(v);
92 obj->
type = msgpack::type::NEGATIVE_INTEGER;
99 obj->
type = msgpack::type::FLOAT32;
105 obj->
type = msgpack::type::FLOAT64;
113 obj->
type = msgpack::type::STR;
122 std::memcpy(tmp, v, size);
137 obj->
type = msgpack::type::BIN;
146 std::memcpy(tmp, v, size);
161 obj->
type = msgpack::type::EXT;
164 obj->
via.
ext.
size =
static_cast<uint32_t
>(size - 1);
170 std::memcpy(tmp, v, size);
172 obj->
via.
ext.
size =
static_cast<uint32_t
>(size - 1);
185 obj->
type = msgpack::type::ARRAY;
187 if (num_elements == 0) {
192#if SIZE_MAX == UINT_MAX
219 obj->
type = msgpack::type::MAP;
221 if (num_kv_pairs == 0) {
226#if SIZE_MAX == UINT_MAX
#define MSGPACK_ASSERT
Definition assert.hpp:22
Definition create_object_visitor.hpp:27
bool visit_float64(double v)
Definition create_object_visitor.hpp:103
bool end_array()
Definition create_object_visitor.hpp:211
bool visit_ext(const char *v, uint32_t size)
Definition create_object_visitor.hpp:157
bool end_map()
Definition create_object_visitor.hpp:251
std::vector< msgpack::object * > m_stack
Definition create_object_visitor.hpp:267
bool visit_positive_integer(uint64_t v)
Definition create_object_visitor.hpp:79
bool visit_negative_integer(int64_t v)
Definition create_object_visitor.hpp:85
void set_referenced(bool referenced)
Definition create_object_visitor.hpp:66
bool m_referenced
Definition create_object_visitor.hpp:269
msgpack::object m_obj
Definition create_object_visitor.hpp:266
void insufficient_bytes(size_t, size_t)
Definition create_object_visitor.hpp:258
bool end_array_item()
Definition create_object_visitor.hpp:207
void init()
Definition create_object_visitor.hpp:53
bool end_map_value()
Definition create_object_visitor.hpp:247
void set_zone(msgpack::zone &zone)
Definition create_object_visitor.hpp:64
bool start_map_key()
Definition create_object_visitor.hpp:237
create_object_visitor & operator=(create_object_visitor &&other)
Definition create_object_visitor.hpp:46
bool visit_str(const char *v, uint32_t size)
Definition create_object_visitor.hpp:109
unpack_limit m_limit
Definition create_object_visitor.hpp:265
bool visit_nil()
Definition create_object_visitor.hpp:68
msgpack::zone * m_zone
Definition create_object_visitor.hpp:268
bool end_map_key()
Definition create_object_visitor.hpp:240
bool referenced() const
Definition create_object_visitor.hpp:65
bool start_array_item()
Definition create_object_visitor.hpp:204
bool start_array(uint32_t num_elements)
Definition create_object_visitor.hpp:181
msgpack::zone & zone()
Definition create_object_visitor.hpp:63
bool visit_float32(float v)
Definition create_object_visitor.hpp:97
unpack_reference_func m_func
Definition create_object_visitor.hpp:263
create_object_visitor(create_object_visitor &&other)
Definition create_object_visitor.hpp:36
bool visit_boolean(bool v)
Definition create_object_visitor.hpp:73
msgpack::zone const & zone() const
Definition create_object_visitor.hpp:62
bool visit_bin(const char *v, uint32_t size)
Definition create_object_visitor.hpp:133
bool start_map_value()
Definition create_object_visitor.hpp:244
create_object_visitor(unpack_reference_func f, void *user_data, unpack_limit const &limit)
Definition create_object_visitor.hpp:29
void parse_error(size_t, size_t)
Definition create_object_visitor.hpp:255
bool start_map(uint32_t num_kv_pairs)
Definition create_object_visitor.hpp:215
void * m_user_data
Definition create_object_visitor.hpp:264
msgpack::object const & data() const
Definition create_object_visitor.hpp:58
Definition unpack_decl.hpp:87
std::size_t bin() const
Definition unpack_decl.hpp:105
std::size_t str() const
Definition unpack_decl.hpp:104
std::size_t map() const
Definition unpack_decl.hpp:103
std::size_t depth() const
Definition unpack_decl.hpp:107
std::size_t array() const
Definition unpack_decl.hpp:102
std::size_t ext() const
Definition unpack_decl.hpp:106
Definition cpp03_zone.hpp:30
void * allocate_align(size_t size, size_t align=MSGPACK_ZONE_ALIGN)
Definition cpp03_zone.hpp:255
Definition adaptor_base.hpp:15
bool(* unpack_reference_func)(msgpack::type::object_type type, std::size_t size, void *user_data)
The type of reference or copy judging function.
Definition unpack_decl.hpp:74
Definition unpack_exception.hpp:61
Definition unpack_exception.hpp:88
Definition unpack_exception.hpp:106
Definition unpack_exception.hpp:97
Definition unpack_exception.hpp:43
Definition unpack_exception.hpp:70
uint32_t size
Definition object_fwd.hpp:23
msgpack::object * ptr
Definition object_fwd.hpp:24
uint32_t size
Definition object_fwd.hpp:38
const char * ptr
Definition object_fwd.hpp:39
const char * ptr
Definition object_fwd.hpp:46
uint32_t size
Definition object_fwd.hpp:45
uint32_t size
Definition object_fwd.hpp:28
msgpack::object_kv * ptr
Definition object_fwd.hpp:29
const char * ptr
Definition object_fwd.hpp:34
uint32_t size
Definition object_fwd.hpp:33
Object class that corresponding to MessagePack format object.
Definition object_fwd.hpp:75
union_type via
Definition object_fwd.hpp:93
msgpack::type::object_type type
Definition object_fwd.hpp:92
Definition unpack_exception.hpp:34
Definition unpack_exception.hpp:79
bool boolean
Definition object_fwd.hpp:77
msgpack::object_array array
Definition object_fwd.hpp:85
msgpack::object_ext ext
Definition object_fwd.hpp:89
msgpack::object_str str
Definition object_fwd.hpp:87
uint64_t u64
Definition object_fwd.hpp:78
int64_t i64
Definition object_fwd.hpp:79
msgpack::object_bin bin
Definition object_fwd.hpp:88
double f64
Definition object_fwd.hpp:84
msgpack::object_map map
Definition object_fwd.hpp:86
#define MSGPACK_EMBED_STACK_SIZE
Definition unpack_define.hpp:16
#define MSGPACK_NULLPTR
Definition cpp_config_decl.hpp:85
#define MSGPACK_ZONE_ALIGNOF(type)
Definition cpp03_zone_decl.hpp:30
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition versioning.hpp:66