rroonga 7.1.1-x86-mingw32 → 9.0.2-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
 - data/Rakefile +3 -3
 - data/doc/text/news.md +22 -0
 - data/ext/groonga/extconf.rb +29 -26
 - data/ext/groonga/rb-grn.h +3 -3
 - data/lib/2.2/groonga.so +0 -0
 - data/lib/2.3/groonga.so +0 -0
 - data/lib/2.4/groonga.so +0 -0
 - data/lib/2.5/groonga.so +0 -0
 - data/lib/groonga/expression-builder.rb +1 -1
 - data/lib/groonga/schema.rb +13 -0
 - data/rroonga-build.rb +4 -11
 - data/test/test-expression-builder.rb +8 -0
 - data/vendor/local/bin/cv2pdb.exe +0 -0
 - data/vendor/local/bin/generate-pdb.bat +38 -36
 - data/vendor/local/bin/grndb.exe +0 -0
 - data/vendor/local/bin/groonga-benchmark.exe +0 -0
 - data/vendor/local/bin/groonga-suggest-create-dataset.exe +0 -0
 - data/vendor/local/bin/groonga.exe +0 -0
 - data/vendor/local/bin/libgroonga-0.dll +0 -0
 - data/vendor/local/bin/libmecab-2.dll +0 -0
 - data/vendor/local/bin/libmsgpackc.dll +0 -0
 - data/vendor/local/bin/libonigmo-6.dll +0 -0
 - data/vendor/local/bin/libpcre-1.dll +0 -0
 - data/vendor/local/bin/libpcrecpp-0.dll +0 -0
 - data/vendor/local/bin/libpcreposix-0.dll +0 -0
 - data/vendor/local/bin/lz4.exe +0 -0
 - data/vendor/local/bin/lz4c.exe +0 -0
 - data/vendor/local/bin/{lz4cat → lz4cat.exe} +0 -0
 - data/vendor/local/bin/mecab.exe +0 -0
 - data/vendor/local/bin/pcre-config +1 -1
 - data/vendor/local/bin/pcregrep.exe +0 -0
 - data/vendor/local/bin/pcretest.exe +0 -0
 - data/vendor/local/bin/unlz4.exe +0 -0
 - data/vendor/local/bin/zlib1.dll +0 -0
 - data/vendor/local/include/groonga/groonga.h +16 -1
 - data/vendor/local/include/groonga/groonga/accessor.h +5 -1
 - data/vendor/local/include/groonga/groonga/column.h +4 -0
 - data/vendor/local/include/groonga/groonga/db.h +3 -1
 - data/vendor/local/include/groonga/groonga/expr.h +5 -0
 - data/vendor/local/include/groonga/groonga/groonga.h +124 -171
 - data/vendor/local/include/groonga/groonga/highlighter.h +57 -0
 - data/vendor/local/include/groonga/groonga/ii.h +2 -0
 - data/vendor/local/include/groonga/groonga/index_column.h +31 -0
 - data/vendor/local/include/groonga/groonga/memory.h +29 -0
 - data/vendor/local/include/groonga/groonga/msgpack.h +50 -0
 - data/vendor/local/include/groonga/groonga/obj.h +22 -1
 - data/vendor/local/include/groonga/groonga/option.h +61 -0
 - data/vendor/local/include/groonga/groonga/output.h +57 -2
 - data/vendor/local/include/groonga/groonga/output_columns.h +38 -0
 - data/vendor/local/include/groonga/groonga/plugin.h +5 -0
 - data/vendor/local/include/groonga/groonga/raw_string.h +60 -0
 - data/vendor/local/include/groonga/groonga/string.h +113 -0
 - data/vendor/local/include/groonga/groonga/table.h +89 -1
 - data/vendor/local/include/groonga/groonga/thread.h +15 -0
 - data/vendor/local/include/groonga/groonga/time.h +1 -0
 - data/vendor/local/include/groonga/groonga/token.h +60 -10
 - data/vendor/local/include/groonga/groonga/token_cursor.h +59 -0
 - data/vendor/local/include/groonga/groonga/token_filter.h +24 -0
 - data/vendor/local/include/groonga/groonga/token_metadata.h +49 -0
 - data/vendor/local/include/groonga/groonga/tokenizer.h +99 -25
 - data/vendor/local/include/groonga/groonga/tokenizer_query_deprecated.h +50 -0
 - data/vendor/local/include/groonga/groonga/vector.h +80 -0
 - data/vendor/local/include/groonga/groonga/version.h +32 -0
 - data/vendor/local/include/groonga/groonga/window_function.h +18 -8
 - data/vendor/local/include/groonga/groonga/window_function_executor.h +68 -0
 - data/vendor/local/include/lz4.h +504 -212
 - data/vendor/local/include/lz4frame.h +433 -153
 - data/vendor/local/include/lz4frame_static.h +47 -0
 - data/vendor/local/include/lz4hc.h +281 -108
 - data/vendor/local/include/msgpack.hpp +4 -0
 - data/vendor/local/include/msgpack/adaptor/adaptor_base.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/adaptor_base_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/array_ref_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/boost/string_view.hpp +15 -0
 - data/vendor/local/include/msgpack/adaptor/check_container_size_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/cpp17/optional.hpp +16 -0
 - data/vendor/local/include/msgpack/adaptor/cpp17/string_view.hpp +16 -0
 - data/vendor/local/include/msgpack/adaptor/define_decl.hpp +2 -0
 - data/vendor/local/include/msgpack/adaptor/ext_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/fixint_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/int_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/map_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/msgpack_tuple_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/nil_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/raw_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/size_equal_only_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/adaptor/tr1/unordered_map.hpp +2 -2
 - data/vendor/local/include/msgpack/adaptor/tr1/unordered_set.hpp +2 -2
 - data/vendor/local/include/msgpack/adaptor/v4raw_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/cpp_config_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/create_object_visitor.hpp +17 -0
 - data/vendor/local/include/msgpack/create_object_visitor_decl.hpp +16 -0
 - data/vendor/local/include/msgpack/fbuffer.h +1 -1
 - data/vendor/local/include/msgpack/fbuffer_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/gcc_atomic.hpp +0 -2
 - data/vendor/local/include/msgpack/iterator_decl.hpp +2 -1
 - data/vendor/local/include/msgpack/meta_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/null_visitor.hpp +17 -0
 - data/vendor/local/include/msgpack/null_visitor_decl.hpp +16 -0
 - data/vendor/local/include/msgpack/object.h +5 -0
 - data/vendor/local/include/msgpack/object_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/object_fwd.hpp +1 -0
 - data/vendor/local/include/msgpack/object_fwd_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/pack.h +1 -0
 - data/vendor/local/include/msgpack/pack_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/parse.hpp +18 -0
 - data/vendor/local/include/msgpack/parse_decl.hpp +16 -0
 - data/vendor/local/include/msgpack/parse_return.hpp +17 -0
 - data/vendor/local/include/msgpack/sbuffer_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/sysdep.h +34 -26
 - data/vendor/local/include/msgpack/type.hpp +9 -0
 - data/vendor/local/include/msgpack/unpack.h +12 -1
 - data/vendor/local/include/msgpack/unpack.hpp +1 -0
 - data/vendor/local/include/msgpack/unpack_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/unpack_exception.hpp +15 -0
 - data/vendor/local/include/msgpack/unpack_template.h +22 -30
 - data/vendor/local/include/msgpack/v1/adaptor/array_ref.hpp +6 -6
 - data/vendor/local/include/msgpack/v1/adaptor/boost/fusion.hpp +49 -6
 - data/vendor/local/include/msgpack/v1/adaptor/boost/msgpack_variant.hpp +6 -4
 - data/vendor/local/include/msgpack/v1/adaptor/boost/string_view.hpp +87 -0
 - data/vendor/local/include/msgpack/v1/adaptor/carray.hpp +11 -11
 - data/vendor/local/include/msgpack/v1/adaptor/char_ptr.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/cpp11/array.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/cpp11/array_char.hpp +8 -1
 - data/vendor/local/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp +8 -1
 - data/vendor/local/include/msgpack/v1/adaptor/cpp11/forward_list.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/cpp11/tuple.hpp +2 -2
 - data/vendor/local/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp +4 -4
 - data/vendor/local/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp +2 -2
 - data/vendor/local/include/msgpack/v1/adaptor/cpp17/optional.hpp +90 -0
 - data/vendor/local/include/msgpack/v1/adaptor/cpp17/string_view.hpp +86 -0
 - data/vendor/local/include/msgpack/v1/adaptor/deque.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp +1088 -32
 - data/vendor/local/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp +32 -16
 - data/vendor/local/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp +32 -32
 - data/vendor/local/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp +45 -0
 - data/vendor/local/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp +4 -3
 - data/vendor/local/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp +4 -2
 - data/vendor/local/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp +2 -2
 - data/vendor/local/include/msgpack/v1/adaptor/ext.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/fixint.hpp +40 -24
 - data/vendor/local/include/msgpack/v1/adaptor/float.hpp +4 -4
 - data/vendor/local/include/msgpack/v1/adaptor/int.hpp +55 -33
 - data/vendor/local/include/msgpack/v1/adaptor/list.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/map.hpp +10 -10
 - data/vendor/local/include/msgpack/v1/adaptor/pair.hpp +2 -2
 - data/vendor/local/include/msgpack/v1/adaptor/set.hpp +2 -2
 - data/vendor/local/include/msgpack/v1/adaptor/string.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/tr1/unordered_map.hpp +2 -2
 - data/vendor/local/include/msgpack/v1/adaptor/tr1/unordered_set.hpp +2 -2
 - data/vendor/local/include/msgpack/v1/adaptor/vector.hpp +5 -5
 - data/vendor/local/include/msgpack/v1/adaptor/vector_bool.hpp +1 -1
 - data/vendor/local/include/msgpack/v1/adaptor/vector_char.hpp +9 -9
 - data/vendor/local/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +9 -9
 - data/vendor/local/include/msgpack/v1/cpp_config.hpp +6 -0
 - data/vendor/local/include/msgpack/v1/cpp_config_decl.hpp +6 -0
 - data/vendor/local/include/msgpack/v1/detail/cpp03_zone.hpp +41 -34
 - data/vendor/local/include/msgpack/v1/detail/cpp03_zone_decl.hpp +8 -0
 - data/vendor/local/include/msgpack/v1/detail/cpp11_zone.hpp +25 -19
 - data/vendor/local/include/msgpack/v1/detail/cpp11_zone_decl.hpp +8 -0
 - data/vendor/local/include/msgpack/v1/meta.hpp +6 -0
 - data/vendor/local/include/msgpack/v1/meta_decl.hpp +5 -0
 - data/vendor/local/include/msgpack/v1/object.hpp +768 -393
 - data/vendor/local/include/msgpack/v1/object_decl.hpp +11 -1
 - data/vendor/local/include/msgpack/v1/object_fwd.hpp +4 -1
 - data/vendor/local/include/msgpack/v1/object_fwd_decl.hpp +3 -1
 - data/vendor/local/include/msgpack/v1/parse_return.hpp +36 -0
 - data/vendor/local/include/msgpack/v1/unpack.hpp +39 -120
 - data/vendor/local/include/msgpack/v1/unpack_decl.hpp +2 -9
 - data/vendor/local/include/msgpack/v1/unpack_exception.hpp +122 -0
 - data/vendor/local/include/msgpack/v1/vrefbuffer.hpp +2 -2
 - data/vendor/local/include/msgpack/v2/create_object_visitor.hpp +250 -0
 - data/vendor/local/include/msgpack/v2/create_object_visitor_decl.hpp +33 -0
 - data/vendor/local/include/msgpack/v2/meta_decl.hpp +4 -0
 - data/vendor/local/include/msgpack/v2/null_visitor.hpp +96 -0
 - data/vendor/local/include/msgpack/v2/null_visitor_decl.hpp +29 -0
 - data/vendor/local/include/msgpack/v2/object_decl.hpp +4 -0
 - data/vendor/local/include/msgpack/v2/object_fwd.hpp +1 -1
 - data/vendor/local/include/msgpack/v2/object_fwd_decl.hpp +2 -0
 - data/vendor/local/include/msgpack/v2/pack_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/v2/parse.hpp +1072 -0
 - data/vendor/local/include/msgpack/v2/parse_decl.hpp +79 -0
 - data/vendor/local/include/msgpack/v2/parse_return.hpp +37 -0
 - data/vendor/local/include/msgpack/v2/unpack.hpp +21 -1298
 - data/vendor/local/include/msgpack/v2/unpack_decl.hpp +9 -45
 - data/vendor/local/include/msgpack/v2/x3_parse.hpp +875 -0
 - data/vendor/local/include/msgpack/v2/x3_parse_decl.hpp +36 -0
 - data/vendor/local/include/msgpack/v2/x3_unpack.hpp +120 -0
 - data/vendor/local/include/msgpack/v2/x3_unpack_decl.hpp +71 -0
 - data/vendor/local/include/msgpack/v3/adaptor/adaptor_base.hpp +58 -0
 - data/vendor/local/include/msgpack/v3/adaptor/adaptor_base_decl.hpp +52 -0
 - data/vendor/local/include/msgpack/v3/adaptor/array_ref_decl.hpp +36 -0
 - data/vendor/local/include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp +42 -0
 - data/vendor/local/include/msgpack/v3/adaptor/check_container_size_decl.hpp +39 -0
 - data/vendor/local/include/msgpack/v3/adaptor/define_decl.hpp +23 -0
 - data/vendor/local/include/msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp +31 -0
 - data/vendor/local/include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp +31 -0
 - data/vendor/local/include/msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp +43 -0
 - data/vendor/local/include/msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp +32 -0
 - data/vendor/local/include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp +31 -0
 - data/vendor/local/include/msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp +59 -0
 - data/vendor/local/include/msgpack/v3/adaptor/ext_decl.hpp +34 -0
 - data/vendor/local/include/msgpack/v3/adaptor/fixint_decl.hpp +43 -0
 - data/vendor/local/include/msgpack/v3/adaptor/int_decl.hpp +54 -0
 - data/vendor/local/include/msgpack/v3/adaptor/map_decl.hpp +33 -0
 - data/vendor/local/include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp +21 -0
 - data/vendor/local/include/msgpack/v3/adaptor/nil_decl.hpp +42 -0
 - data/vendor/local/include/msgpack/v3/adaptor/raw_decl.hpp +33 -0
 - data/vendor/local/include/msgpack/v3/adaptor/size_equal_only_decl.hpp +35 -0
 - data/vendor/local/include/msgpack/v3/adaptor/v4raw_decl.hpp +34 -0
 - data/vendor/local/include/msgpack/v3/cpp_config_decl.hpp +84 -0
 - data/vendor/local/include/msgpack/v3/create_object_visitor_decl.hpp +33 -0
 - data/vendor/local/include/msgpack/v3/detail/cpp03_zone_decl.hpp +31 -0
 - data/vendor/local/include/msgpack/v3/detail/cpp11_zone_decl.hpp +31 -0
 - data/vendor/local/include/msgpack/v3/fbuffer_decl.hpp +32 -0
 - data/vendor/local/include/msgpack/v3/iterator_decl.hpp +33 -0
 - data/vendor/local/include/msgpack/v3/meta_decl.hpp +50 -0
 - data/vendor/local/include/msgpack/v3/null_visitor_decl.hpp +29 -0
 - data/vendor/local/include/msgpack/v3/object_decl.hpp +53 -0
 - data/vendor/local/include/msgpack/v3/object_fwd.hpp +70 -0
 - data/vendor/local/include/msgpack/v3/object_fwd_decl.hpp +75 -0
 - data/vendor/local/include/msgpack/v3/pack_decl.hpp +55 -0
 - data/vendor/local/include/msgpack/v3/parse.hpp +677 -0
 - data/vendor/local/include/msgpack/v3/parse_decl.hpp +49 -0
 - data/vendor/local/include/msgpack/v3/parse_return.hpp +35 -0
 - data/vendor/local/include/msgpack/v3/sbuffer_decl.hpp +33 -0
 - data/vendor/local/include/msgpack/v3/unpack.hpp +192 -0
 - data/vendor/local/include/msgpack/v3/unpack_decl.hpp +304 -0
 - data/vendor/local/include/msgpack/v3/vrefbuffer_decl.hpp +29 -0
 - data/vendor/local/include/msgpack/v3/x3_parse_decl.hpp +34 -0
 - data/vendor/local/include/msgpack/v3/x3_unpack.hpp +97 -0
 - data/vendor/local/include/msgpack/v3/x3_unpack_decl.hpp +65 -0
 - data/vendor/local/include/msgpack/v3/zbuffer_decl.hpp +29 -0
 - data/vendor/local/include/msgpack/v3/zone_decl.hpp +21 -0
 - data/vendor/local/include/msgpack/version_master.h +2 -2
 - data/vendor/local/include/msgpack/versioning.hpp +5 -3
 - data/vendor/local/include/msgpack/vrefbuffer.h +1 -2
 - data/vendor/local/include/msgpack/vrefbuffer_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/x3_parse.hpp +15 -0
 - data/vendor/local/include/msgpack/x3_parse_decl.hpp +16 -0
 - data/vendor/local/include/msgpack/x3_unpack.hpp +16 -0
 - data/vendor/local/include/msgpack/x3_unpack_decl.hpp +16 -0
 - data/vendor/local/include/msgpack/zbuffer_decl.hpp +1 -0
 - data/vendor/local/include/msgpack/zone_decl.hpp +1 -0
 - data/vendor/local/include/pcre.h +6 -6
 - data/vendor/local/lib/cmake/msgpack/msgpack-config-version.cmake +46 -0
 - data/vendor/local/lib/cmake/msgpack/msgpack-config.cmake +47 -0
 - data/vendor/local/lib/cmake/msgpack/msgpack-targets-noconfig.cmake +29 -0
 - data/vendor/local/lib/cmake/msgpack/msgpack-targets.cmake +101 -0
 - data/vendor/local/lib/groonga/plugins/functions/index_column.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/index_column.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/index_column.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/index_column.la +1 -1
 - data/vendor/local/lib/groonga/plugins/functions/math.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/math.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/math.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/math.la +1 -1
 - data/vendor/local/lib/groonga/plugins/functions/number.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/number.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/number.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/number.la +1 -1
 - data/vendor/local/lib/groonga/plugins/functions/string.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/string.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/string.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/string.la +1 -1
 - data/vendor/local/lib/groonga/plugins/functions/time.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/time.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/time.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/time.la +1 -1
 - data/vendor/local/lib/groonga/plugins/functions/vector.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/vector.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/vector.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/functions/vector.la +1 -1
 - data/vendor/local/lib/groonga/plugins/normalizers/mysql.a +0 -0
 - data/vendor/local/lib/groonga/plugins/normalizers/mysql.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/normalizers/mysql.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/normalizers/mysql.la +2 -2
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/query_expanders/tsv.la +1 -1
 - data/vendor/local/lib/groonga/plugins/sharding/dynamic_columns.rb +150 -19
 - data/vendor/local/lib/groonga/plugins/sharding/logical_count.rb +123 -65
 - data/vendor/local/lib/groonga/plugins/sharding/logical_range_filter.rb +528 -113
 - data/vendor/local/lib/groonga/plugins/sharding/logical_select.rb +142 -40
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/suggest/suggest.la +1 -1
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.a +0 -0
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/token_filters/stop_word.la +1 -1
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
 - data/vendor/local/lib/groonga/plugins/tokenizers/mecab.la +1 -1
 - data/vendor/local/lib/groonga/scripts/ruby/backtrace_entry.rb +1 -1
 - data/vendor/local/lib/groonga/scripts/ruby/command_line/grndb.rb +64 -35
 - data/vendor/local/lib/groonga/scripts/ruby/expression.rb +3 -1
 - data/vendor/local/lib/groonga/scripts/ruby/expression_rewriters.rb +15 -21
 - data/vendor/local/lib/groonga/scripts/ruby/expression_rewriters/optimizer.rb +274 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree.rb +8 -2
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/assign.rb +22 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/assign_binary_operation.rb +24 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/binary_operation.rb +206 -8
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/constant.rb +16 -1
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/function_call.rb +30 -1
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/logical_operation.rb +6 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/member.rb +18 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/null.rb +17 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/reference.rb +18 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/table.rb +14 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/unary_operation.rb +26 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/variable.rb +4 -0
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree_builder.rb +78 -8
 - data/vendor/local/lib/groonga/scripts/ruby/index_column.rb +10 -0
 - data/vendor/local/lib/groonga/scripts/ruby/initialize/post.rb +2 -0
 - data/vendor/local/lib/groonga/scripts/ruby/locale_output.rb +28 -0
 - data/vendor/local/lib/groonga/scripts/ruby/logger.rb +36 -4
 - data/vendor/local/lib/groonga/scripts/ruby/record.rb +1 -1
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_builder.rb +0 -3
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_data.rb +46 -5
 - data/vendor/local/lib/groonga/scripts/ruby/scan_info_data_size_estimator.rb +5 -136
 - data/vendor/local/lib/groonga/scripts/ruby/table.rb +2 -2
 - data/vendor/local/lib/libgroonga.a +0 -0
 - data/vendor/local/lib/libgroonga.dll.a +0 -0
 - data/vendor/local/lib/libgroonga.la +1 -1
 - data/vendor/local/lib/liblz4.a +0 -0
 - data/vendor/local/lib/liblz4.dll +0 -0
 - data/vendor/local/lib/liblz4.dll.1 +0 -0
 - data/vendor/local/lib/{liblz4.dll.1.5.0 → liblz4.dll.1.8.2} +0 -0
 - data/vendor/local/lib/libmecab.dll.a +0 -0
 - data/vendor/local/lib/libmsgpackc.a +0 -0
 - data/vendor/local/lib/libmsgpackc.dll.a +0 -0
 - data/vendor/local/lib/libonigmo.a +0 -0
 - data/vendor/local/lib/libonigmo.dll.a +0 -0
 - data/vendor/local/lib/libpcre.a +0 -0
 - data/vendor/local/lib/libpcre.dll.a +0 -0
 - data/vendor/local/lib/libpcre.la +2 -2
 - data/vendor/local/lib/libpcrecpp.dll.a +0 -0
 - data/vendor/local/lib/libpcrecpp.la +1 -1
 - data/vendor/local/lib/libpcreposix.a +0 -0
 - data/vendor/local/lib/libpcreposix.dll.a +0 -0
 - data/vendor/local/lib/libpcreposix.la +2 -2
 - data/vendor/local/lib/libz.dll.a +0 -0
 - data/vendor/local/lib/pkgconfig/groonga-normalizer-mysql.pc +1 -1
 - data/vendor/local/lib/pkgconfig/groonga.pc +2 -2
 - data/vendor/local/lib/pkgconfig/liblz4.pc +3 -3
 - data/vendor/local/lib/pkgconfig/libpcre.pc +1 -1
 - data/vendor/local/lib/pkgconfig/libpcrecpp.pc +1 -1
 - data/vendor/local/lib/pkgconfig/libpcreposix.pc +1 -1
 - data/vendor/local/lib/pkgconfig/msgpack.pc +1 -1
 - data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
 - data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
 - data/vendor/local/share/doc/groonga-normalizer-mysql/README.md +14 -22
 - data/vendor/local/share/doc/groonga-normalizer-mysql/news.md +22 -2
 - data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
 - data/vendor/local/share/doc/groonga/en/html/_static/basic.css +113 -4
 - data/vendor/local/share/doc/groonga/en/html/_static/doctools.js +46 -19
 - data/vendor/local/share/doc/groonga/en/html/_static/documentation_options.js +10 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/{jquery-3.1.0.js → jquery-3.2.1.js} +474 -295
 - data/vendor/local/share/doc/groonga/en/html/_static/jquery.js +4 -4
 - data/vendor/local/share/doc/groonga/en/html/_static/language_data.js +297 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/pygments.css +4 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/searchtools.js +69 -322
 - data/vendor/local/share/doc/groonga/en/html/characteristic.html +16 -24
 - data/vendor/local/share/doc/groonga/en/html/client.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/community.html +30 -38
 - data/vendor/local/share/doc/groonga/en/html/contribution.html +23 -31
 - data/vendor/local/share/doc/groonga/en/html/contribution/development.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/build.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/build/unix_autotools.html +58 -66
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/build/unix_cmake.html +51 -56
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/build/windows_cmake.html +52 -56
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +27 -35
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/cooperation.html +19 -27
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +26 -34
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +167 -167
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +16 -24
 - data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +28 -36
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +59 -67
 - data/vendor/local/share/doc/groonga/en/html/contribution/documentation/introduction.html +31 -39
 - data/vendor/local/share/doc/groonga/en/html/contribution/report.html +18 -26
 - data/vendor/local/share/doc/groonga/en/html/development.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +38 -43
 - data/vendor/local/share/doc/groonga/en/html/genindex.html +50 -28
 - data/vendor/local/share/doc/groonga/en/html/index.html +248 -234
 - data/vendor/local/share/doc/groonga/en/html/install.html +43 -47
 - data/vendor/local/share/doc/groonga/en/html/install/centos.html +43 -51
 - data/vendor/local/share/doc/groonga/en/html/install/debian.html +52 -131
 - data/vendor/local/share/doc/groonga/en/html/install/docker.html +155 -0
 - data/vendor/local/share/doc/groonga/en/html/install/fedora.html +41 -49
 - data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +29 -37
 - data/vendor/local/share/doc/groonga/en/html/install/others.html +142 -150
 - data/vendor/local/share/doc/groonga/en/html/install/solaris.html +30 -38
 - data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +43 -51
 - data/vendor/local/share/doc/groonga/en/html/install/windows.html +33 -41
 - data/vendor/local/share/doc/groonga/en/html/limitations.html +36 -42
 - data/vendor/local/share/doc/groonga/en/html/news.html +1586 -598
 - data/vendor/local/share/doc/groonga/en/html/news/0.x.html +83 -83
 - data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +147 -155
 - data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +26 -34
 - data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +225 -233
 - data/vendor/local/share/doc/groonga/en/html/news/1.3.x.html +48 -56
 - data/vendor/local/share/doc/groonga/en/html/news/2.x.html +378 -386
 - data/vendor/local/share/doc/groonga/en/html/news/3.x.html +320 -328
 - data/vendor/local/share/doc/groonga/en/html/news/4.x.html +442 -448
 - data/vendor/local/share/doc/groonga/en/html/news/5.x.html +742 -860
 - data/vendor/local/share/doc/groonga/en/html/news/6.x.html +544 -621
 - data/vendor/local/share/doc/groonga/en/html/news/senna.html +32 -40
 - data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
 - data/vendor/local/share/doc/groonga/en/html/reference.html +208 -198
 - data/vendor/local/share/doc/groonga/en/html/reference/alias.html +85 -93
 - data/vendor/local/share/doc/groonga/en/html/reference/api.html +50 -57
 - data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +62 -77
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +117 -149
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +140 -176
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +43 -55
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_content_type.html +48 -56
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +194 -254
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +106 -138
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +62 -82
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +117 -137
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +74 -98
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +79 -103
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +40 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +57 -73
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +75 -99
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_inspect.html +495 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +52 -68
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +291 -357
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +69 -89
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +47 -59
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +226 -306
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +120 -160
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_thread.html +80 -103
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +46 -58
 - data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +40 -52
 - data/vendor/local/share/doc/groonga/en/html/reference/api/overview.html +52 -66
 - data/vendor/local/share/doc/groonga/en/html/reference/api/plugin.html +98 -122
 - data/vendor/local/share/doc/groonga/en/html/reference/cast.html +40 -26
 - data/vendor/local/share/doc/groonga/en/html/reference/column.html +16 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/index.html +16 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/pseudo.html +30 -34
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/scalar.html +16 -24
 - data/vendor/local/share/doc/groonga/en/html/reference/columns/vector.html +92 -100
 - data/vendor/local/share/doc/groonga/en/html/reference/command.html +76 -84
 - data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +26 -34
 - data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +64 -72
 - data/vendor/local/share/doc/groonga/en/html/reference/command/pretty_print.html +21 -29
 - data/vendor/local/share/doc/groonga/en/html/reference/command/request_id.html +25 -33
 - data/vendor/local/share/doc/groonga/en/html/reference/command/request_timeout.html +32 -40
 - data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +105 -113
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +44 -50
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +85 -73
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +31 -37
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_copy.html +131 -139
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +370 -326
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +115 -117
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +38 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +47 -53
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/config_delete.html +40 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/config_get.html +42 -50
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/config_set.html +41 -49
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/database_unmap.html +37 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +71 -63
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +31 -37
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +49 -51
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +64 -71
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/io_flush.html +335 -138
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +233 -87
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_acquire.html +45 -53
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_clear.html +42 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_release.html +43 -51
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +58 -64
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +33 -38
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +31 -38
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_count.html +295 -218
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_parameters.html +56 -64
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_range_filter.html +532 -214
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_select.html +797 -388
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_shard_list.html +35 -43
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_table_remove.html +188 -196
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +83 -90
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/normalizer_list.html +41 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_exist.html +41 -49
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_inspect.html +401 -403
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_list.html +253 -261
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/object_remove.html +60 -68
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_register.html +36 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_unregister.html +35 -43
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/query_expand.html +21 -29
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +22 -30
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/range_filter.html +21 -29
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +39 -47
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/reindex.html +47 -53
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/request_cancel.html +72 -74
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_eval.html +38 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_load.html +38 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/schema.html +330 -338
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +1545 -1194
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +57 -65
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +83 -91
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +119 -133
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_copy.html +30 -38
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +165 -174
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +50 -50
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +104 -112
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_rename.html +42 -50
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/table_tokenize.html +49 -57
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/thread_limit.html +46 -54
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +110 -117
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenizer_list.html +41 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +40 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/configuration.html +37 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/executables.html +19 -27
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/grndb.html +134 -114
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +25 -31
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +66 -66
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +174 -182
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +25 -33
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +27 -35
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-httpd.html +191 -199
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +32 -40
 - data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +189 -163
 - data/vendor/local/share/doc/groonga/en/html/reference/function.html +59 -64
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/between.html +71 -79
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/cast_loose.html +210 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +49 -55
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/fuzzy_search.html +38 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +133 -142
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +67 -73
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +56 -62
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_full.html +80 -88
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_html.html +70 -78
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/html_untag.html +56 -64
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/in_records.html +87 -94
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/in_values.html +54 -62
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/math_abs.html +55 -63
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +40 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/number_classify.html +36 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/prefix_rk_search.html +74 -82
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +152 -160
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +45 -52
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +76 -84
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/string_length.html +37 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/string_substring.html +39 -47
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +76 -84
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_day.html +37 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_day_of_week.html +278 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_hour.html +37 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_minute.html +36 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_month.html +36 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_second.html +36 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_week.html +36 -44
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/time_classify_year.html +37 -45
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_find.html +368 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_new.html +40 -48
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_size.html +54 -62
 - data/vendor/local/share/doc/groonga/en/html/reference/functions/vector_slice.html +40 -47
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +44 -52
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +307 -316
 - data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +486 -492
 - data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +44 -52
 - data/vendor/local/share/doc/groonga/en/html/reference/log.html +128 -147
 - data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +43 -92
 - data/vendor/local/share/doc/groonga/en/html/reference/normalizers/normalizer_auto.html +179 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/normalizers/normalizer_nfkc100.html +897 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/normalizers/normalizer_nfkc51.html +162 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/operations.html +26 -34
 - data/vendor/local/share/doc/groonga/en/html/reference/operations/geolocation_search.html +48 -56
 - data/vendor/local/share/doc/groonga/en/html/reference/operations/prefix_rk_search.html +47 -55
 - data/vendor/local/share/doc/groonga/en/html/reference/output.html +47 -55
 - data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +20 -28
 - data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +93 -101
 - data/vendor/local/share/doc/groonga/en/html/reference/regular_expression.html +228 -225
 - data/vendor/local/share/doc/groonga/en/html/reference/scorer.html +59 -67
 - data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_at_most.html +50 -58
 - data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_idf.html +57 -65
 - data/vendor/local/share/doc/groonga/en/html/reference/sharding.html +76 -86
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest.html +43 -51
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/completion.html +159 -167
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/correction.html +93 -101
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/introduction.html +85 -93
 - data/vendor/local/share/doc/groonga/en/html/reference/suggest/suggestion.html +88 -96
 - data/vendor/local/share/doc/groonga/en/html/reference/tables.html +142 -150
 - data/vendor/local/share/doc/groonga/en/html/reference/token_filter/summary.html +147 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/token_filters.html +31 -223
 - data/vendor/local/share/doc/groonga/en/html/reference/token_filters/token_filter_nfkc100.html +626 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/token_filters/token_filter_stem.html +291 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/token_filters/token_filter_stop_word.html +287 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizer/summary.html +259 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +42 -1455
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram.html +368 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank.html +221 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol.html +240 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha.html +270 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha_digit.html +292 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_split_symbol.html +179 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_split_symbol_alpha.html +200 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_bigram_split_symbol_alpha_digit.html +212 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_delimit.html +357 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_delimit_null.html +162 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_mecab.html +783 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_regexp.html +289 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_trigram.html +194 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tokenizers/token_unigram.html +194 -0
 - data/vendor/local/share/doc/groonga/en/html/reference/tuning.html +71 -79
 - data/vendor/local/share/doc/groonga/en/html/reference/types.html +64 -72
 - data/vendor/local/share/doc/groonga/en/html/reference/window_function.html +29 -37
 - data/vendor/local/share/doc/groonga/en/html/reference/window_functions/record_number.html +38 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_count.html +38 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_record_number.html +38 -46
 - data/vendor/local/share/doc/groonga/en/html/reference/window_functions/window_sum.html +38 -46
 - data/vendor/local/share/doc/groonga/en/html/search.html +13 -24
 - data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
 - data/vendor/local/share/doc/groonga/en/html/server.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +27 -35
 - data/vendor/local/share/doc/groonga/en/html/server/http.html +18 -26
 - data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +94 -102
 - data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/server/memcached.html +18 -26
 - data/vendor/local/share/doc/groonga/en/html/server/package.html +101 -109
 - data/vendor/local/share/doc/groonga/en/html/spec.html +19 -27
 - data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +207 -215
 - data/vendor/local/share/doc/groonga/en/html/spec/search.html +39 -39
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +15 -23
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +46 -50
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting/how_to_analyze_error_message.html +27 -35
 - data/vendor/local/share/doc/groonga/en/html/troubleshooting/mmap_cannot_allocate_memory.html +26 -31
 - data/vendor/local/share/doc/groonga/en/html/tutorial.html +17 -25
 - data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +46 -54
 - data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +63 -71
 - data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +30 -38
 - data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +88 -97
 - data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +19 -27
 - data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +61 -69
 - data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +108 -116
 - data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +24 -32
 - data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +19 -27
 - data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +32 -40
 - data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +52 -60
 - data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/_static/basic.css +113 -4
 - data/vendor/local/share/doc/groonga/ja/html/_static/doctools.js +46 -19
 - data/vendor/local/share/doc/groonga/ja/html/_static/documentation_options.js +10 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/{jquery-3.1.0.js → jquery-3.2.1.js} +474 -295
 - data/vendor/local/share/doc/groonga/ja/html/_static/jquery.js +4 -4
 - data/vendor/local/share/doc/groonga/ja/html/_static/language_data.js +124 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/pygments.css +4 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/searchtools.js +70 -150
 - data/vendor/local/share/doc/groonga/ja/html/characteristic.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/client.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/community.html +29 -37
 - data/vendor/local/share/doc/groonga/ja/html/contribution.html +23 -31
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/build.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/unix_autotools.html +50 -58
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/unix_cmake.html +43 -48
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/build/windows_cmake.html +47 -51
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +26 -34
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/cooperation.html +18 -26
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +23 -31
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +162 -162
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +16 -24
 - data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +26 -34
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +50 -58
 - data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/introduction.html +28 -36
 - data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +17 -25
 - data/vendor/local/share/doc/groonga/ja/html/development.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +32 -37
 - data/vendor/local/share/doc/groonga/ja/html/genindex.html +50 -28
 - data/vendor/local/share/doc/groonga/ja/html/index.html +247 -233
 - data/vendor/local/share/doc/groonga/ja/html/install.html +41 -45
 - data/vendor/local/share/doc/groonga/ja/html/install/centos.html +44 -52
 - data/vendor/local/share/doc/groonga/ja/html/install/debian.html +52 -121
 - data/vendor/local/share/doc/groonga/ja/html/install/docker.html +155 -0
 - data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +40 -48
 - data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +28 -36
 - data/vendor/local/share/doc/groonga/ja/html/install/others.html +116 -124
 - data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +28 -36
 - data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +43 -51
 - data/vendor/local/share/doc/groonga/ja/html/install/windows.html +29 -37
 - data/vendor/local/share/doc/groonga/ja/html/limitations.html +30 -36
 - data/vendor/local/share/doc/groonga/ja/html/news.html +1234 -384
 - data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +82 -82
 - data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +146 -154
 - data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +25 -33
 - data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +191 -199
 - data/vendor/local/share/doc/groonga/ja/html/news/1.3.x.html +41 -49
 - data/vendor/local/share/doc/groonga/ja/html/news/2.x.html +283 -291
 - data/vendor/local/share/doc/groonga/ja/html/news/3.x.html +229 -237
 - data/vendor/local/share/doc/groonga/ja/html/news/4.x.html +274 -280
 - data/vendor/local/share/doc/groonga/ja/html/news/5.x.html +475 -593
 - data/vendor/local/share/doc/groonga/ja/html/news/6.x.html +313 -390
 - data/vendor/local/share/doc/groonga/ja/html/news/senna.html +31 -39
 - data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference.html +208 -198
 - data/vendor/local/share/doc/groonga/ja/html/reference/alias.html +70 -78
 - data/vendor/local/share/doc/groonga/ja/html/reference/api.html +50 -57
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +57 -72
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +107 -139
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +137 -173
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +40 -52
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_content_type.html +46 -54
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +184 -244
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +99 -131
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +57 -77
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +100 -120
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +71 -95
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +75 -99
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +37 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +54 -70
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +71 -95
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_inspect.html +487 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +49 -65
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +286 -352
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +64 -84
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +44 -56
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +219 -299
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +116 -156
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_thread.html +70 -93
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +42 -54
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +36 -48
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/overview.html +48 -62
 - data/vendor/local/share/doc/groonga/ja/html/reference/api/plugin.html +94 -118
 - data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +39 -25
 - data/vendor/local/share/doc/groonga/ja/html/reference/column.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/index.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/pseudo.html +28 -32
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/scalar.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/reference/columns/vector.html +76 -84
 - data/vendor/local/share/doc/groonga/ja/html/reference/command.html +76 -84
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +25 -33
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +51 -59
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/pretty_print.html +20 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/request_id.html +21 -29
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/request_timeout.html +27 -35
 - data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +101 -109
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +39 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +84 -72
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +30 -36
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_copy.html +104 -112
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +271 -237
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +100 -102
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +37 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +41 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_delete.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_get.html +39 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/config_set.html +39 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/database_unmap.html +34 -42
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +70 -62
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +30 -36
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +42 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +59 -68
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/io_flush.html +300 -126
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +212 -80
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_acquire.html +42 -50
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_clear.html +40 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_release.html +41 -49
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +57 -63
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +32 -37
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +30 -37
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_count.html +246 -178
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_parameters.html +51 -59
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_range_filter.html +479 -175
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_select.html +718 -326
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_shard_list.html +34 -42
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_table_remove.html +145 -153
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +78 -85
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalizer_list.html +40 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_exist.html +36 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_inspect.html +360 -362
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_list.html +221 -229
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/object_remove.html +47 -55
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_register.html +32 -40
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_unregister.html +33 -41
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/query_expand.html +20 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +21 -29
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/range_filter.html +20 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +35 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/reindex.html +42 -48
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/request_cancel.html +57 -57
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_eval.html +36 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_load.html +36 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/schema.html +317 -325
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +1246 -917
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +50 -58
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +77 -85
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +109 -123
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_copy.html +29 -37
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +131 -140
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +49 -49
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +87 -95
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_rename.html +36 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_tokenize.html +44 -52
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/thread_limit.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +93 -100
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenizer_list.html +40 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +39 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/configuration.html +36 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +19 -27
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/grndb.html +125 -107
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +23 -29
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +62 -62
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +132 -140
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +23 -31
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +25 -33
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-httpd.html +166 -174
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +31 -39
 - data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +189 -165
 - data/vendor/local/share/doc/groonga/ja/html/reference/function.html +59 -64
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/between.html +69 -77
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/cast_loose.html +208 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +48 -54
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/fuzzy_search.html +37 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +115 -124
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +66 -72
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +55 -61
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_full.html +69 -77
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_html.html +60 -68
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/html_untag.html +54 -62
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_records.html +85 -93
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_values.html +54 -62
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/math_abs.html +54 -62
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +39 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/number_classify.html +35 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/prefix_rk_search.html +67 -75
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +130 -138
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +44 -51
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +61 -69
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/string_length.html +36 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/string_substring.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +63 -71
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_day.html +36 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_day_of_week.html +276 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_hour.html +36 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_minute.html +35 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_month.html +35 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_second.html +35 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_week.html +35 -43
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/time_classify_year.html +36 -44
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_find.html +353 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_new.html +39 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_size.html +52 -61
 - data/vendor/local/share/doc/groonga/ja/html/reference/functions/vector_slice.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +200 -208
 - data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +375 -382
 - data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +39 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/log.html +125 -144
 - data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +36 -70
 - data/vendor/local/share/doc/groonga/ja/html/reference/normalizers/normalizer_auto.html +168 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/normalizers/normalizer_nfkc100.html +887 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/normalizers/normalizer_nfkc51.html +160 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations.html +26 -34
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations/geolocation_search.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/operations/prefix_rk_search.html +41 -49
 - data/vendor/local/share/doc/groonga/ja/html/reference/output.html +42 -50
 - data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +20 -28
 - data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +68 -76
 - data/vendor/local/share/doc/groonga/ja/html/reference/regular_expression.html +178 -184
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorer.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_at_most.html +38 -46
 - data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_idf.html +39 -47
 - data/vendor/local/share/doc/groonga/ja/html/reference/sharding.html +63 -73
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest.html +43 -51
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/completion.html +130 -138
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/correction.html +72 -80
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/introduction.html +68 -76
 - data/vendor/local/share/doc/groonga/ja/html/reference/suggest/suggestion.html +76 -86
 - data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +129 -137
 - data/vendor/local/share/doc/groonga/ja/html/reference/token_filter/summary.html +145 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/token_filters.html +31 -215
 - data/vendor/local/share/doc/groonga/ja/html/reference/token_filters/token_filter_nfkc100.html +617 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/token_filters/token_filter_stem.html +289 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/token_filters/token_filter_stop_word.html +284 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizer/summary.html +233 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +42 -1349
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram.html +344 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank.html +219 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol.html +237 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha.html +267 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_ignore_blank_split_symbol_alpha_digit.html +287 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_split_symbol.html +179 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_split_symbol_alpha.html +199 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_bigram_split_symbol_alpha_digit.html +209 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_delimit.html +344 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_delimit_null.html +160 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_mecab.html +764 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_regexp.html +284 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_trigram.html +191 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers/token_unigram.html +191 -0
 - data/vendor/local/share/doc/groonga/ja/html/reference/tuning.html +65 -73
 - data/vendor/local/share/doc/groonga/ja/html/reference/types.html +48 -56
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_function.html +29 -37
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/record_number.html +37 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_count.html +37 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_record_number.html +37 -45
 - data/vendor/local/share/doc/groonga/ja/html/reference/window_functions/window_sum.html +37 -45
 - data/vendor/local/share/doc/groonga/ja/html/search.html +13 -24
 - data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
 - data/vendor/local/share/doc/groonga/ja/html/server.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +22 -30
 - data/vendor/local/share/doc/groonga/ja/html/server/http.html +17 -25
 - data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +82 -90
 - data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/server/memcached.html +16 -24
 - data/vendor/local/share/doc/groonga/ja/html/server/package.html +99 -107
 - data/vendor/local/share/doc/groonga/ja/html/spec.html +19 -27
 - data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +201 -209
 - data/vendor/local/share/doc/groonga/ja/html/spec/search.html +36 -36
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +44 -48
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting/how_to_analyze_error_message.html +21 -29
 - data/vendor/local/share/doc/groonga/ja/html/troubleshooting/mmap_cannot_allocate_memory.html +24 -29
 - data/vendor/local/share/doc/groonga/ja/html/tutorial.html +16 -24
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +32 -40
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +62 -70
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +22 -30
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +77 -86
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +15 -23
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +56 -64
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +84 -92
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +20 -28
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +18 -26
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +21 -29
 - data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +43 -51
 - data/vendor/local/share/doc/pcre/AUTHORS +3 -3
 - data/vendor/local/share/doc/pcre/ChangeLog +53 -0
 - data/vendor/local/share/doc/pcre/LICENCE +3 -3
 - data/vendor/local/share/doc/pcre/NEWS +6 -0
 - data/vendor/local/share/doc/pcre/html/NON-AUTOTOOLS-BUILD.txt +8 -7
 - data/vendor/local/share/groonga/mruby/LEGAL +35 -35
 - data/vendor/local/share/license/cv2pdb/{README → README.MD} +28 -10
 - data/vendor/local/share/license/groonga-normalizer-mysql/README.md +14 -22
 - data/vendor/local/share/license/lz4/LICENSE +2 -2
 - data/vendor/local/share/license/mruby/AUTHORS +3 -0
 - data/vendor/local/share/license/mruby/MITL +1 -1
 - data/vendor/local/share/license/mruby/README.md +1 -1
 - data/vendor/local/share/license/msgpack/README.md +5 -34
 - data/vendor/local/share/license/pcre/LICENCE +3 -3
 - data/vendor/local/share/man/man1/lz4.1 +221 -86
 - data/vendor/local/share/man/man1/lz4c.1 +222 -32
 - data/vendor/local/share/man/man1/lz4cat.1 +221 -30
 - data/vendor/local/share/man/man1/unlz4.1 +223 -0
 - metadata +231 -87
 - data/lib/2.1/groonga.so +0 -0
 - data/vendor/local/lib/groonga/plugins/expression_rewriters/optimizer.rb +0 -147
 - data/vendor/local/lib/groonga/scripts/ruby/expression_tree/options.rb +0 -14
 - data/vendor/local/share/doc/groonga/en/html/_static/ajax-loader.gif +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/comment-bright.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/comment-close.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/comment.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/down-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/down.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/up-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/up.png +0 -0
 - data/vendor/local/share/doc/groonga/en/html/_static/websupport.js +0 -808
 - data/vendor/local/share/doc/groonga/ja/html/_static/ajax-loader.gif +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/comment-bright.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/comment-close.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/comment.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/down-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/down.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/up-pressed.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/up.png +0 -0
 - data/vendor/local/share/doc/groonga/ja/html/_static/websupport.js +0 -808
 
| 
         @@ -0,0 +1,79 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            //
         
     | 
| 
      
 2 
     | 
    
         
            +
            // MessagePack for C++ deserializing routine
         
     | 
| 
      
 3 
     | 
    
         
            +
            //
         
     | 
| 
      
 4 
     | 
    
         
            +
            // Copyright (C) 2018 KONDO Takatoshi
         
     | 
| 
      
 5 
     | 
    
         
            +
            //
         
     | 
| 
      
 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)
         
     | 
| 
      
 9 
     | 
    
         
            +
            //
         
     | 
| 
      
 10 
     | 
    
         
            +
            #ifndef MSGPACK_V2_PARSE_DECL_HPP
         
     | 
| 
      
 11 
     | 
    
         
            +
            #define MSGPACK_V2_PARSE_DECL_HPP
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            #include "msgpack/parse_return.hpp"
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            namespace msgpack {
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            /// @cond
         
     | 
| 
      
 18 
     | 
    
         
            +
            MSGPACK_API_VERSION_NAMESPACE(v2) {
         
     | 
| 
      
 19 
     | 
    
         
            +
            /// @endcond
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            namespace detail {
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            template <typename VisitorHolder>
         
     | 
| 
      
 24 
     | 
    
         
            +
            class context;
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            } // detail
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            /// Parsing class for a stream deserialization.
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
      
 32 
     | 
    
         
            +
            class parser;
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            /// Unpack msgpack formatted data via a visitor
         
     | 
| 
      
 36 
     | 
    
         
            +
            /**
         
     | 
| 
      
 37 
     | 
    
         
            +
             * @param data The pointer to the buffer.
         
     | 
| 
      
 38 
     | 
    
         
            +
             * @param len The length of the buffer.
         
     | 
| 
      
 39 
     | 
    
         
            +
             * @param off The offset position of the buffer. It is read and overwritten.
         
     | 
| 
      
 40 
     | 
    
         
            +
             * @param v The visitor that satisfies visitor concept. https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_visitor#visitor-concept
         
     | 
| 
      
 41 
     | 
    
         
            +
             *
         
     | 
| 
      
 42 
     | 
    
         
            +
             * @return if unpacking process finishs without error then return true, otherwise return false.
         
     | 
| 
      
 43 
     | 
    
         
            +
             *
         
     | 
| 
      
 44 
     | 
    
         
            +
             */
         
     | 
| 
      
 45 
     | 
    
         
            +
            template <typename Visitor>
         
     | 
| 
      
 46 
     | 
    
         
            +
            bool parse(const char* data, size_t len, size_t& off, Visitor& v);
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            /// Unpack msgpack formatted data via a visitor
         
     | 
| 
      
 50 
     | 
    
         
            +
            /**
         
     | 
| 
      
 51 
     | 
    
         
            +
             * @param data The pointer to the buffer.
         
     | 
| 
      
 52 
     | 
    
         
            +
             * @param len The length of the buffer.
         
     | 
| 
      
 53 
     | 
    
         
            +
             * @param v The visitor that satisfies visitor concept. https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_visitor#visitor-concept
         
     | 
| 
      
 54 
     | 
    
         
            +
             *
         
     | 
| 
      
 55 
     | 
    
         
            +
             * @return if unpacking process finishs without error then return true, otherwise return false.
         
     | 
| 
      
 56 
     | 
    
         
            +
             *
         
     | 
| 
      
 57 
     | 
    
         
            +
             */
         
     | 
| 
      
 58 
     | 
    
         
            +
            template <typename Visitor>
         
     | 
| 
      
 59 
     | 
    
         
            +
            bool parse(const char* data, size_t len, Visitor& v);
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            namespace detail {
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            template <typename Visitor>
         
     | 
| 
      
 64 
     | 
    
         
            +
            struct parse_helper;
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            template <typename Visitor>
         
     | 
| 
      
 67 
     | 
    
         
            +
            inline parse_return
         
     | 
| 
      
 68 
     | 
    
         
            +
            parse_imp(const char* data, size_t len, size_t& off, Visitor& v);
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            } // detail
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            /// @cond
         
     | 
| 
      
 73 
     | 
    
         
            +
            }  // MSGPACK_API_VERSION_NAMESPACE(v2)
         
     | 
| 
      
 74 
     | 
    
         
            +
            /// @endcond
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            }  // namespace msgpack
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            #endif // MSGPACK_V2_PARSE_DECL_HPP
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            //
         
     | 
| 
      
 2 
     | 
    
         
            +
            // MessagePack for C++ deserializing routine
         
     | 
| 
      
 3 
     | 
    
         
            +
            //
         
     | 
| 
      
 4 
     | 
    
         
            +
            // Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi
         
     | 
| 
      
 5 
     | 
    
         
            +
            //
         
     | 
| 
      
 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)
         
     | 
| 
      
 9 
     | 
    
         
            +
            //
         
     | 
| 
      
 10 
     | 
    
         
            +
            #ifndef MSGPACK_V2_PARSE_RETURN_HPP
         
     | 
| 
      
 11 
     | 
    
         
            +
            #define MSGPACK_V2_PARSE_RETURN_HPP
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            #include "msgpack/v1/parse_return.hpp"
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            namespace msgpack {
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            /// @cond
         
     | 
| 
      
 18 
     | 
    
         
            +
            MSGPACK_API_VERSION_NAMESPACE(v2) {
         
     | 
| 
      
 19 
     | 
    
         
            +
            /// @endcond
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            // for internal use
         
     | 
| 
      
 23 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 24 
     | 
    
         
            +
                PARSE_SUCCESS              = v1::PARSE_SUCCESS,
         
     | 
| 
      
 25 
     | 
    
         
            +
                PARSE_EXTRA_BYTES          = v1::PARSE_EXTRA_BYTES,
         
     | 
| 
      
 26 
     | 
    
         
            +
                PARSE_CONTINUE             = v1::PARSE_CONTINUE,
         
     | 
| 
      
 27 
     | 
    
         
            +
                PARSE_PARSE_ERROR          = v1::PARSE_PARSE_ERROR,
         
     | 
| 
      
 28 
     | 
    
         
            +
                PARSE_STOP_VISITOR         = -2
         
     | 
| 
      
 29 
     | 
    
         
            +
            } parse_return;
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            /// @cond
         
     | 
| 
      
 32 
     | 
    
         
            +
            }  // MSGPACK_API_VERSION_NAMESPACE(v2)
         
     | 
| 
      
 33 
     | 
    
         
            +
            /// @endcond
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            }  // namespace msgpack
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            #endif // MSGPACK_V2_PARSE_RETURN_HPP
         
     | 
| 
         @@ -10,7 +10,11 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
            #ifndef MSGPACK_V2_UNPACK_HPP
         
     | 
| 
       11 
11 
     | 
    
         
             
            #define MSGPACK_V2_UNPACK_HPP
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
            #if MSGPACK_DEFAULT_API_VERSION >= 2
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
       13 
15 
     | 
    
         
             
            #include "msgpack/unpack_decl.hpp"
         
     | 
| 
      
 16 
     | 
    
         
            +
            #include "msgpack/parse.hpp"
         
     | 
| 
      
 17 
     | 
    
         
            +
            #include "msgpack/create_object_visitor.hpp"
         
     | 
| 
       14 
18 
     | 
    
         | 
| 
       15 
19 
     | 
    
         
             
            namespace msgpack {
         
     | 
| 
       16 
20 
     | 
    
         | 
| 
         @@ -18,1238 +22,6 @@ namespace msgpack { 
     | 
|
| 
       18 
22 
     | 
    
         
             
            MSGPACK_API_VERSION_NAMESPACE(v2) {
         
     | 
| 
       19 
23 
     | 
    
         
             
            /// @endcond
         
     | 
| 
       20 
24 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
            struct null_visitor {
         
     | 
| 
       22 
     | 
    
         
            -
                bool visit_nil() {
         
     | 
| 
       23 
     | 
    
         
            -
                    return true;
         
     | 
| 
       24 
     | 
    
         
            -
                }
         
     | 
| 
       25 
     | 
    
         
            -
                bool visit_boolean(bool /*v*/) {
         
     | 
| 
       26 
     | 
    
         
            -
                    return true;
         
     | 
| 
       27 
     | 
    
         
            -
                }
         
     | 
| 
       28 
     | 
    
         
            -
                bool visit_positive_integer(uint64_t /*v*/) {
         
     | 
| 
       29 
     | 
    
         
            -
                    return true;
         
     | 
| 
       30 
     | 
    
         
            -
                }
         
     | 
| 
       31 
     | 
    
         
            -
                bool visit_negative_integer(int64_t /*v*/) {
         
     | 
| 
       32 
     | 
    
         
            -
                    return true;
         
     | 
| 
       33 
     | 
    
         
            -
                }
         
     | 
| 
       34 
     | 
    
         
            -
                bool visit_float(double /*v*/) {
         
     | 
| 
       35 
     | 
    
         
            -
                    return true;
         
     | 
| 
       36 
     | 
    
         
            -
                }
         
     | 
| 
       37 
     | 
    
         
            -
                bool visit_str(const char* /*v*/, uint32_t /*size*/) {
         
     | 
| 
       38 
     | 
    
         
            -
                    return true;
         
     | 
| 
       39 
     | 
    
         
            -
                }
         
     | 
| 
       40 
     | 
    
         
            -
                bool visit_bin(const char* /*v*/, uint32_t /*size*/) {
         
     | 
| 
       41 
     | 
    
         
            -
                    return true;
         
     | 
| 
       42 
     | 
    
         
            -
                }
         
     | 
| 
       43 
     | 
    
         
            -
                bool visit_ext(const char* /*v*/, uint32_t /*size*/) {
         
     | 
| 
       44 
     | 
    
         
            -
                    return true;
         
     | 
| 
       45 
     | 
    
         
            -
                }
         
     | 
| 
       46 
     | 
    
         
            -
                bool start_array(uint32_t /*num_elements*/) {
         
     | 
| 
       47 
     | 
    
         
            -
                    return true;
         
     | 
| 
       48 
     | 
    
         
            -
                }
         
     | 
| 
       49 
     | 
    
         
            -
                bool start_array_item() {
         
     | 
| 
       50 
     | 
    
         
            -
                    return true;
         
     | 
| 
       51 
     | 
    
         
            -
                }
         
     | 
| 
       52 
     | 
    
         
            -
                bool end_array_item() {
         
     | 
| 
       53 
     | 
    
         
            -
                    return true;
         
     | 
| 
       54 
     | 
    
         
            -
                }
         
     | 
| 
       55 
     | 
    
         
            -
                bool end_array() {
         
     | 
| 
       56 
     | 
    
         
            -
                    return true;
         
     | 
| 
       57 
     | 
    
         
            -
                }
         
     | 
| 
       58 
     | 
    
         
            -
                bool start_map(uint32_t /*num_kv_pairs*/) {
         
     | 
| 
       59 
     | 
    
         
            -
                    return true;
         
     | 
| 
       60 
     | 
    
         
            -
                }
         
     | 
| 
       61 
     | 
    
         
            -
                bool start_map_key() {
         
     | 
| 
       62 
     | 
    
         
            -
                    return true;
         
     | 
| 
       63 
     | 
    
         
            -
                }
         
     | 
| 
       64 
     | 
    
         
            -
                bool end_map_key() {
         
     | 
| 
       65 
     | 
    
         
            -
                    return true;
         
     | 
| 
       66 
     | 
    
         
            -
                }
         
     | 
| 
       67 
     | 
    
         
            -
                bool start_map_value() {
         
     | 
| 
       68 
     | 
    
         
            -
                    return true;
         
     | 
| 
       69 
     | 
    
         
            -
                }
         
     | 
| 
       70 
     | 
    
         
            -
                bool end_map_value() {
         
     | 
| 
       71 
     | 
    
         
            -
                    return true;
         
     | 
| 
       72 
     | 
    
         
            -
                }
         
     | 
| 
       73 
     | 
    
         
            -
                bool end_map() {
         
     | 
| 
       74 
     | 
    
         
            -
                    return true;
         
     | 
| 
       75 
     | 
    
         
            -
                }
         
     | 
| 
       76 
     | 
    
         
            -
                void parse_error(size_t /*parsed_offset*/, size_t /*error_offset*/) {
         
     | 
| 
       77 
     | 
    
         
            -
                }
         
     | 
| 
       78 
     | 
    
         
            -
                void insufficient_bytes(size_t /*parsed_offset*/, size_t /*error_offset*/) {
         
     | 
| 
       79 
     | 
    
         
            -
                }
         
     | 
| 
       80 
     | 
    
         
            -
            };
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
            namespace detail {
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
            class create_object_visitor {
         
     | 
| 
       85 
     | 
    
         
            -
            public:
         
     | 
| 
       86 
     | 
    
         
            -
                create_object_visitor(unpack_reference_func f, void* user_data, unpack_limit const& limit)
         
     | 
| 
       87 
     | 
    
         
            -
                    :m_func(f), m_user_data(user_data), m_limit(limit) {
         
     | 
| 
       88 
     | 
    
         
            -
                    m_stack.reserve(MSGPACK_EMBED_STACK_SIZE);
         
     | 
| 
       89 
     | 
    
         
            -
                    m_stack.push_back(&m_obj);
         
     | 
| 
       90 
     | 
    
         
            -
                }
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
            #if !defined(MSGPACK_USE_CPP03)
         
     | 
| 
       93 
     | 
    
         
            -
                create_object_visitor(create_object_visitor&& other)
         
     | 
| 
       94 
     | 
    
         
            -
                    :m_func(other.m_func),
         
     | 
| 
       95 
     | 
    
         
            -
                     m_user_data(other.m_user_data),
         
     | 
| 
       96 
     | 
    
         
            -
                     m_limit(std::move(other.m_limit)),
         
     | 
| 
       97 
     | 
    
         
            -
                     m_stack(std::move(other.m_stack)),
         
     | 
| 
       98 
     | 
    
         
            -
                     m_zone(other.m_zone),
         
     | 
| 
       99 
     | 
    
         
            -
                     m_referenced(other.m_referenced) {
         
     | 
| 
       100 
     | 
    
         
            -
                    other.m_zone = MSGPACK_NULLPTR;
         
     | 
| 
       101 
     | 
    
         
            -
                    m_stack[0] = &m_obj;
         
     | 
| 
       102 
     | 
    
         
            -
                }
         
     | 
| 
       103 
     | 
    
         
            -
                create_object_visitor& operator=(create_object_visitor&& other) {
         
     | 
| 
       104 
     | 
    
         
            -
                    this->~create_object_visitor();
         
     | 
| 
       105 
     | 
    
         
            -
                    new (this) create_object_visitor(std::move(other));
         
     | 
| 
       106 
     | 
    
         
            -
                    return *this;
         
     | 
| 
       107 
     | 
    
         
            -
                }
         
     | 
| 
       108 
     | 
    
         
            -
            #endif // !defined(MSGPACK_USE_CPP03)
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
                void init() {
         
     | 
| 
       111 
     | 
    
         
            -
                    m_stack.resize(1);
         
     | 
| 
       112 
     | 
    
         
            -
                    m_obj = msgpack::object();
         
     | 
| 
       113 
     | 
    
         
            -
                    m_stack[0] = &m_obj;
         
     | 
| 
       114 
     | 
    
         
            -
                }
         
     | 
| 
       115 
     | 
    
         
            -
                msgpack::object const& data() const
         
     | 
| 
       116 
     | 
    
         
            -
                {
         
     | 
| 
       117 
     | 
    
         
            -
                    return m_obj;
         
     | 
| 
       118 
     | 
    
         
            -
                }
         
     | 
| 
       119 
     | 
    
         
            -
                msgpack::zone const& zone() const { return *m_zone; }
         
     | 
| 
       120 
     | 
    
         
            -
                msgpack::zone& zone() { return *m_zone; }
         
     | 
| 
       121 
     | 
    
         
            -
                void set_zone(msgpack::zone& zone) { m_zone = &zone; }
         
     | 
| 
       122 
     | 
    
         
            -
                bool referenced() const { return m_referenced; }
         
     | 
| 
       123 
     | 
    
         
            -
                void set_referenced(bool referenced) { m_referenced = referenced; }
         
     | 
| 
       124 
     | 
    
         
            -
                // visit functions
         
     | 
| 
       125 
     | 
    
         
            -
                bool visit_nil() {
         
     | 
| 
       126 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       127 
     | 
    
         
            -
                    obj->type = msgpack::type::NIL;
         
     | 
| 
       128 
     | 
    
         
            -
                    return true;
         
     | 
| 
       129 
     | 
    
         
            -
                }
         
     | 
| 
       130 
     | 
    
         
            -
                bool visit_boolean(bool v) {
         
     | 
| 
       131 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       132 
     | 
    
         
            -
                    obj->type = msgpack::type::BOOLEAN;
         
     | 
| 
       133 
     | 
    
         
            -
                    obj->via.boolean = v;
         
     | 
| 
       134 
     | 
    
         
            -
                    return true;
         
     | 
| 
       135 
     | 
    
         
            -
                }
         
     | 
| 
       136 
     | 
    
         
            -
                bool visit_positive_integer(uint64_t v) {
         
     | 
| 
       137 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       138 
     | 
    
         
            -
                    obj->type = msgpack::type::POSITIVE_INTEGER;
         
     | 
| 
       139 
     | 
    
         
            -
                    obj->via.u64 = v;
         
     | 
| 
       140 
     | 
    
         
            -
                    return true;
         
     | 
| 
       141 
     | 
    
         
            -
                }
         
     | 
| 
       142 
     | 
    
         
            -
                bool visit_negative_integer(int64_t v) {
         
     | 
| 
       143 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       144 
     | 
    
         
            -
                    if(v >= 0) {
         
     | 
| 
       145 
     | 
    
         
            -
                        obj->type = msgpack::type::POSITIVE_INTEGER;
         
     | 
| 
       146 
     | 
    
         
            -
                        obj->via.u64 = v;
         
     | 
| 
       147 
     | 
    
         
            -
                    }
         
     | 
| 
       148 
     | 
    
         
            -
                    else {
         
     | 
| 
       149 
     | 
    
         
            -
                        obj->type = msgpack::type::NEGATIVE_INTEGER;
         
     | 
| 
       150 
     | 
    
         
            -
                        obj->via.i64 = v;
         
     | 
| 
       151 
     | 
    
         
            -
                    }
         
     | 
| 
       152 
     | 
    
         
            -
                    return true;
         
     | 
| 
       153 
     | 
    
         
            -
                }
         
     | 
| 
       154 
     | 
    
         
            -
                bool visit_float(double v) {
         
     | 
| 
       155 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       156 
     | 
    
         
            -
                    obj->type = msgpack::type::FLOAT;
         
     | 
| 
       157 
     | 
    
         
            -
                    obj->via.f64 = v;
         
     | 
| 
       158 
     | 
    
         
            -
                    return true;
         
     | 
| 
       159 
     | 
    
         
            -
                }
         
     | 
| 
       160 
     | 
    
         
            -
                bool visit_str(const char* v, uint32_t size) {
         
     | 
| 
       161 
     | 
    
         
            -
                    if (size > m_limit.str()) throw msgpack::str_size_overflow("str size overflow");
         
     | 
| 
       162 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       163 
     | 
    
         
            -
                    obj->type = msgpack::type::STR;
         
     | 
| 
       164 
     | 
    
         
            -
                    if (m_func && m_func(obj->type, size, m_user_data)) {
         
     | 
| 
       165 
     | 
    
         
            -
                        obj->via.str.ptr = v;
         
     | 
| 
       166 
     | 
    
         
            -
                        set_referenced(true);
         
     | 
| 
       167 
     | 
    
         
            -
                    }
         
     | 
| 
       168 
     | 
    
         
            -
                    else {
         
     | 
| 
       169 
     | 
    
         
            -
                        char* tmp = static_cast<char*>(zone().allocate_align(size));
         
     | 
| 
       170 
     | 
    
         
            -
                        std::memcpy(tmp, v, size);
         
     | 
| 
       171 
     | 
    
         
            -
                        obj->via.str.ptr = tmp;
         
     | 
| 
       172 
     | 
    
         
            -
                    }
         
     | 
| 
       173 
     | 
    
         
            -
                    obj->via.str.size = size;
         
     | 
| 
       174 
     | 
    
         
            -
                    return true;
         
     | 
| 
       175 
     | 
    
         
            -
                }
         
     | 
| 
       176 
     | 
    
         
            -
                bool visit_bin(const char* v, uint32_t size) {
         
     | 
| 
       177 
     | 
    
         
            -
                    if (size > m_limit.bin()) throw msgpack::bin_size_overflow("bin size overflow");
         
     | 
| 
       178 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       179 
     | 
    
         
            -
                    obj->type = msgpack::type::BIN;
         
     | 
| 
       180 
     | 
    
         
            -
                    if (m_func && m_func(obj->type, size, m_user_data)) {
         
     | 
| 
       181 
     | 
    
         
            -
                        obj->via.bin.ptr = v;
         
     | 
| 
       182 
     | 
    
         
            -
                        set_referenced(true);
         
     | 
| 
       183 
     | 
    
         
            -
                    }
         
     | 
| 
       184 
     | 
    
         
            -
                    else {
         
     | 
| 
       185 
     | 
    
         
            -
                        char* tmp = static_cast<char*>(zone().allocate_align(size));
         
     | 
| 
       186 
     | 
    
         
            -
                        std::memcpy(tmp, v, size);
         
     | 
| 
       187 
     | 
    
         
            -
                        obj->via.bin.ptr = tmp;
         
     | 
| 
       188 
     | 
    
         
            -
                    }
         
     | 
| 
       189 
     | 
    
         
            -
                    obj->via.bin.size = size;
         
     | 
| 
       190 
     | 
    
         
            -
                    return true;
         
     | 
| 
       191 
     | 
    
         
            -
                }
         
     | 
| 
       192 
     | 
    
         
            -
                bool visit_ext(const char* v, uint32_t size) {
         
     | 
| 
       193 
     | 
    
         
            -
                    if (size > m_limit.ext()) throw msgpack::ext_size_overflow("ext size overflow");
         
     | 
| 
       194 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       195 
     | 
    
         
            -
                    obj->type = msgpack::type::EXT;
         
     | 
| 
       196 
     | 
    
         
            -
                    if (m_func && m_func(obj->type, size, m_user_data)) {
         
     | 
| 
       197 
     | 
    
         
            -
                        obj->via.ext.ptr = v;
         
     | 
| 
       198 
     | 
    
         
            -
                        set_referenced(true);
         
     | 
| 
       199 
     | 
    
         
            -
                    }
         
     | 
| 
       200 
     | 
    
         
            -
                    else {
         
     | 
| 
       201 
     | 
    
         
            -
                        char* tmp = static_cast<char*>(zone().allocate_align(size));
         
     | 
| 
       202 
     | 
    
         
            -
                        std::memcpy(tmp, v, size);
         
     | 
| 
       203 
     | 
    
         
            -
                        obj->via.ext.ptr = tmp;
         
     | 
| 
       204 
     | 
    
         
            -
                    }
         
     | 
| 
       205 
     | 
    
         
            -
                    obj->via.ext.size = static_cast<uint32_t>(size - 1);
         
     | 
| 
       206 
     | 
    
         
            -
                    return true;
         
     | 
| 
       207 
     | 
    
         
            -
                }
         
     | 
| 
       208 
     | 
    
         
            -
                bool start_array(uint32_t num_elements) {
         
     | 
| 
       209 
     | 
    
         
            -
                    if (num_elements > m_limit.array()) throw msgpack::array_size_overflow("array size overflow");
         
     | 
| 
       210 
     | 
    
         
            -
                    if (m_stack.size() > m_limit.depth()) throw msgpack::depth_size_overflow("depth size overflow");
         
     | 
| 
       211 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       212 
     | 
    
         
            -
                    obj->type = msgpack::type::ARRAY;
         
     | 
| 
       213 
     | 
    
         
            -
                    obj->via.array.size = num_elements;
         
     | 
| 
       214 
     | 
    
         
            -
                    if (num_elements == 0) {
         
     | 
| 
       215 
     | 
    
         
            -
                        obj->via.array.ptr = MSGPACK_NULLPTR;
         
     | 
| 
       216 
     | 
    
         
            -
                    }
         
     | 
| 
       217 
     | 
    
         
            -
                    else {
         
     | 
| 
       218 
     | 
    
         
            -
                        obj->via.array.ptr =
         
     | 
| 
       219 
     | 
    
         
            -
                            static_cast<msgpack::object*>(m_zone->allocate_align(num_elements*sizeof(msgpack::object)));
         
     | 
| 
       220 
     | 
    
         
            -
                    }
         
     | 
| 
       221 
     | 
    
         
            -
                    m_stack.push_back(obj->via.array.ptr);
         
     | 
| 
       222 
     | 
    
         
            -
                    return true;
         
     | 
| 
       223 
     | 
    
         
            -
                }
         
     | 
| 
       224 
     | 
    
         
            -
                bool start_array_item() {
         
     | 
| 
       225 
     | 
    
         
            -
                    return true;
         
     | 
| 
       226 
     | 
    
         
            -
                }
         
     | 
| 
       227 
     | 
    
         
            -
                bool end_array_item() {
         
     | 
| 
       228 
     | 
    
         
            -
                    ++m_stack.back();
         
     | 
| 
       229 
     | 
    
         
            -
                    return true;
         
     | 
| 
       230 
     | 
    
         
            -
                }
         
     | 
| 
       231 
     | 
    
         
            -
                bool end_array() {
         
     | 
| 
       232 
     | 
    
         
            -
                    m_stack.pop_back();
         
     | 
| 
       233 
     | 
    
         
            -
                    return true;
         
     | 
| 
       234 
     | 
    
         
            -
                }
         
     | 
| 
       235 
     | 
    
         
            -
                bool start_map(uint32_t num_kv_pairs) {
         
     | 
| 
       236 
     | 
    
         
            -
                    if (num_kv_pairs > m_limit.map()) throw msgpack::map_size_overflow("map size overflow");
         
     | 
| 
       237 
     | 
    
         
            -
                    if (m_stack.size() > m_limit.depth()) throw msgpack::depth_size_overflow("depth size overflow");
         
     | 
| 
       238 
     | 
    
         
            -
                    msgpack::object* obj = m_stack.back();
         
     | 
| 
       239 
     | 
    
         
            -
                    obj->type = msgpack::type::MAP;
         
     | 
| 
       240 
     | 
    
         
            -
                    obj->via.map.size = num_kv_pairs;
         
     | 
| 
       241 
     | 
    
         
            -
                    if (num_kv_pairs == 0) {
         
     | 
| 
       242 
     | 
    
         
            -
                        obj->via.map.ptr = MSGPACK_NULLPTR;
         
     | 
| 
       243 
     | 
    
         
            -
                    }
         
     | 
| 
       244 
     | 
    
         
            -
                    else {
         
     | 
| 
       245 
     | 
    
         
            -
                        obj->via.map.ptr =
         
     | 
| 
       246 
     | 
    
         
            -
                            static_cast<msgpack::object_kv*>(m_zone->allocate_align(num_kv_pairs*sizeof(msgpack::object_kv)));
         
     | 
| 
       247 
     | 
    
         
            -
                    }
         
     | 
| 
       248 
     | 
    
         
            -
                    m_stack.push_back(reinterpret_cast<msgpack::object*>(obj->via.map.ptr));
         
     | 
| 
       249 
     | 
    
         
            -
                    return true;
         
     | 
| 
       250 
     | 
    
         
            -
                }
         
     | 
| 
       251 
     | 
    
         
            -
                bool start_map_key() {
         
     | 
| 
       252 
     | 
    
         
            -
                    return true;
         
     | 
| 
       253 
     | 
    
         
            -
                }
         
     | 
| 
       254 
     | 
    
         
            -
                bool end_map_key() {
         
     | 
| 
       255 
     | 
    
         
            -
                    ++m_stack.back();
         
     | 
| 
       256 
     | 
    
         
            -
                    return true;
         
     | 
| 
       257 
     | 
    
         
            -
                }
         
     | 
| 
       258 
     | 
    
         
            -
                bool start_map_value() {
         
     | 
| 
       259 
     | 
    
         
            -
                    return true;
         
     | 
| 
       260 
     | 
    
         
            -
                }
         
     | 
| 
       261 
     | 
    
         
            -
                bool end_map_value() {
         
     | 
| 
       262 
     | 
    
         
            -
                    ++m_stack.back();
         
     | 
| 
       263 
     | 
    
         
            -
                    return true;
         
     | 
| 
       264 
     | 
    
         
            -
                }
         
     | 
| 
       265 
     | 
    
         
            -
                bool end_map() {
         
     | 
| 
       266 
     | 
    
         
            -
                    m_stack.pop_back();
         
     | 
| 
       267 
     | 
    
         
            -
                    return true;
         
     | 
| 
       268 
     | 
    
         
            -
                }
         
     | 
| 
       269 
     | 
    
         
            -
                void parse_error(size_t /*parsed_offset*/, size_t /*error_offset*/) {
         
     | 
| 
       270 
     | 
    
         
            -
                    throw msgpack::parse_error("parse error");
         
     | 
| 
       271 
     | 
    
         
            -
                }
         
     | 
| 
       272 
     | 
    
         
            -
                void insufficient_bytes(size_t /*parsed_offset*/, size_t /*error_offset*/) {
         
     | 
| 
       273 
     | 
    
         
            -
                    throw msgpack::insufficient_bytes("insufficient bytes");
         
     | 
| 
       274 
     | 
    
         
            -
                }
         
     | 
| 
       275 
     | 
    
         
            -
            private:
         
     | 
| 
       276 
     | 
    
         
            -
            public:
         
     | 
| 
       277 
     | 
    
         
            -
                unpack_reference_func m_func;
         
     | 
| 
       278 
     | 
    
         
            -
                void* m_user_data;
         
     | 
| 
       279 
     | 
    
         
            -
                unpack_limit m_limit;
         
     | 
| 
       280 
     | 
    
         
            -
                msgpack::object m_obj;
         
     | 
| 
       281 
     | 
    
         
            -
                std::vector<msgpack::object*> m_stack;
         
     | 
| 
       282 
     | 
    
         
            -
                msgpack::zone* m_zone;
         
     | 
| 
       283 
     | 
    
         
            -
                bool m_referenced;
         
     | 
| 
       284 
     | 
    
         
            -
            };
         
     | 
| 
       285 
     | 
    
         
            -
             
     | 
| 
       286 
     | 
    
         
            -
            template <typename VisitorHolder>
         
     | 
| 
       287 
     | 
    
         
            -
            class context {
         
     | 
| 
       288 
     | 
    
         
            -
            public:
         
     | 
| 
       289 
     | 
    
         
            -
                context()
         
     | 
| 
       290 
     | 
    
         
            -
                    :m_trail(0), m_cs(MSGPACK_CS_HEADER)
         
     | 
| 
       291 
     | 
    
         
            -
                {
         
     | 
| 
       292 
     | 
    
         
            -
                }
         
     | 
| 
       293 
     | 
    
         
            -
             
     | 
| 
       294 
     | 
    
         
            -
                void init()
         
     | 
| 
       295 
     | 
    
         
            -
                {
         
     | 
| 
       296 
     | 
    
         
            -
                    m_cs = MSGPACK_CS_HEADER;
         
     | 
| 
       297 
     | 
    
         
            -
                    m_trail = 0;
         
     | 
| 
       298 
     | 
    
         
            -
                    m_stack.clear();
         
     | 
| 
       299 
     | 
    
         
            -
                    holder().visitor().init();
         
     | 
| 
       300 
     | 
    
         
            -
                }
         
     | 
| 
       301 
     | 
    
         
            -
             
     | 
| 
       302 
     | 
    
         
            -
                unpack_return execute(const char* data, std::size_t len, std::size_t& off);
         
     | 
| 
       303 
     | 
    
         
            -
             
     | 
| 
       304 
     | 
    
         
            -
            private:
         
     | 
| 
       305 
     | 
    
         
            -
                template <typename T>
         
     | 
| 
       306 
     | 
    
         
            -
                static uint32_t next_cs(T p)
         
     | 
| 
       307 
     | 
    
         
            -
                {
         
     | 
| 
       308 
     | 
    
         
            -
                    return static_cast<uint32_t>(*p) & 0x1f;
         
     | 
| 
       309 
     | 
    
         
            -
                }
         
     | 
| 
       310 
     | 
    
         
            -
             
     | 
| 
       311 
     | 
    
         
            -
                VisitorHolder& holder() {
         
     | 
| 
       312 
     | 
    
         
            -
                    return static_cast<VisitorHolder&>(*this);
         
     | 
| 
       313 
     | 
    
         
            -
                }
         
     | 
| 
       314 
     | 
    
         
            -
             
     | 
| 
       315 
     | 
    
         
            -
                template <typename T, typename StartVisitor, typename EndVisitor>
         
     | 
| 
       316 
     | 
    
         
            -
                unpack_return start_aggregate(
         
     | 
| 
       317 
     | 
    
         
            -
                    StartVisitor const& sv,
         
     | 
| 
       318 
     | 
    
         
            -
                    EndVisitor const& ev,
         
     | 
| 
       319 
     | 
    
         
            -
                    const char* load_pos,
         
     | 
| 
       320 
     | 
    
         
            -
                    std::size_t& off) {
         
     | 
| 
       321 
     | 
    
         
            -
                    typename value<T>::type size;
         
     | 
| 
       322 
     | 
    
         
            -
                    load<T>(size, load_pos);
         
     | 
| 
       323 
     | 
    
         
            -
                    ++m_current;
         
     | 
| 
       324 
     | 
    
         
            -
                    if (size == 0) {
         
     | 
| 
       325 
     | 
    
         
            -
                        if (!sv(size)) {
         
     | 
| 
       326 
     | 
    
         
            -
                            off = m_current - m_start;
         
     | 
| 
       327 
     | 
    
         
            -
                            return UNPACK_STOP_VISITOR;
         
     | 
| 
       328 
     | 
    
         
            -
                        }
         
     | 
| 
       329 
     | 
    
         
            -
                        if (!ev()) {
         
     | 
| 
       330 
     | 
    
         
            -
                            off = m_current - m_start;
         
     | 
| 
       331 
     | 
    
         
            -
                            return UNPACK_STOP_VISITOR;
         
     | 
| 
       332 
     | 
    
         
            -
                        }
         
     | 
| 
       333 
     | 
    
         
            -
                        unpack_return ret = m_stack.consume(holder());
         
     | 
| 
       334 
     | 
    
         
            -
                        if (ret != UNPACK_CONTINUE) {
         
     | 
| 
       335 
     | 
    
         
            -
                            off = m_current - m_start;
         
     | 
| 
       336 
     | 
    
         
            -
                            return ret;
         
     | 
| 
       337 
     | 
    
         
            -
                        }
         
     | 
| 
       338 
     | 
    
         
            -
                    }
         
     | 
| 
       339 
     | 
    
         
            -
                    else {
         
     | 
| 
       340 
     | 
    
         
            -
                        m_stack.push(sv.type(), static_cast<uint32_t>(size));
         
     | 
| 
       341 
     | 
    
         
            -
                        if (!sv(size)) {
         
     | 
| 
       342 
     | 
    
         
            -
                            off = m_current - m_start;
         
     | 
| 
       343 
     | 
    
         
            -
                            return UNPACK_STOP_VISITOR;
         
     | 
| 
       344 
     | 
    
         
            -
                        }
         
     | 
| 
       345 
     | 
    
         
            -
                    }
         
     | 
| 
       346 
     | 
    
         
            -
                    m_cs = MSGPACK_CS_HEADER;
         
     | 
| 
       347 
     | 
    
         
            -
                    return UNPACK_CONTINUE;
         
     | 
| 
       348 
     | 
    
         
            -
                }
         
     | 
| 
       349 
     | 
    
         
            -
             
     | 
| 
       350 
     | 
    
         
            -
                unpack_return after_visit_proc(bool visit_result, std::size_t& off) {
         
     | 
| 
       351 
     | 
    
         
            -
                    ++m_current;
         
     | 
| 
       352 
     | 
    
         
            -
                    if (!visit_result) {
         
     | 
| 
       353 
     | 
    
         
            -
                        off = m_current - m_start;
         
     | 
| 
       354 
     | 
    
         
            -
                        return UNPACK_STOP_VISITOR;
         
     | 
| 
       355 
     | 
    
         
            -
                    }
         
     | 
| 
       356 
     | 
    
         
            -
                    unpack_return ret = m_stack.consume(holder());
         
     | 
| 
       357 
     | 
    
         
            -
                    if (ret == UNPACK_CONTINUE) {
         
     | 
| 
       358 
     | 
    
         
            -
                        m_cs = MSGPACK_CS_HEADER;
         
     | 
| 
       359 
     | 
    
         
            -
                    }
         
     | 
| 
       360 
     | 
    
         
            -
                    else {
         
     | 
| 
       361 
     | 
    
         
            -
                        off = m_current - m_start;
         
     | 
| 
       362 
     | 
    
         
            -
                    }
         
     | 
| 
       363 
     | 
    
         
            -
                    return ret;
         
     | 
| 
       364 
     | 
    
         
            -
                }
         
     | 
| 
       365 
     | 
    
         
            -
             
     | 
| 
       366 
     | 
    
         
            -
                struct array_sv {
         
     | 
| 
       367 
     | 
    
         
            -
                    array_sv(VisitorHolder& visitor_holder):m_visitor_holder(visitor_holder) {}
         
     | 
| 
       368 
     | 
    
         
            -
                    bool operator()(uint32_t size) const {
         
     | 
| 
       369 
     | 
    
         
            -
                        return m_visitor_holder.visitor().start_array(size);
         
     | 
| 
       370 
     | 
    
         
            -
                    }
         
     | 
| 
       371 
     | 
    
         
            -
                    msgpack_container_type type() const { return MSGPACK_CT_ARRAY_ITEM; }
         
     | 
| 
       372 
     | 
    
         
            -
                private:
         
     | 
| 
       373 
     | 
    
         
            -
                    VisitorHolder& m_visitor_holder;
         
     | 
| 
       374 
     | 
    
         
            -
                };
         
     | 
| 
       375 
     | 
    
         
            -
                struct array_ev {
         
     | 
| 
       376 
     | 
    
         
            -
                    array_ev(VisitorHolder& visitor_holder):m_visitor_holder(visitor_holder) {}
         
     | 
| 
       377 
     | 
    
         
            -
                    bool operator()() const {
         
     | 
| 
       378 
     | 
    
         
            -
                        return m_visitor_holder.visitor().end_array();
         
     | 
| 
       379 
     | 
    
         
            -
                    }
         
     | 
| 
       380 
     | 
    
         
            -
                private:
         
     | 
| 
       381 
     | 
    
         
            -
                    VisitorHolder& m_visitor_holder;
         
     | 
| 
       382 
     | 
    
         
            -
                };
         
     | 
| 
       383 
     | 
    
         
            -
                struct map_sv {
         
     | 
| 
       384 
     | 
    
         
            -
                    map_sv(VisitorHolder& visitor_holder):m_visitor_holder(visitor_holder) {}
         
     | 
| 
       385 
     | 
    
         
            -
                    bool operator()(uint32_t size) const {
         
     | 
| 
       386 
     | 
    
         
            -
                        return m_visitor_holder.visitor().start_map(size);
         
     | 
| 
       387 
     | 
    
         
            -
                    }
         
     | 
| 
       388 
     | 
    
         
            -
                    msgpack_container_type type() const { return MSGPACK_CT_MAP_KEY; }
         
     | 
| 
       389 
     | 
    
         
            -
                private:
         
     | 
| 
       390 
     | 
    
         
            -
                    VisitorHolder& m_visitor_holder;
         
     | 
| 
       391 
     | 
    
         
            -
                };
         
     | 
| 
       392 
     | 
    
         
            -
                struct map_ev {
         
     | 
| 
       393 
     | 
    
         
            -
                    map_ev(VisitorHolder& visitor_holder):m_visitor_holder(visitor_holder) {}
         
     | 
| 
       394 
     | 
    
         
            -
                    bool operator()() const {
         
     | 
| 
       395 
     | 
    
         
            -
                        return m_visitor_holder.visitor().end_map();
         
     | 
| 
       396 
     | 
    
         
            -
                    }
         
     | 
| 
       397 
     | 
    
         
            -
                private:
         
     | 
| 
       398 
     | 
    
         
            -
                    VisitorHolder& m_visitor_holder;
         
     | 
| 
       399 
     | 
    
         
            -
                };
         
     | 
| 
       400 
     | 
    
         
            -
             
     | 
| 
       401 
     | 
    
         
            -
                struct unpack_stack {
         
     | 
| 
       402 
     | 
    
         
            -
                    struct stack_elem {
         
     | 
| 
       403 
     | 
    
         
            -
                        stack_elem(msgpack_container_type type, uint32_t rest):m_type(type), m_rest(rest) {}
         
     | 
| 
       404 
     | 
    
         
            -
                        msgpack_container_type m_type;
         
     | 
| 
       405 
     | 
    
         
            -
                        uint32_t m_rest;
         
     | 
| 
       406 
     | 
    
         
            -
                    };
         
     | 
| 
       407 
     | 
    
         
            -
                    unpack_stack() {
         
     | 
| 
       408 
     | 
    
         
            -
                        m_stack.reserve(MSGPACK_EMBED_STACK_SIZE);
         
     | 
| 
       409 
     | 
    
         
            -
                    }
         
     | 
| 
       410 
     | 
    
         
            -
                    void push(msgpack_container_type type, uint32_t rest) {
         
     | 
| 
       411 
     | 
    
         
            -
                        m_stack.push_back(stack_elem(type, rest));
         
     | 
| 
       412 
     | 
    
         
            -
                    }
         
     | 
| 
       413 
     | 
    
         
            -
                    unpack_return consume(VisitorHolder& visitor_holder) {
         
     | 
| 
       414 
     | 
    
         
            -
                        while (!m_stack.empty()) {
         
     | 
| 
       415 
     | 
    
         
            -
                            stack_elem& e = m_stack.back();
         
     | 
| 
       416 
     | 
    
         
            -
                            switch (e.m_type) {
         
     | 
| 
       417 
     | 
    
         
            -
                            case MSGPACK_CT_ARRAY_ITEM:
         
     | 
| 
       418 
     | 
    
         
            -
                                if (!visitor_holder.visitor().end_array_item()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       419 
     | 
    
         
            -
                                if (--e.m_rest == 0)  {
         
     | 
| 
       420 
     | 
    
         
            -
                                    m_stack.pop_back();
         
     | 
| 
       421 
     | 
    
         
            -
                                    if (!visitor_holder.visitor().end_array()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       422 
     | 
    
         
            -
                                }
         
     | 
| 
       423 
     | 
    
         
            -
                                else {
         
     | 
| 
       424 
     | 
    
         
            -
                                    if (!visitor_holder.visitor().start_array_item()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       425 
     | 
    
         
            -
                                    return UNPACK_CONTINUE;
         
     | 
| 
       426 
     | 
    
         
            -
                                }
         
     | 
| 
       427 
     | 
    
         
            -
                                break;
         
     | 
| 
       428 
     | 
    
         
            -
                            case MSGPACK_CT_MAP_KEY:
         
     | 
| 
       429 
     | 
    
         
            -
                                if (!visitor_holder.visitor().end_map_key()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       430 
     | 
    
         
            -
                                if (!visitor_holder.visitor().start_map_value()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       431 
     | 
    
         
            -
                                e.m_type = MSGPACK_CT_MAP_VALUE;
         
     | 
| 
       432 
     | 
    
         
            -
                                return UNPACK_CONTINUE;
         
     | 
| 
       433 
     | 
    
         
            -
                            case MSGPACK_CT_MAP_VALUE:
         
     | 
| 
       434 
     | 
    
         
            -
                                if (!visitor_holder.visitor().end_map_value()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       435 
     | 
    
         
            -
                                if (--e.m_rest == 0) {
         
     | 
| 
       436 
     | 
    
         
            -
                                    m_stack.pop_back();
         
     | 
| 
       437 
     | 
    
         
            -
                                    if (!visitor_holder.visitor().end_map()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       438 
     | 
    
         
            -
                                }
         
     | 
| 
       439 
     | 
    
         
            -
                                else {
         
     | 
| 
       440 
     | 
    
         
            -
                                    e.m_type = MSGPACK_CT_MAP_KEY;
         
     | 
| 
       441 
     | 
    
         
            -
                                    if (!visitor_holder.visitor().start_map_key()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       442 
     | 
    
         
            -
                                    return UNPACK_CONTINUE;
         
     | 
| 
       443 
     | 
    
         
            -
                                }
         
     | 
| 
       444 
     | 
    
         
            -
                                break;
         
     | 
| 
       445 
     | 
    
         
            -
                            }
         
     | 
| 
       446 
     | 
    
         
            -
                        }
         
     | 
| 
       447 
     | 
    
         
            -
                        return UNPACK_SUCCESS;
         
     | 
| 
       448 
     | 
    
         
            -
                    }
         
     | 
| 
       449 
     | 
    
         
            -
                    bool empty() const { return m_stack.empty(); }
         
     | 
| 
       450 
     | 
    
         
            -
                    void clear() { m_stack.clear(); }
         
     | 
| 
       451 
     | 
    
         
            -
                private:
         
     | 
| 
       452 
     | 
    
         
            -
                    std::vector<stack_elem> m_stack;
         
     | 
| 
       453 
     | 
    
         
            -
                };
         
     | 
| 
       454 
     | 
    
         
            -
             
     | 
| 
       455 
     | 
    
         
            -
                char const* m_start;
         
     | 
| 
       456 
     | 
    
         
            -
                char const* m_current;
         
     | 
| 
       457 
     | 
    
         
            -
             
     | 
| 
       458 
     | 
    
         
            -
                std::size_t m_trail;
         
     | 
| 
       459 
     | 
    
         
            -
                uint32_t m_cs;
         
     | 
| 
       460 
     | 
    
         
            -
                uint32_t m_num_elements;
         
     | 
| 
       461 
     | 
    
         
            -
                unpack_stack m_stack;
         
     | 
| 
       462 
     | 
    
         
            -
            };
         
     | 
| 
       463 
     | 
    
         
            -
             
     | 
| 
       464 
     | 
    
         
            -
            template <std::size_t N>
         
     | 
| 
       465 
     | 
    
         
            -
            inline void check_ext_size(std::size_t /*size*/) {
         
     | 
| 
       466 
     | 
    
         
            -
            }
         
     | 
| 
       467 
     | 
    
         
            -
             
     | 
| 
       468 
     | 
    
         
            -
            template <>
         
     | 
| 
       469 
     | 
    
         
            -
            inline void check_ext_size<4>(std::size_t size) {
         
     | 
| 
       470 
     | 
    
         
            -
                if (size == 0xffffffff) throw msgpack::ext_size_overflow("ext size overflow");
         
     | 
| 
       471 
     | 
    
         
            -
            }
         
     | 
| 
       472 
     | 
    
         
            -
             
     | 
| 
       473 
     | 
    
         
            -
            template <typename VisitorHolder>
         
     | 
| 
       474 
     | 
    
         
            -
            inline unpack_return context<VisitorHolder>::execute(const char* data, std::size_t len, std::size_t& off)
         
     | 
| 
       475 
     | 
    
         
            -
            {
         
     | 
| 
       476 
     | 
    
         
            -
                assert(len >= off);
         
     | 
| 
       477 
     | 
    
         
            -
             
     | 
| 
       478 
     | 
    
         
            -
                m_start = data;
         
     | 
| 
       479 
     | 
    
         
            -
                m_current = data + off;
         
     | 
| 
       480 
     | 
    
         
            -
                const char* const pe = data + len;
         
     | 
| 
       481 
     | 
    
         
            -
                const char* n = MSGPACK_NULLPTR;
         
     | 
| 
       482 
     | 
    
         
            -
             
     | 
| 
       483 
     | 
    
         
            -
                msgpack::object obj;
         
     | 
| 
       484 
     | 
    
         
            -
             
     | 
| 
       485 
     | 
    
         
            -
                if(m_current == pe) {
         
     | 
| 
       486 
     | 
    
         
            -
                    off = m_current - m_start;
         
     | 
| 
       487 
     | 
    
         
            -
                    return UNPACK_CONTINUE;
         
     | 
| 
       488 
     | 
    
         
            -
                }
         
     | 
| 
       489 
     | 
    
         
            -
                bool fixed_trail_again = false;
         
     | 
| 
       490 
     | 
    
         
            -
                do {
         
     | 
| 
       491 
     | 
    
         
            -
                    if (m_cs == MSGPACK_CS_HEADER) {
         
     | 
| 
       492 
     | 
    
         
            -
                        fixed_trail_again = false;
         
     | 
| 
       493 
     | 
    
         
            -
                        int selector = *reinterpret_cast<const unsigned char*>(m_current);
         
     | 
| 
       494 
     | 
    
         
            -
                        if (0x00 <= selector && selector <= 0x7f) { // Positive Fixnum
         
     | 
| 
       495 
     | 
    
         
            -
                            uint8_t tmp = *reinterpret_cast<const uint8_t*>(m_current);
         
     | 
| 
       496 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_positive_integer(tmp);
         
     | 
| 
       497 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       498 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       499 
     | 
    
         
            -
                        } else if(0xe0 <= selector && selector <= 0xff) { // Negative Fixnum
         
     | 
| 
       500 
     | 
    
         
            -
                            int8_t tmp = *reinterpret_cast<const int8_t*>(m_current);
         
     | 
| 
       501 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_negative_integer(tmp);
         
     | 
| 
       502 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       503 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       504 
     | 
    
         
            -
                        } else if (0xc4 <= selector && selector <= 0xdf) {
         
     | 
| 
       505 
     | 
    
         
            -
                            const uint32_t trail[] = {
         
     | 
| 
       506 
     | 
    
         
            -
                                1, // bin     8  0xc4
         
     | 
| 
       507 
     | 
    
         
            -
                                2, // bin    16  0xc5
         
     | 
| 
       508 
     | 
    
         
            -
                                4, // bin    32  0xc6
         
     | 
| 
       509 
     | 
    
         
            -
                                1, // ext     8  0xc7
         
     | 
| 
       510 
     | 
    
         
            -
                                2, // ext    16  0xc8
         
     | 
| 
       511 
     | 
    
         
            -
                                4, // ext    32  0xc9
         
     | 
| 
       512 
     | 
    
         
            -
                                4, // float  32  0xca
         
     | 
| 
       513 
     | 
    
         
            -
                                8, // float  64  0xcb
         
     | 
| 
       514 
     | 
    
         
            -
                                1, // uint    8  0xcc
         
     | 
| 
       515 
     | 
    
         
            -
                                2, // uint   16  0xcd
         
     | 
| 
       516 
     | 
    
         
            -
                                4, // uint   32  0xce
         
     | 
| 
       517 
     | 
    
         
            -
                                8, // uint   64  0xcf
         
     | 
| 
       518 
     | 
    
         
            -
                                1, // int     8  0xd0
         
     | 
| 
       519 
     | 
    
         
            -
                                2, // int    16  0xd1
         
     | 
| 
       520 
     | 
    
         
            -
                                4, // int    32  0xd2
         
     | 
| 
       521 
     | 
    
         
            -
                                8, // int    64  0xd3
         
     | 
| 
       522 
     | 
    
         
            -
                                2, // fixext  1  0xd4
         
     | 
| 
       523 
     | 
    
         
            -
                                3, // fixext  2  0xd5
         
     | 
| 
       524 
     | 
    
         
            -
                                5, // fixext  4  0xd6
         
     | 
| 
       525 
     | 
    
         
            -
                                9, // fixext  8  0xd7
         
     | 
| 
       526 
     | 
    
         
            -
                                17,// fixext 16  0xd8
         
     | 
| 
       527 
     | 
    
         
            -
                                1, // str     8  0xd9
         
     | 
| 
       528 
     | 
    
         
            -
                                2, // str    16  0xda
         
     | 
| 
       529 
     | 
    
         
            -
                                4, // str    32  0xdb
         
     | 
| 
       530 
     | 
    
         
            -
                                2, // array  16  0xdc
         
     | 
| 
       531 
     | 
    
         
            -
                                4, // array  32  0xdd
         
     | 
| 
       532 
     | 
    
         
            -
                                2, // map    16  0xde
         
     | 
| 
       533 
     | 
    
         
            -
                                4, // map    32  0xdf
         
     | 
| 
       534 
     | 
    
         
            -
                            };
         
     | 
| 
       535 
     | 
    
         
            -
                            m_trail = trail[selector - 0xc4];
         
     | 
| 
       536 
     | 
    
         
            -
                            m_cs = next_cs(m_current);
         
     | 
| 
       537 
     | 
    
         
            -
                            fixed_trail_again = true;
         
     | 
| 
       538 
     | 
    
         
            -
                        } else if(0xa0 <= selector && selector <= 0xbf) { // FixStr
         
     | 
| 
       539 
     | 
    
         
            -
                            m_trail = static_cast<uint32_t>(*m_current) & 0x1f;
         
     | 
| 
       540 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       541 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_str(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       542 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       543 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       544 
     | 
    
         
            -
                            }
         
     | 
| 
       545 
     | 
    
         
            -
                            else {
         
     | 
| 
       546 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_STR_VALUE;
         
     | 
| 
       547 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       548 
     | 
    
         
            -
                            }
         
     | 
| 
       549 
     | 
    
         
            -
                        } else if(0x90 <= selector && selector <= 0x9f) { // FixArray
         
     | 
| 
       550 
     | 
    
         
            -
                            unpack_return ret = start_aggregate<fix_tag>(array_sv(holder()), array_ev(holder()), m_current, off);
         
     | 
| 
       551 
     | 
    
         
            -
                            if (ret != UNPACK_CONTINUE) return ret;
         
     | 
| 
       552 
     | 
    
         
            -
                            if (!holder().visitor().start_array_item()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       553 
     | 
    
         
            -
                        } else if(0x80 <= selector && selector <= 0x8f) { // FixMap
         
     | 
| 
       554 
     | 
    
         
            -
                            unpack_return ret = start_aggregate<fix_tag>(map_sv(holder()), map_ev(holder()), m_current, off);
         
     | 
| 
       555 
     | 
    
         
            -
                            if (ret != UNPACK_CONTINUE) return ret;
         
     | 
| 
       556 
     | 
    
         
            -
                            if (!holder().visitor().start_map_key()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       557 
     | 
    
         
            -
                        } else if(selector == 0xc2) { // false
         
     | 
| 
       558 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_boolean(false);
         
     | 
| 
       559 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       560 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       561 
     | 
    
         
            -
                        } else if(selector == 0xc3) { // true
         
     | 
| 
       562 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_boolean(true);
         
     | 
| 
       563 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       564 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       565 
     | 
    
         
            -
                        } else if(selector == 0xc0) { // nil
         
     | 
| 
       566 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_nil();
         
     | 
| 
       567 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       568 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       569 
     | 
    
         
            -
                        } else {
         
     | 
| 
       570 
     | 
    
         
            -
                            off = m_current - m_start;
         
     | 
| 
       571 
     | 
    
         
            -
                            holder().visitor().parse_error(off - 1, off);
         
     | 
| 
       572 
     | 
    
         
            -
                            return UNPACK_PARSE_ERROR;
         
     | 
| 
       573 
     | 
    
         
            -
                        }
         
     | 
| 
       574 
     | 
    
         
            -
                        // end MSGPACK_CS_HEADER
         
     | 
| 
       575 
     | 
    
         
            -
                    }
         
     | 
| 
       576 
     | 
    
         
            -
                    if (m_cs != MSGPACK_CS_HEADER || fixed_trail_again) {
         
     | 
| 
       577 
     | 
    
         
            -
                        if (fixed_trail_again) {
         
     | 
| 
       578 
     | 
    
         
            -
                            ++m_current;
         
     | 
| 
       579 
     | 
    
         
            -
                            fixed_trail_again = false;
         
     | 
| 
       580 
     | 
    
         
            -
                        }
         
     | 
| 
       581 
     | 
    
         
            -
                        if(static_cast<std::size_t>(pe - m_current) < m_trail) {
         
     | 
| 
       582 
     | 
    
         
            -
                            off = m_current - m_start;
         
     | 
| 
       583 
     | 
    
         
            -
                            return UNPACK_CONTINUE;
         
     | 
| 
       584 
     | 
    
         
            -
                        }
         
     | 
| 
       585 
     | 
    
         
            -
                        n = m_current;
         
     | 
| 
       586 
     | 
    
         
            -
                        m_current += m_trail - 1;
         
     | 
| 
       587 
     | 
    
         
            -
                        switch(m_cs) {
         
     | 
| 
       588 
     | 
    
         
            -
                            //case MSGPACK_CS_
         
     | 
| 
       589 
     | 
    
         
            -
                            //case MSGPACK_CS_
         
     | 
| 
       590 
     | 
    
         
            -
                        case MSGPACK_CS_FLOAT: {
         
     | 
| 
       591 
     | 
    
         
            -
                            union { uint32_t i; float f; } mem;
         
     | 
| 
       592 
     | 
    
         
            -
                            load<uint32_t>(mem.i, n);
         
     | 
| 
       593 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_float(mem.f);
         
     | 
| 
       594 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       595 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       596 
     | 
    
         
            -
                        } break;
         
     | 
| 
       597 
     | 
    
         
            -
                        case MSGPACK_CS_DOUBLE: {
         
     | 
| 
       598 
     | 
    
         
            -
                            union { uint64_t i; double f; } mem;
         
     | 
| 
       599 
     | 
    
         
            -
                            load<uint64_t>(mem.i, n);
         
     | 
| 
       600 
     | 
    
         
            -
            #if defined(TARGET_OS_IPHONE)
         
     | 
| 
       601 
     | 
    
         
            -
                            // ok
         
     | 
| 
       602 
     | 
    
         
            -
            #elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi
         
     | 
| 
       603 
     | 
    
         
            -
                            // https://github.com/msgpack/msgpack-perl/pull/1
         
     | 
| 
       604 
     | 
    
         
            -
                            mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL);
         
     | 
| 
       605 
     | 
    
         
            -
            #endif
         
     | 
| 
       606 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_float(mem.f);
         
     | 
| 
       607 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       608 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       609 
     | 
    
         
            -
                        } break;
         
     | 
| 
       610 
     | 
    
         
            -
                        case MSGPACK_CS_UINT_8: {
         
     | 
| 
       611 
     | 
    
         
            -
                            uint8_t tmp;
         
     | 
| 
       612 
     | 
    
         
            -
                            load<uint8_t>(tmp, n);
         
     | 
| 
       613 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_positive_integer(tmp);
         
     | 
| 
       614 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       615 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       616 
     | 
    
         
            -
                        } break;
         
     | 
| 
       617 
     | 
    
         
            -
                        case MSGPACK_CS_UINT_16: {
         
     | 
| 
       618 
     | 
    
         
            -
                            uint16_t tmp;
         
     | 
| 
       619 
     | 
    
         
            -
                            load<uint16_t>(tmp, n);
         
     | 
| 
       620 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_positive_integer(tmp);
         
     | 
| 
       621 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       622 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       623 
     | 
    
         
            -
                        } break;
         
     | 
| 
       624 
     | 
    
         
            -
                        case MSGPACK_CS_UINT_32: {
         
     | 
| 
       625 
     | 
    
         
            -
                            uint32_t tmp;
         
     | 
| 
       626 
     | 
    
         
            -
                            load<uint32_t>(tmp, n);
         
     | 
| 
       627 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_positive_integer(tmp);
         
     | 
| 
       628 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       629 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       630 
     | 
    
         
            -
                        } break;
         
     | 
| 
       631 
     | 
    
         
            -
                        case MSGPACK_CS_UINT_64: {
         
     | 
| 
       632 
     | 
    
         
            -
                            uint64_t tmp;
         
     | 
| 
       633 
     | 
    
         
            -
                            load<uint64_t>(tmp, n);
         
     | 
| 
       634 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_positive_integer(tmp);
         
     | 
| 
       635 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       636 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       637 
     | 
    
         
            -
                        } break;
         
     | 
| 
       638 
     | 
    
         
            -
                        case MSGPACK_CS_INT_8: {
         
     | 
| 
       639 
     | 
    
         
            -
                            int8_t tmp;
         
     | 
| 
       640 
     | 
    
         
            -
                            load<int8_t>(tmp, n);
         
     | 
| 
       641 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_negative_integer(tmp);
         
     | 
| 
       642 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       643 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       644 
     | 
    
         
            -
                        } break;
         
     | 
| 
       645 
     | 
    
         
            -
                        case MSGPACK_CS_INT_16: {
         
     | 
| 
       646 
     | 
    
         
            -
                            int16_t tmp;
         
     | 
| 
       647 
     | 
    
         
            -
                            load<int16_t>(tmp, n);
         
     | 
| 
       648 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_negative_integer(tmp);
         
     | 
| 
       649 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       650 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       651 
     | 
    
         
            -
                        } break;
         
     | 
| 
       652 
     | 
    
         
            -
                        case MSGPACK_CS_INT_32: {
         
     | 
| 
       653 
     | 
    
         
            -
                            int32_t tmp;
         
     | 
| 
       654 
     | 
    
         
            -
                            load<int32_t>(tmp, n);
         
     | 
| 
       655 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_negative_integer(tmp);
         
     | 
| 
       656 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       657 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       658 
     | 
    
         
            -
                        } break;
         
     | 
| 
       659 
     | 
    
         
            -
                        case MSGPACK_CS_INT_64: {
         
     | 
| 
       660 
     | 
    
         
            -
                            int64_t tmp;
         
     | 
| 
       661 
     | 
    
         
            -
                            load<int64_t>(tmp, n);
         
     | 
| 
       662 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_negative_integer(tmp);
         
     | 
| 
       663 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       664 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       665 
     | 
    
         
            -
                        } break;
         
     | 
| 
       666 
     | 
    
         
            -
                        case MSGPACK_CS_FIXEXT_1: {
         
     | 
| 
       667 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_ext(n, 1+1);
         
     | 
| 
       668 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       669 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       670 
     | 
    
         
            -
                        } break;
         
     | 
| 
       671 
     | 
    
         
            -
                        case MSGPACK_CS_FIXEXT_2: {
         
     | 
| 
       672 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_ext(n, 2+1);
         
     | 
| 
       673 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       674 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       675 
     | 
    
         
            -
                        } break;
         
     | 
| 
       676 
     | 
    
         
            -
                        case MSGPACK_CS_FIXEXT_4: {
         
     | 
| 
       677 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_ext(n, 4+1);
         
     | 
| 
       678 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       679 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       680 
     | 
    
         
            -
                        } break;
         
     | 
| 
       681 
     | 
    
         
            -
                        case MSGPACK_CS_FIXEXT_8: {
         
     | 
| 
       682 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_ext(n, 8+1);
         
     | 
| 
       683 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       684 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       685 
     | 
    
         
            -
                        } break;
         
     | 
| 
       686 
     | 
    
         
            -
                        case MSGPACK_CS_FIXEXT_16: {
         
     | 
| 
       687 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_ext(n, 16+1);
         
     | 
| 
       688 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       689 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       690 
     | 
    
         
            -
                        } break;
         
     | 
| 
       691 
     | 
    
         
            -
                        case MSGPACK_CS_STR_8: {
         
     | 
| 
       692 
     | 
    
         
            -
                            uint8_t tmp;
         
     | 
| 
       693 
     | 
    
         
            -
                            load<uint8_t>(tmp, n);
         
     | 
| 
       694 
     | 
    
         
            -
                            m_trail = tmp;
         
     | 
| 
       695 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       696 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_str(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       697 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       698 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       699 
     | 
    
         
            -
                            }
         
     | 
| 
       700 
     | 
    
         
            -
                            else {
         
     | 
| 
       701 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_STR_VALUE;
         
     | 
| 
       702 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       703 
     | 
    
         
            -
                            }
         
     | 
| 
       704 
     | 
    
         
            -
                        } break;
         
     | 
| 
       705 
     | 
    
         
            -
                        case MSGPACK_CS_BIN_8: {
         
     | 
| 
       706 
     | 
    
         
            -
                            uint8_t tmp;
         
     | 
| 
       707 
     | 
    
         
            -
                            load<uint8_t>(tmp, n);
         
     | 
| 
       708 
     | 
    
         
            -
                            m_trail = tmp;
         
     | 
| 
       709 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       710 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_bin(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       711 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       712 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       713 
     | 
    
         
            -
                            }
         
     | 
| 
       714 
     | 
    
         
            -
                            else {
         
     | 
| 
       715 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_BIN_VALUE;
         
     | 
| 
       716 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       717 
     | 
    
         
            -
                            }
         
     | 
| 
       718 
     | 
    
         
            -
                        } break;
         
     | 
| 
       719 
     | 
    
         
            -
                        case MSGPACK_CS_EXT_8: {
         
     | 
| 
       720 
     | 
    
         
            -
                            uint8_t tmp;
         
     | 
| 
       721 
     | 
    
         
            -
                            load<uint8_t>(tmp, n);
         
     | 
| 
       722 
     | 
    
         
            -
                            m_trail = tmp + 1;
         
     | 
| 
       723 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       724 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_ext(n, m_trail);
         
     | 
| 
       725 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       726 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       727 
     | 
    
         
            -
                            }
         
     | 
| 
       728 
     | 
    
         
            -
                            else {
         
     | 
| 
       729 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_EXT_VALUE;
         
     | 
| 
       730 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       731 
     | 
    
         
            -
                            }
         
     | 
| 
       732 
     | 
    
         
            -
                        } break;
         
     | 
| 
       733 
     | 
    
         
            -
                        case MSGPACK_CS_STR_16: {
         
     | 
| 
       734 
     | 
    
         
            -
                            uint16_t tmp;
         
     | 
| 
       735 
     | 
    
         
            -
                            load<uint16_t>(tmp, n);
         
     | 
| 
       736 
     | 
    
         
            -
                            m_trail = tmp;
         
     | 
| 
       737 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       738 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_str(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       739 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       740 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       741 
     | 
    
         
            -
                            }
         
     | 
| 
       742 
     | 
    
         
            -
                            else {
         
     | 
| 
       743 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_STR_VALUE;
         
     | 
| 
       744 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       745 
     | 
    
         
            -
                            }
         
     | 
| 
       746 
     | 
    
         
            -
                        } break;
         
     | 
| 
       747 
     | 
    
         
            -
                        case MSGPACK_CS_BIN_16: {
         
     | 
| 
       748 
     | 
    
         
            -
                            uint16_t tmp;
         
     | 
| 
       749 
     | 
    
         
            -
                            load<uint16_t>(tmp, n);
         
     | 
| 
       750 
     | 
    
         
            -
                            m_trail = tmp;
         
     | 
| 
       751 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       752 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_bin(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       753 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       754 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       755 
     | 
    
         
            -
                            }
         
     | 
| 
       756 
     | 
    
         
            -
                            else {
         
     | 
| 
       757 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_BIN_VALUE;
         
     | 
| 
       758 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       759 
     | 
    
         
            -
                            }
         
     | 
| 
       760 
     | 
    
         
            -
                        } break;
         
     | 
| 
       761 
     | 
    
         
            -
                        case MSGPACK_CS_EXT_16: {
         
     | 
| 
       762 
     | 
    
         
            -
                            uint16_t tmp;
         
     | 
| 
       763 
     | 
    
         
            -
                            load<uint16_t>(tmp, n);
         
     | 
| 
       764 
     | 
    
         
            -
                            m_trail = tmp + 1;
         
     | 
| 
       765 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       766 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_ext(n, m_trail);
         
     | 
| 
       767 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       768 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       769 
     | 
    
         
            -
                            }
         
     | 
| 
       770 
     | 
    
         
            -
                            else {
         
     | 
| 
       771 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_EXT_VALUE;
         
     | 
| 
       772 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       773 
     | 
    
         
            -
                            }
         
     | 
| 
       774 
     | 
    
         
            -
                        } break;
         
     | 
| 
       775 
     | 
    
         
            -
                        case MSGPACK_CS_STR_32: {
         
     | 
| 
       776 
     | 
    
         
            -
                            uint32_t tmp;
         
     | 
| 
       777 
     | 
    
         
            -
                            load<uint32_t>(tmp, n);
         
     | 
| 
       778 
     | 
    
         
            -
                            m_trail = tmp;
         
     | 
| 
       779 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       780 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_str(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       781 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       782 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       783 
     | 
    
         
            -
                            }
         
     | 
| 
       784 
     | 
    
         
            -
                            else {
         
     | 
| 
       785 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_STR_VALUE;
         
     | 
| 
       786 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       787 
     | 
    
         
            -
                            }
         
     | 
| 
       788 
     | 
    
         
            -
                        } break;
         
     | 
| 
       789 
     | 
    
         
            -
                        case MSGPACK_CS_BIN_32: {
         
     | 
| 
       790 
     | 
    
         
            -
                            uint32_t tmp;
         
     | 
| 
       791 
     | 
    
         
            -
                            load<uint32_t>(tmp, n);
         
     | 
| 
       792 
     | 
    
         
            -
                            m_trail = tmp;
         
     | 
| 
       793 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       794 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_bin(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       795 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       796 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       797 
     | 
    
         
            -
                            }
         
     | 
| 
       798 
     | 
    
         
            -
                            else {
         
     | 
| 
       799 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_BIN_VALUE;
         
     | 
| 
       800 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       801 
     | 
    
         
            -
                            }
         
     | 
| 
       802 
     | 
    
         
            -
                        } break;
         
     | 
| 
       803 
     | 
    
         
            -
                        case MSGPACK_CS_EXT_32: {
         
     | 
| 
       804 
     | 
    
         
            -
                            uint32_t tmp;
         
     | 
| 
       805 
     | 
    
         
            -
                            load<uint32_t>(tmp, n);
         
     | 
| 
       806 
     | 
    
         
            -
                            check_ext_size<sizeof(std::size_t)>(tmp);
         
     | 
| 
       807 
     | 
    
         
            -
                            m_trail = tmp;
         
     | 
| 
       808 
     | 
    
         
            -
                            ++m_trail;
         
     | 
| 
       809 
     | 
    
         
            -
                            if(m_trail == 0) {
         
     | 
| 
       810 
     | 
    
         
            -
                                bool visret = holder().visitor().visit_ext(n, m_trail);
         
     | 
| 
       811 
     | 
    
         
            -
                                unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       812 
     | 
    
         
            -
                                if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       813 
     | 
    
         
            -
                            }
         
     | 
| 
       814 
     | 
    
         
            -
                            else {
         
     | 
| 
       815 
     | 
    
         
            -
                                m_cs = MSGPACK_ACS_EXT_VALUE;
         
     | 
| 
       816 
     | 
    
         
            -
                                fixed_trail_again = true;
         
     | 
| 
       817 
     | 
    
         
            -
                            }
         
     | 
| 
       818 
     | 
    
         
            -
                        } break;
         
     | 
| 
       819 
     | 
    
         
            -
                        case MSGPACK_ACS_STR_VALUE: {
         
     | 
| 
       820 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_str(n, m_trail);
         
     | 
| 
       821 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       822 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       823 
     | 
    
         
            -
                        } break;
         
     | 
| 
       824 
     | 
    
         
            -
                        case MSGPACK_ACS_BIN_VALUE: {
         
     | 
| 
       825 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_bin(n, static_cast<uint32_t>(m_trail));
         
     | 
| 
       826 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       827 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       828 
     | 
    
         
            -
                        } break;
         
     | 
| 
       829 
     | 
    
         
            -
                        case MSGPACK_ACS_EXT_VALUE: {
         
     | 
| 
       830 
     | 
    
         
            -
                            bool visret = holder().visitor().visit_ext(n, m_trail);
         
     | 
| 
       831 
     | 
    
         
            -
                            unpack_return upr = after_visit_proc(visret, off);
         
     | 
| 
       832 
     | 
    
         
            -
                            if (upr != UNPACK_CONTINUE) return upr;
         
     | 
| 
       833 
     | 
    
         
            -
                        } break;
         
     | 
| 
       834 
     | 
    
         
            -
                        case MSGPACK_CS_ARRAY_16: {
         
     | 
| 
       835 
     | 
    
         
            -
                            unpack_return ret = start_aggregate<uint16_t>(array_sv(holder()), array_ev(holder()), n, off);
         
     | 
| 
       836 
     | 
    
         
            -
                            if (ret != UNPACK_CONTINUE) return ret;
         
     | 
| 
       837 
     | 
    
         
            -
                            if (!holder().visitor().start_array_item()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       838 
     | 
    
         
            -
             
     | 
| 
       839 
     | 
    
         
            -
                        } break;
         
     | 
| 
       840 
     | 
    
         
            -
                        case MSGPACK_CS_ARRAY_32: {
         
     | 
| 
       841 
     | 
    
         
            -
                            unpack_return ret = start_aggregate<uint32_t>(array_sv(holder()), array_ev(holder()), n, off);
         
     | 
| 
       842 
     | 
    
         
            -
                            if (ret != UNPACK_CONTINUE) return ret;
         
     | 
| 
       843 
     | 
    
         
            -
                            if (!holder().visitor().start_array_item()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       844 
     | 
    
         
            -
                        } break;
         
     | 
| 
       845 
     | 
    
         
            -
                        case MSGPACK_CS_MAP_16: {
         
     | 
| 
       846 
     | 
    
         
            -
                            unpack_return ret = start_aggregate<uint16_t>(map_sv(holder()), map_ev(holder()), n, off);
         
     | 
| 
       847 
     | 
    
         
            -
                            if (ret != UNPACK_CONTINUE) return ret;
         
     | 
| 
       848 
     | 
    
         
            -
                            if (!holder().visitor().start_map_key()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       849 
     | 
    
         
            -
                        } break;
         
     | 
| 
       850 
     | 
    
         
            -
                        case MSGPACK_CS_MAP_32: {
         
     | 
| 
       851 
     | 
    
         
            -
                            unpack_return ret = start_aggregate<uint32_t>(map_sv(holder()), map_ev(holder()), n, off);
         
     | 
| 
       852 
     | 
    
         
            -
                            if (ret != UNPACK_CONTINUE) return ret;
         
     | 
| 
       853 
     | 
    
         
            -
                            if (!holder().visitor().start_map_key()) return UNPACK_STOP_VISITOR;
         
     | 
| 
       854 
     | 
    
         
            -
                        } break;
         
     | 
| 
       855 
     | 
    
         
            -
                        default:
         
     | 
| 
       856 
     | 
    
         
            -
                            off = m_current - m_start;
         
     | 
| 
       857 
     | 
    
         
            -
                            holder().visitor().parse_error(n - m_start - 1, n - m_start);
         
     | 
| 
       858 
     | 
    
         
            -
                            return UNPACK_PARSE_ERROR;
         
     | 
| 
       859 
     | 
    
         
            -
                        }
         
     | 
| 
       860 
     | 
    
         
            -
                    }
         
     | 
| 
       861 
     | 
    
         
            -
                } while(m_current != pe);
         
     | 
| 
       862 
     | 
    
         
            -
             
     | 
| 
       863 
     | 
    
         
            -
                off = m_current - m_start;
         
     | 
| 
       864 
     | 
    
         
            -
                return UNPACK_CONTINUE;
         
     | 
| 
       865 
     | 
    
         
            -
            }
         
     | 
| 
       866 
     | 
    
         
            -
             
     | 
| 
       867 
     | 
    
         
            -
            } // detail
         
     | 
| 
       868 
     | 
    
         
            -
             
     | 
| 
       869 
     | 
    
         
            -
             
     | 
| 
       870 
     | 
    
         
            -
            /// Unpacking class for a stream deserialization.
         
     | 
| 
       871 
     | 
    
         
            -
             
     | 
| 
       872 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       873 
     | 
    
         
            -
            class parser : public detail::context<VisitorHolder> {
         
     | 
| 
       874 
     | 
    
         
            -
                typedef parser<VisitorHolder, ReferencedBufferHook> this_type;
         
     | 
| 
       875 
     | 
    
         
            -
                typedef detail::context<VisitorHolder> context_type;
         
     | 
| 
       876 
     | 
    
         
            -
            public:
         
     | 
| 
       877 
     | 
    
         
            -
                /// Constructor
         
     | 
| 
       878 
     | 
    
         
            -
                /**
         
     | 
| 
       879 
     | 
    
         
            -
                 * @param referenced If the unpacked object contains reference of the buffer, then set as true, otherwise false.
         
     | 
| 
       880 
     | 
    
         
            -
                 * @param f A judging function that msgpack::object refer to the buffer.
         
     | 
| 
       881 
     | 
    
         
            -
                 * @param user_data This parameter is passed to f.
         
     | 
| 
       882 
     | 
    
         
            -
                 * @param initial_buffer_size The memory size to allocate when unpacker is constructed.
         
     | 
| 
       883 
     | 
    
         
            -
                 * @param limit The size limit information of msgpack::object.
         
     | 
| 
       884 
     | 
    
         
            -
                 *
         
     | 
| 
       885 
     | 
    
         
            -
                 */
         
     | 
| 
       886 
     | 
    
         
            -
                parser(ReferencedBufferHook& hook,
         
     | 
| 
       887 
     | 
    
         
            -
                       std::size_t initial_buffer_size = MSGPACK_UNPACKER_INIT_BUFFER_SIZE);
         
     | 
| 
       888 
     | 
    
         
            -
             
     | 
| 
       889 
     | 
    
         
            -
            #if !defined(MSGPACK_USE_CPP03)
         
     | 
| 
       890 
     | 
    
         
            -
                parser(this_type&& other);
         
     | 
| 
       891 
     | 
    
         
            -
                this_type& operator=(this_type&& other);
         
     | 
| 
       892 
     | 
    
         
            -
            #endif // !defined(MSGPACK_USE_CPP03)
         
     | 
| 
       893 
     | 
    
         
            -
             
     | 
| 
       894 
     | 
    
         
            -
                ~parser();
         
     | 
| 
       895 
     | 
    
         
            -
             
     | 
| 
       896 
     | 
    
         
            -
            public:
         
     | 
| 
       897 
     | 
    
         
            -
                /// Reserve a buffer memory.
         
     | 
| 
       898 
     | 
    
         
            -
                /**
         
     | 
| 
       899 
     | 
    
         
            -
                 * @param size The size of allocating memory.
         
     | 
| 
       900 
     | 
    
         
            -
                 *
         
     | 
| 
       901 
     | 
    
         
            -
                 * After returning this function, buffer_capacity() returns at least 'size'.
         
     | 
| 
       902 
     | 
    
         
            -
                 * See:
         
     | 
| 
       903 
     | 
    
         
            -
                 * https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_unpacker#msgpack-controls-a-buffer
         
     | 
| 
       904 
     | 
    
         
            -
                 */
         
     | 
| 
       905 
     | 
    
         
            -
                void reserve_buffer(std::size_t size = MSGPACK_UNPACKER_RESERVE_SIZE);
         
     | 
| 
       906 
     | 
    
         
            -
             
     | 
| 
       907 
     | 
    
         
            -
                /// Get buffer pointer.
         
     | 
| 
       908 
     | 
    
         
            -
                /**
         
     | 
| 
       909 
     | 
    
         
            -
                 * You need to care about the memory is enable between buffer() and buffer() + buffer_capacity()
         
     | 
| 
       910 
     | 
    
         
            -
                 * See:
         
     | 
| 
       911 
     | 
    
         
            -
                 * https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_unpacker#msgpack-controls-a-buffer
         
     | 
| 
       912 
     | 
    
         
            -
                 */
         
     | 
| 
       913 
     | 
    
         
            -
                char* buffer();
         
     | 
| 
       914 
     | 
    
         
            -
             
     | 
| 
       915 
     | 
    
         
            -
                /// Get buffer capacity.
         
     | 
| 
       916 
     | 
    
         
            -
                /**
         
     | 
| 
       917 
     | 
    
         
            -
                 * @return The memory size that you can write.
         
     | 
| 
       918 
     | 
    
         
            -
                 *
         
     | 
| 
       919 
     | 
    
         
            -
                 * See:
         
     | 
| 
       920 
     | 
    
         
            -
                 * https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_unpacker#msgpack-controls-a-buffer
         
     | 
| 
       921 
     | 
    
         
            -
                 */
         
     | 
| 
       922 
     | 
    
         
            -
                std::size_t buffer_capacity() const;
         
     | 
| 
       923 
     | 
    
         
            -
             
     | 
| 
       924 
     | 
    
         
            -
                /// Notify a buffer consumed information to msgpack::unpacker.
         
     | 
| 
       925 
     | 
    
         
            -
                /**
         
     | 
| 
       926 
     | 
    
         
            -
                 * @param size The size of memory that you consumed.
         
     | 
| 
       927 
     | 
    
         
            -
                 *
         
     | 
| 
       928 
     | 
    
         
            -
                 * After copying the data to the memory that is pointed by buffer(), you need to call the
         
     | 
| 
       929 
     | 
    
         
            -
                 * function to notify how many bytes are consumed. Then you can call next() functions.
         
     | 
| 
       930 
     | 
    
         
            -
                 *
         
     | 
| 
       931 
     | 
    
         
            -
                 * See:
         
     | 
| 
       932 
     | 
    
         
            -
                 * https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_unpacker#msgpack-controls-a-buffer
         
     | 
| 
       933 
     | 
    
         
            -
                 */
         
     | 
| 
       934 
     | 
    
         
            -
                void buffer_consumed(std::size_t size);
         
     | 
| 
       935 
     | 
    
         
            -
             
     | 
| 
       936 
     | 
    
         
            -
                /// Unpack one msgpack::object.
         
     | 
| 
       937 
     | 
    
         
            -
                /**
         
     | 
| 
       938 
     | 
    
         
            -
                 *
         
     | 
| 
       939 
     | 
    
         
            -
                 *
         
     | 
| 
       940 
     | 
    
         
            -
                 * @return If one msgpack::object is unpacked, then return true, if msgpack::object is incomplete
         
     | 
| 
       941 
     | 
    
         
            -
                 *         and additional data is required, then return false. If data format is invalid, throw
         
     | 
| 
       942 
     | 
    
         
            -
                 *         msgpack::parse_error.
         
     | 
| 
       943 
     | 
    
         
            -
                 *
         
     | 
| 
       944 
     | 
    
         
            -
                 * See:
         
     | 
| 
       945 
     | 
    
         
            -
                 * https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_unpacker#msgpack-controls-a-buffer
         
     | 
| 
       946 
     | 
    
         
            -
                 */
         
     | 
| 
       947 
     | 
    
         
            -
                bool next();
         
     | 
| 
       948 
     | 
    
         
            -
             
     | 
| 
       949 
     | 
    
         
            -
                /// Get message size.
         
     | 
| 
       950 
     | 
    
         
            -
                /**
         
     | 
| 
       951 
     | 
    
         
            -
                 * @return Returns parsed_size() + nonparsed_size()
         
     | 
| 
       952 
     | 
    
         
            -
                 */
         
     | 
| 
       953 
     | 
    
         
            -
                std::size_t message_size() const;
         
     | 
| 
       954 
     | 
    
         
            -
             
     | 
| 
       955 
     | 
    
         
            -
            public:
         
     | 
| 
       956 
     | 
    
         
            -
                /// Get parsed message size.
         
     | 
| 
       957 
     | 
    
         
            -
                /**
         
     | 
| 
       958 
     | 
    
         
            -
                 * @return Parsed message size.
         
     | 
| 
       959 
     | 
    
         
            -
                 *
         
     | 
| 
       960 
     | 
    
         
            -
                 * This function is usable when non-MessagePack message follows after
         
     | 
| 
       961 
     | 
    
         
            -
                 * MessagePack message.
         
     | 
| 
       962 
     | 
    
         
            -
                 */
         
     | 
| 
       963 
     | 
    
         
            -
                std::size_t parsed_size() const;
         
     | 
| 
       964 
     | 
    
         
            -
             
     | 
| 
       965 
     | 
    
         
            -
                /// Get the address that is not parsed in the buffer.
         
     | 
| 
       966 
     | 
    
         
            -
                /**
         
     | 
| 
       967 
     | 
    
         
            -
                 * @return Address of the buffer that is not parsed
         
     | 
| 
       968 
     | 
    
         
            -
                 *
         
     | 
| 
       969 
     | 
    
         
            -
                 * This function is usable when non-MessagePack message follows after
         
     | 
| 
       970 
     | 
    
         
            -
                 * MessagePack message.
         
     | 
| 
       971 
     | 
    
         
            -
                 */
         
     | 
| 
       972 
     | 
    
         
            -
                char* nonparsed_buffer();
         
     | 
| 
       973 
     | 
    
         
            -
             
     | 
| 
       974 
     | 
    
         
            -
                /// Get the size of the buffer that is not parsed.
         
     | 
| 
       975 
     | 
    
         
            -
                /**
         
     | 
| 
       976 
     | 
    
         
            -
                 * @return Size of the buffer that is not parsed
         
     | 
| 
       977 
     | 
    
         
            -
                 *
         
     | 
| 
       978 
     | 
    
         
            -
                 * This function is usable when non-MessagePack message follows after
         
     | 
| 
       979 
     | 
    
         
            -
                 * MessagePack message.
         
     | 
| 
       980 
     | 
    
         
            -
                 */
         
     | 
| 
       981 
     | 
    
         
            -
                std::size_t nonparsed_size() const;
         
     | 
| 
       982 
     | 
    
         
            -
             
     | 
| 
       983 
     | 
    
         
            -
                /// Skip the specified size of non-parsed buffer.
         
     | 
| 
       984 
     | 
    
         
            -
                /**
         
     | 
| 
       985 
     | 
    
         
            -
                 * @param size to skip
         
     | 
| 
       986 
     | 
    
         
            -
                 *
         
     | 
| 
       987 
     | 
    
         
            -
                 * Note that the `size' argument must be smaller than nonparsed_size().
         
     | 
| 
       988 
     | 
    
         
            -
                 * This function is usable when non-MessagePack message follows after
         
     | 
| 
       989 
     | 
    
         
            -
                 * MessagePack message.
         
     | 
| 
       990 
     | 
    
         
            -
                 */
         
     | 
| 
       991 
     | 
    
         
            -
                void skip_nonparsed_buffer(std::size_t size);
         
     | 
| 
       992 
     | 
    
         
            -
             
     | 
| 
       993 
     | 
    
         
            -
                /// Remove nonparsed buffer and reset the current position as a new start point.
         
     | 
| 
       994 
     | 
    
         
            -
                /**
         
     | 
| 
       995 
     | 
    
         
            -
                 * This function is usable when non-MessagePack message follows after
         
     | 
| 
       996 
     | 
    
         
            -
                 * MessagePack message.
         
     | 
| 
       997 
     | 
    
         
            -
                 */
         
     | 
| 
       998 
     | 
    
         
            -
                void remove_nonparsed_buffer();
         
     | 
| 
       999 
     | 
    
         
            -
             
     | 
| 
       1000 
     | 
    
         
            -
                void reset();
         
     | 
| 
       1001 
     | 
    
         
            -
             
     | 
| 
       1002 
     | 
    
         
            -
            protected:
         
     | 
| 
       1003 
     | 
    
         
            -
                char* get_raw_buffer() {
         
     | 
| 
       1004 
     | 
    
         
            -
                    return m_buffer;
         
     | 
| 
       1005 
     | 
    
         
            -
                }
         
     | 
| 
       1006 
     | 
    
         
            -
            private:
         
     | 
| 
       1007 
     | 
    
         
            -
                void expand_buffer(std::size_t size);
         
     | 
| 
       1008 
     | 
    
         
            -
                unpack_return execute_imp();
         
     | 
| 
       1009 
     | 
    
         
            -
             
     | 
| 
       1010 
     | 
    
         
            -
            private:
         
     | 
| 
       1011 
     | 
    
         
            -
                char* m_buffer;
         
     | 
| 
       1012 
     | 
    
         
            -
                std::size_t m_used;
         
     | 
| 
       1013 
     | 
    
         
            -
                std::size_t m_free;
         
     | 
| 
       1014 
     | 
    
         
            -
                std::size_t m_off;
         
     | 
| 
       1015 
     | 
    
         
            -
                std::size_t m_parsed;
         
     | 
| 
       1016 
     | 
    
         
            -
                std::size_t m_initial_buffer_size;
         
     | 
| 
       1017 
     | 
    
         
            -
                ReferencedBufferHook& m_referenced_buffer_hook;
         
     | 
| 
       1018 
     | 
    
         
            -
             
     | 
| 
       1019 
     | 
    
         
            -
            #if defined(MSGPACK_USE_CPP03)
         
     | 
| 
       1020 
     | 
    
         
            -
            private:
         
     | 
| 
       1021 
     | 
    
         
            -
                parser(const this_type&);
         
     | 
| 
       1022 
     | 
    
         
            -
                this_type& operator=(const this_type&);
         
     | 
| 
       1023 
     | 
    
         
            -
            #else  // defined(MSGPACK_USE_CPP03)
         
     | 
| 
       1024 
     | 
    
         
            -
            public:
         
     | 
| 
       1025 
     | 
    
         
            -
                parser(const this_type&) = delete;
         
     | 
| 
       1026 
     | 
    
         
            -
                this_type& operator=(const this_type&) = delete;
         
     | 
| 
       1027 
     | 
    
         
            -
            #endif // defined(MSGPACK_USE_CPP03)
         
     | 
| 
       1028 
     | 
    
         
            -
            };
         
     | 
| 
       1029 
     | 
    
         
            -
             
     | 
| 
       1030 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1031 
     | 
    
         
            -
            inline parser<VisitorHolder, ReferencedBufferHook>::parser(
         
     | 
| 
       1032 
     | 
    
         
            -
                ReferencedBufferHook& hook,
         
     | 
| 
       1033 
     | 
    
         
            -
                std::size_t initial_buffer_size)
         
     | 
| 
       1034 
     | 
    
         
            -
                :m_referenced_buffer_hook(hook)
         
     | 
| 
       1035 
     | 
    
         
            -
            {
         
     | 
| 
       1036 
     | 
    
         
            -
                if(initial_buffer_size < COUNTER_SIZE) {
         
     | 
| 
       1037 
     | 
    
         
            -
                    initial_buffer_size = COUNTER_SIZE;
         
     | 
| 
       1038 
     | 
    
         
            -
                }
         
     | 
| 
       1039 
     | 
    
         
            -
             
     | 
| 
       1040 
     | 
    
         
            -
                char* buffer = static_cast<char*>(::malloc(initial_buffer_size));
         
     | 
| 
       1041 
     | 
    
         
            -
                if(!buffer) {
         
     | 
| 
       1042 
     | 
    
         
            -
                    throw std::bad_alloc();
         
     | 
| 
       1043 
     | 
    
         
            -
                }
         
     | 
| 
       1044 
     | 
    
         
            -
             
     | 
| 
       1045 
     | 
    
         
            -
                m_buffer = buffer;
         
     | 
| 
       1046 
     | 
    
         
            -
                m_used = COUNTER_SIZE;
         
     | 
| 
       1047 
     | 
    
         
            -
                m_free = initial_buffer_size - m_used;
         
     | 
| 
       1048 
     | 
    
         
            -
                m_off = COUNTER_SIZE;
         
     | 
| 
       1049 
     | 
    
         
            -
                m_parsed = 0;
         
     | 
| 
       1050 
     | 
    
         
            -
                m_initial_buffer_size = initial_buffer_size;
         
     | 
| 
       1051 
     | 
    
         
            -
             
     | 
| 
       1052 
     | 
    
         
            -
                detail::init_count(m_buffer);
         
     | 
| 
       1053 
     | 
    
         
            -
            }
         
     | 
| 
       1054 
     | 
    
         
            -
             
     | 
| 
       1055 
     | 
    
         
            -
            #if !defined(MSGPACK_USE_CPP03)
         
     | 
| 
       1056 
     | 
    
         
            -
            // Move constructor and move assignment operator
         
     | 
| 
       1057 
     | 
    
         
            -
             
     | 
| 
       1058 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1059 
     | 
    
         
            -
            inline parser<VisitorHolder, ReferencedBufferHook>::parser(this_type&& other)
         
     | 
| 
       1060 
     | 
    
         
            -
                :context_type(std::move(other)),
         
     | 
| 
       1061 
     | 
    
         
            -
                 m_buffer(other.m_buffer),
         
     | 
| 
       1062 
     | 
    
         
            -
                 m_used(other.m_used),
         
     | 
| 
       1063 
     | 
    
         
            -
                 m_free(other.m_free),
         
     | 
| 
       1064 
     | 
    
         
            -
                 m_off(other.m_off),
         
     | 
| 
       1065 
     | 
    
         
            -
                 m_parsed(other.m_parsed),
         
     | 
| 
       1066 
     | 
    
         
            -
                 m_initial_buffer_size(other.m_initial_buffer_size),
         
     | 
| 
       1067 
     | 
    
         
            -
                 m_referenced_buffer_hook(other.m_referenced_buffer_hook) {
         
     | 
| 
       1068 
     | 
    
         
            -
                other.m_buffer = MSGPACK_NULLPTR;
         
     | 
| 
       1069 
     | 
    
         
            -
                other.m_used = 0;
         
     | 
| 
       1070 
     | 
    
         
            -
                other.m_free = 0;
         
     | 
| 
       1071 
     | 
    
         
            -
                other.m_off = 0;
         
     | 
| 
       1072 
     | 
    
         
            -
                other.m_parsed = 0;
         
     | 
| 
       1073 
     | 
    
         
            -
            }
         
     | 
| 
       1074 
     | 
    
         
            -
             
     | 
| 
       1075 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1076 
     | 
    
         
            -
            inline parser<VisitorHolder, ReferencedBufferHook>& parser<VisitorHolder, ReferencedBufferHook>::operator=(this_type&& other) {
         
     | 
| 
       1077 
     | 
    
         
            -
                this->~parser();
         
     | 
| 
       1078 
     | 
    
         
            -
                new (this) this_type(std::move(other));
         
     | 
| 
       1079 
     | 
    
         
            -
                return *this;
         
     | 
| 
       1080 
     | 
    
         
            -
            }
         
     | 
| 
       1081 
     | 
    
         
            -
             
     | 
| 
       1082 
     | 
    
         
            -
            #endif // !defined(MSGPACK_USE_CPP03)
         
     | 
| 
       1083 
     | 
    
         
            -
             
     | 
| 
       1084 
     | 
    
         
            -
             
     | 
| 
       1085 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1086 
     | 
    
         
            -
            inline parser<VisitorHolder, ReferencedBufferHook>::~parser()
         
     | 
| 
       1087 
     | 
    
         
            -
            {
         
     | 
| 
       1088 
     | 
    
         
            -
                // These checks are required for move operations.
         
     | 
| 
       1089 
     | 
    
         
            -
                if (m_buffer) detail::decr_count(m_buffer);
         
     | 
| 
       1090 
     | 
    
         
            -
            }
         
     | 
| 
       1091 
     | 
    
         
            -
             
     | 
| 
       1092 
     | 
    
         
            -
             
     | 
| 
       1093 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1094 
     | 
    
         
            -
            inline void parser<VisitorHolder, ReferencedBufferHook>::reserve_buffer(std::size_t size)
         
     | 
| 
       1095 
     | 
    
         
            -
            {
         
     | 
| 
       1096 
     | 
    
         
            -
                if(m_free >= size) return;
         
     | 
| 
       1097 
     | 
    
         
            -
                expand_buffer(size);
         
     | 
| 
       1098 
     | 
    
         
            -
            }
         
     | 
| 
       1099 
     | 
    
         
            -
             
     | 
| 
       1100 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1101 
     | 
    
         
            -
            inline void parser<VisitorHolder, ReferencedBufferHook>::expand_buffer(std::size_t size)
         
     | 
| 
       1102 
     | 
    
         
            -
            {
         
     | 
| 
       1103 
     | 
    
         
            -
                if(m_used == m_off && detail::get_count(m_buffer) == 1
         
     | 
| 
       1104 
     | 
    
         
            -
                   && static_cast<VisitorHolder&>(*this).visitor().referenced()) {
         
     | 
| 
       1105 
     | 
    
         
            -
                    // rewind buffer
         
     | 
| 
       1106 
     | 
    
         
            -
                    m_free += m_used - COUNTER_SIZE;
         
     | 
| 
       1107 
     | 
    
         
            -
                    m_used = COUNTER_SIZE;
         
     | 
| 
       1108 
     | 
    
         
            -
                    m_off  = COUNTER_SIZE;
         
     | 
| 
       1109 
     | 
    
         
            -
             
     | 
| 
       1110 
     | 
    
         
            -
                    if(m_free >= size) return;
         
     | 
| 
       1111 
     | 
    
         
            -
                }
         
     | 
| 
       1112 
     | 
    
         
            -
             
     | 
| 
       1113 
     | 
    
         
            -
                if(m_off == COUNTER_SIZE) {
         
     | 
| 
       1114 
     | 
    
         
            -
                    std::size_t next_size = (m_used + m_free) * 2;    // include COUNTER_SIZE
         
     | 
| 
       1115 
     | 
    
         
            -
                    while(next_size < size + m_used) {
         
     | 
| 
       1116 
     | 
    
         
            -
                        std::size_t tmp_next_size = next_size * 2;
         
     | 
| 
       1117 
     | 
    
         
            -
                        if (tmp_next_size <= next_size) {
         
     | 
| 
       1118 
     | 
    
         
            -
                            next_size = size + m_used;
         
     | 
| 
       1119 
     | 
    
         
            -
                            break;
         
     | 
| 
       1120 
     | 
    
         
            -
                        }
         
     | 
| 
       1121 
     | 
    
         
            -
                        next_size = tmp_next_size;
         
     | 
| 
       1122 
     | 
    
         
            -
                    }
         
     | 
| 
       1123 
     | 
    
         
            -
             
     | 
| 
       1124 
     | 
    
         
            -
                    char* tmp = static_cast<char*>(::realloc(m_buffer, next_size));
         
     | 
| 
       1125 
     | 
    
         
            -
                    if(!tmp) {
         
     | 
| 
       1126 
     | 
    
         
            -
                        throw std::bad_alloc();
         
     | 
| 
       1127 
     | 
    
         
            -
                    }
         
     | 
| 
       1128 
     | 
    
         
            -
             
     | 
| 
       1129 
     | 
    
         
            -
                    m_buffer = tmp;
         
     | 
| 
       1130 
     | 
    
         
            -
                    m_free = next_size - m_used;
         
     | 
| 
       1131 
     | 
    
         
            -
             
     | 
| 
       1132 
     | 
    
         
            -
                } else {
         
     | 
| 
       1133 
     | 
    
         
            -
                    std::size_t next_size = m_initial_buffer_size;  // include COUNTER_SIZE
         
     | 
| 
       1134 
     | 
    
         
            -
                    std::size_t not_parsed = m_used - m_off;
         
     | 
| 
       1135 
     | 
    
         
            -
                    while(next_size < size + not_parsed + COUNTER_SIZE) {
         
     | 
| 
       1136 
     | 
    
         
            -
                        std::size_t tmp_next_size = next_size * 2;
         
     | 
| 
       1137 
     | 
    
         
            -
                        if (tmp_next_size <= next_size) {
         
     | 
| 
       1138 
     | 
    
         
            -
                            next_size = size + not_parsed + COUNTER_SIZE;
         
     | 
| 
       1139 
     | 
    
         
            -
                            break;
         
     | 
| 
       1140 
     | 
    
         
            -
                        }
         
     | 
| 
       1141 
     | 
    
         
            -
                        next_size = tmp_next_size;
         
     | 
| 
       1142 
     | 
    
         
            -
                    }
         
     | 
| 
       1143 
     | 
    
         
            -
             
     | 
| 
       1144 
     | 
    
         
            -
                    char* tmp = static_cast<char*>(::malloc(next_size));
         
     | 
| 
       1145 
     | 
    
         
            -
                    if(!tmp) {
         
     | 
| 
       1146 
     | 
    
         
            -
                        throw std::bad_alloc();
         
     | 
| 
       1147 
     | 
    
         
            -
                    }
         
     | 
| 
       1148 
     | 
    
         
            -
             
     | 
| 
       1149 
     | 
    
         
            -
                    detail::init_count(tmp);
         
     | 
| 
       1150 
     | 
    
         
            -
             
     | 
| 
       1151 
     | 
    
         
            -
                    std::memcpy(tmp+COUNTER_SIZE, m_buffer + m_off, not_parsed);
         
     | 
| 
       1152 
     | 
    
         
            -
             
     | 
| 
       1153 
     | 
    
         
            -
                    if(static_cast<VisitorHolder&>(*this).referenced()) {
         
     | 
| 
       1154 
     | 
    
         
            -
                        try {
         
     | 
| 
       1155 
     | 
    
         
            -
                            m_referenced_buffer_hook(m_buffer);
         
     | 
| 
       1156 
     | 
    
         
            -
                        }
         
     | 
| 
       1157 
     | 
    
         
            -
                        catch (...) {
         
     | 
| 
       1158 
     | 
    
         
            -
                            ::free(tmp);
         
     | 
| 
       1159 
     | 
    
         
            -
                            throw;
         
     | 
| 
       1160 
     | 
    
         
            -
                        }
         
     | 
| 
       1161 
     | 
    
         
            -
                        static_cast<VisitorHolder&>(*this).set_referenced(false);
         
     | 
| 
       1162 
     | 
    
         
            -
                    } else {
         
     | 
| 
       1163 
     | 
    
         
            -
                        detail::decr_count(m_buffer);
         
     | 
| 
       1164 
     | 
    
         
            -
                    }
         
     | 
| 
       1165 
     | 
    
         
            -
             
     | 
| 
       1166 
     | 
    
         
            -
                    m_buffer = tmp;
         
     | 
| 
       1167 
     | 
    
         
            -
                    m_used  = not_parsed + COUNTER_SIZE;
         
     | 
| 
       1168 
     | 
    
         
            -
                    m_free  = next_size - m_used;
         
     | 
| 
       1169 
     | 
    
         
            -
                    m_off   = COUNTER_SIZE;
         
     | 
| 
       1170 
     | 
    
         
            -
                }
         
     | 
| 
       1171 
     | 
    
         
            -
            }
         
     | 
| 
       1172 
     | 
    
         
            -
             
     | 
| 
       1173 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1174 
     | 
    
         
            -
            inline char* parser<VisitorHolder, ReferencedBufferHook>::buffer()
         
     | 
| 
       1175 
     | 
    
         
            -
            {
         
     | 
| 
       1176 
     | 
    
         
            -
                return m_buffer + m_used;
         
     | 
| 
       1177 
     | 
    
         
            -
            }
         
     | 
| 
       1178 
     | 
    
         
            -
             
     | 
| 
       1179 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1180 
     | 
    
         
            -
            inline std::size_t parser<VisitorHolder, ReferencedBufferHook>::buffer_capacity() const
         
     | 
| 
       1181 
     | 
    
         
            -
            {
         
     | 
| 
       1182 
     | 
    
         
            -
                return m_free;
         
     | 
| 
       1183 
     | 
    
         
            -
            }
         
     | 
| 
       1184 
     | 
    
         
            -
             
     | 
| 
       1185 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1186 
     | 
    
         
            -
            inline void parser<VisitorHolder, ReferencedBufferHook>::buffer_consumed(std::size_t size)
         
     | 
| 
       1187 
     | 
    
         
            -
            {
         
     | 
| 
       1188 
     | 
    
         
            -
                m_used += size;
         
     | 
| 
       1189 
     | 
    
         
            -
                m_free -= size;
         
     | 
| 
       1190 
     | 
    
         
            -
            }
         
     | 
| 
       1191 
     | 
    
         
            -
             
     | 
| 
       1192 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1193 
     | 
    
         
            -
                inline bool parser<VisitorHolder, ReferencedBufferHook>::next()
         
     | 
| 
       1194 
     | 
    
         
            -
            {
         
     | 
| 
       1195 
     | 
    
         
            -
                unpack_return ret = execute_imp();
         
     | 
| 
       1196 
     | 
    
         
            -
                return ret == UNPACK_SUCCESS;
         
     | 
| 
       1197 
     | 
    
         
            -
            }
         
     | 
| 
       1198 
     | 
    
         
            -
             
     | 
| 
       1199 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1200 
     | 
    
         
            -
            inline unpack_return parser<VisitorHolder, ReferencedBufferHook>::execute_imp()
         
     | 
| 
       1201 
     | 
    
         
            -
            {
         
     | 
| 
       1202 
     | 
    
         
            -
                std::size_t off = m_off;
         
     | 
| 
       1203 
     | 
    
         
            -
                unpack_return ret = context_type::execute(m_buffer, m_used, m_off);
         
     | 
| 
       1204 
     | 
    
         
            -
                if(m_off > off) {
         
     | 
| 
       1205 
     | 
    
         
            -
                    m_parsed += m_off - off;
         
     | 
| 
       1206 
     | 
    
         
            -
                }
         
     | 
| 
       1207 
     | 
    
         
            -
                return ret;
         
     | 
| 
       1208 
     | 
    
         
            -
            }
         
     | 
| 
       1209 
     | 
    
         
            -
             
     | 
| 
       1210 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1211 
     | 
    
         
            -
            inline void parser<VisitorHolder, ReferencedBufferHook>::reset()
         
     | 
| 
       1212 
     | 
    
         
            -
            {
         
     | 
| 
       1213 
     | 
    
         
            -
                context_type::init();
         
     | 
| 
       1214 
     | 
    
         
            -
                // don't reset referenced flag
         
     | 
| 
       1215 
     | 
    
         
            -
                m_parsed = 0;
         
     | 
| 
       1216 
     | 
    
         
            -
            }
         
     | 
| 
       1217 
     | 
    
         
            -
             
     | 
| 
       1218 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1219 
     | 
    
         
            -
            inline std::size_t parser<VisitorHolder, ReferencedBufferHook>::message_size() const
         
     | 
| 
       1220 
     | 
    
         
            -
            {
         
     | 
| 
       1221 
     | 
    
         
            -
                return m_parsed - m_off + m_used;
         
     | 
| 
       1222 
     | 
    
         
            -
            }
         
     | 
| 
       1223 
     | 
    
         
            -
             
     | 
| 
       1224 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1225 
     | 
    
         
            -
            inline std::size_t parser<VisitorHolder, ReferencedBufferHook>::parsed_size() const
         
     | 
| 
       1226 
     | 
    
         
            -
            {
         
     | 
| 
       1227 
     | 
    
         
            -
                return m_parsed;
         
     | 
| 
       1228 
     | 
    
         
            -
            }
         
     | 
| 
       1229 
     | 
    
         
            -
             
     | 
| 
       1230 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1231 
     | 
    
         
            -
            inline char* parser<VisitorHolder, ReferencedBufferHook>::nonparsed_buffer()
         
     | 
| 
       1232 
     | 
    
         
            -
            {
         
     | 
| 
       1233 
     | 
    
         
            -
                return m_buffer + m_off;
         
     | 
| 
       1234 
     | 
    
         
            -
            }
         
     | 
| 
       1235 
     | 
    
         
            -
             
     | 
| 
       1236 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1237 
     | 
    
         
            -
            inline std::size_t parser<VisitorHolder, ReferencedBufferHook>::nonparsed_size() const
         
     | 
| 
       1238 
     | 
    
         
            -
            {
         
     | 
| 
       1239 
     | 
    
         
            -
                return m_used - m_off;
         
     | 
| 
       1240 
     | 
    
         
            -
            }
         
     | 
| 
       1241 
     | 
    
         
            -
             
     | 
| 
       1242 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1243 
     | 
    
         
            -
            inline void parser<VisitorHolder, ReferencedBufferHook>::skip_nonparsed_buffer(std::size_t size)
         
     | 
| 
       1244 
     | 
    
         
            -
            {
         
     | 
| 
       1245 
     | 
    
         
            -
                m_off += size;
         
     | 
| 
       1246 
     | 
    
         
            -
            }
         
     | 
| 
       1247 
     | 
    
         
            -
             
     | 
| 
       1248 
     | 
    
         
            -
            template <typename VisitorHolder, typename ReferencedBufferHook>
         
     | 
| 
       1249 
     | 
    
         
            -
            inline void parser<VisitorHolder, ReferencedBufferHook>::remove_nonparsed_buffer()
         
     | 
| 
       1250 
     | 
    
         
            -
            {
         
     | 
| 
       1251 
     | 
    
         
            -
                m_used = m_off;
         
     | 
| 
       1252 
     | 
    
         
            -
            }
         
     | 
| 
       1253 
25 
     | 
    
         | 
| 
       1254 
26 
     | 
    
         
             
            struct zone_push_finalizer {
         
     | 
| 
       1255 
27 
     | 
    
         
             
                zone_push_finalizer(msgpack::zone& z):m_z(&z) {}
         
     | 
| 
         @@ -1262,13 +34,13 @@ struct zone_push_finalizer { 
     | 
|
| 
       1262 
34 
     | 
    
         | 
| 
       1263 
35 
     | 
    
         
             
            class unpacker : public parser<unpacker, zone_push_finalizer>,
         
     | 
| 
       1264 
36 
     | 
    
         
             
                             public detail::create_object_visitor {
         
     | 
| 
       1265 
     | 
    
         
            -
                typedef parser<unpacker, zone_push_finalizer>  
     | 
| 
      
 37 
     | 
    
         
            +
                typedef parser<unpacker, zone_push_finalizer> parser_t;
         
     | 
| 
       1266 
38 
     | 
    
         
             
            public:
         
     | 
| 
       1267 
39 
     | 
    
         
             
                unpacker(unpack_reference_func f = &unpacker::default_reference_func,
         
     | 
| 
       1268 
40 
     | 
    
         
             
                         void* user_data = MSGPACK_NULLPTR,
         
     | 
| 
       1269 
41 
     | 
    
         
             
                         std::size_t initial_buffer_size = MSGPACK_UNPACKER_INIT_BUFFER_SIZE,
         
     | 
| 
       1270 
42 
     | 
    
         
             
                         unpack_limit const& limit = unpack_limit())
         
     | 
| 
       1271 
     | 
    
         
            -
                    : 
     | 
| 
      
 43 
     | 
    
         
            +
                    :parser_t(m_finalizer, initial_buffer_size),
         
     | 
| 
       1272 
44 
     | 
    
         
             
                     detail::create_object_visitor(f, user_data, limit),
         
     | 
| 
       1273 
45 
     | 
    
         
             
                     m_z(new msgpack::zone),
         
     | 
| 
       1274 
46 
     | 
    
         
             
                     m_finalizer(*m_z) {
         
     | 
| 
         @@ -1318,7 +90,7 @@ private: 
     | 
|
| 
       1318 
90 
     | 
    
         
             
            };
         
     | 
| 
       1319 
91 
     | 
    
         | 
| 
       1320 
92 
     | 
    
         
             
            inline bool unpacker::next(msgpack::object_handle& result, bool& referenced) {
         
     | 
| 
       1321 
     | 
    
         
            -
                bool ret =  
     | 
| 
      
 93 
     | 
    
         
            +
                bool ret = parser_t::next();
         
     | 
| 
       1322 
94 
     | 
    
         
             
                if (ret) {
         
     | 
| 
       1323 
95 
     | 
    
         
             
                    referenced = detail::create_object_visitor::referenced();
         
     | 
| 
       1324 
96 
     | 
    
         
             
                    result.zone().reset( release_zone() );
         
     | 
| 
         @@ -1383,14 +155,14 @@ inline msgpack::object_handle unpack( 
     | 
|
| 
       1383 
155 
     | 
    
         
             
                msgpack::unique_ptr<msgpack::zone> z(new msgpack::zone);
         
     | 
| 
       1384 
156 
     | 
    
         
             
                referenced = false;
         
     | 
| 
       1385 
157 
     | 
    
         
             
                std::size_t noff = off;
         
     | 
| 
       1386 
     | 
    
         
            -
                 
     | 
| 
      
 158 
     | 
    
         
            +
                parse_return ret = detail::unpack_imp(
         
     | 
| 
       1387 
159 
     | 
    
         
             
                    data, len, noff, *z, obj, referenced, f, user_data, limit);
         
     | 
| 
       1388 
160 
     | 
    
         | 
| 
       1389 
161 
     | 
    
         
             
                switch(ret) {
         
     | 
| 
       1390 
     | 
    
         
            -
                case  
     | 
| 
      
 162 
     | 
    
         
            +
                case PARSE_SUCCESS:
         
     | 
| 
       1391 
163 
     | 
    
         
             
                    off = noff;
         
     | 
| 
       1392 
164 
     | 
    
         
             
                    return msgpack::object_handle(obj, msgpack::move(z));
         
     | 
| 
       1393 
     | 
    
         
            -
                case  
     | 
| 
      
 165 
     | 
    
         
            +
                case PARSE_EXTRA_BYTES:
         
     | 
| 
       1394 
166 
     | 
    
         
             
                    off = noff;
         
     | 
| 
       1395 
167 
     | 
    
         
             
                    return msgpack::object_handle(obj, msgpack::move(z));
         
     | 
| 
       1396 
168 
     | 
    
         
             
                default:
         
     | 
| 
         @@ -1437,16 +209,16 @@ inline void unpack( 
     | 
|
| 
       1437 
209 
     | 
    
         
             
                msgpack::unique_ptr<msgpack::zone> z(new msgpack::zone);
         
     | 
| 
       1438 
210 
     | 
    
         
             
                referenced = false;
         
     | 
| 
       1439 
211 
     | 
    
         
             
                std::size_t noff = off;
         
     | 
| 
       1440 
     | 
    
         
            -
                 
     | 
| 
      
 212 
     | 
    
         
            +
                parse_return ret = detail::unpack_imp(
         
     | 
| 
       1441 
213 
     | 
    
         
             
                    data, len, noff, *z, obj, referenced, f, user_data, limit);
         
     | 
| 
       1442 
214 
     | 
    
         | 
| 
       1443 
215 
     | 
    
         
             
                switch(ret) {
         
     | 
| 
       1444 
     | 
    
         
            -
                case  
     | 
| 
      
 216 
     | 
    
         
            +
                case PARSE_SUCCESS:
         
     | 
| 
       1445 
217 
     | 
    
         
             
                    off = noff;
         
     | 
| 
       1446 
218 
     | 
    
         
             
                    result.set(obj);
         
     | 
| 
       1447 
219 
     | 
    
         
             
                    result.zone() = msgpack::move(z);
         
     | 
| 
       1448 
220 
     | 
    
         
             
                    return;
         
     | 
| 
       1449 
     | 
    
         
            -
                case  
     | 
| 
      
 221 
     | 
    
         
            +
                case PARSE_EXTRA_BYTES:
         
     | 
| 
       1450 
222 
     | 
    
         
             
                    off = noff;
         
     | 
| 
       1451 
223 
     | 
    
         
             
                    result.set(obj);
         
     | 
| 
       1452 
224 
     | 
    
         
             
                    result.zone() = msgpack::move(z);
         
     | 
| 
         @@ -1459,7 +231,7 @@ inline void unpack( 
     | 
|
| 
       1459 
231 
     | 
    
         
             
            inline void unpack(
         
     | 
| 
       1460 
232 
     | 
    
         
             
                msgpack::object_handle& result,
         
     | 
| 
       1461 
233 
     | 
    
         
             
                const char* data, std::size_t len, std::size_t& off,
         
     | 
| 
       1462 
     | 
    
         
            -
                 
     | 
| 
      
 234 
     | 
    
         
            +
                unpack_reference_func f, void* user_data,
         
     | 
| 
       1463 
235 
     | 
    
         
             
                        unpack_limit const& limit)
         
     | 
| 
       1464 
236 
     | 
    
         
             
            {
         
     | 
| 
       1465 
237 
     | 
    
         
             
                bool referenced;
         
     | 
| 
         @@ -1497,14 +269,14 @@ inline msgpack::object unpack( 
     | 
|
| 
       1497 
269 
     | 
    
         
             
                msgpack::object obj;
         
     | 
| 
       1498 
270 
     | 
    
         
             
                std::size_t noff = off;
         
     | 
| 
       1499 
271 
     | 
    
         
             
                referenced = false;
         
     | 
| 
       1500 
     | 
    
         
            -
                 
     | 
| 
      
 272 
     | 
    
         
            +
                parse_return ret = detail::unpack_imp(
         
     | 
| 
       1501 
273 
     | 
    
         
             
                    data, len, noff, z, obj, referenced, f, user_data, limit);
         
     | 
| 
       1502 
274 
     | 
    
         | 
| 
       1503 
275 
     | 
    
         
             
                switch(ret) {
         
     | 
| 
       1504 
     | 
    
         
            -
                case  
     | 
| 
      
 276 
     | 
    
         
            +
                case PARSE_SUCCESS:
         
     | 
| 
       1505 
277 
     | 
    
         
             
                    off = noff;
         
     | 
| 
       1506 
278 
     | 
    
         
             
                    return obj;
         
     | 
| 
       1507 
     | 
    
         
            -
                case  
     | 
| 
      
 279 
     | 
    
         
            +
                case PARSE_EXTRA_BYTES:
         
     | 
| 
       1508 
280 
     | 
    
         
             
                    off = noff;
         
     | 
| 
       1509 
281 
     | 
    
         
             
                    return obj;
         
     | 
| 
       1510 
282 
     | 
    
         
             
                default:
         
     | 
| 
         @@ -1544,59 +316,9 @@ inline msgpack::object unpack( 
     | 
|
| 
       1544 
316 
     | 
    
         
             
                return msgpack::v2::unpack(z, data, len, off, referenced, f, user_data, limit);
         
     | 
| 
       1545 
317 
     | 
    
         
             
            }
         
     | 
| 
       1546 
318 
     | 
    
         | 
| 
       1547 
     | 
    
         
            -
            template <typename Visitor>
         
     | 
| 
       1548 
     | 
    
         
            -
            inline bool parse(const char* data, size_t len, size_t& off, Visitor& v) {
         
     | 
| 
       1549 
     | 
    
         
            -
                unpack_return ret = detail::parse_imp(data, len, off, v);
         
     | 
| 
       1550 
     | 
    
         
            -
                return ret == UNPACK_SUCCESS || ret == UNPACK_EXTRA_BYTES;
         
     | 
| 
       1551 
     | 
    
         
            -
            }
         
     | 
| 
       1552 
     | 
    
         
            -
             
     | 
| 
       1553 
     | 
    
         
            -
            template <typename Visitor>
         
     | 
| 
       1554 
     | 
    
         
            -
            inline bool parse(const char* data, size_t len, Visitor& v) {
         
     | 
| 
       1555 
     | 
    
         
            -
                std::size_t off = 0;
         
     | 
| 
       1556 
     | 
    
         
            -
                return parse(data, len, off, v);
         
     | 
| 
       1557 
     | 
    
         
            -
            }
         
     | 
| 
       1558 
     | 
    
         
            -
             
     | 
| 
       1559 
319 
     | 
    
         
             
            namespace detail {
         
     | 
| 
       1560 
320 
     | 
    
         | 
| 
       1561 
     | 
    
         
            -
             
     | 
| 
       1562 
     | 
    
         
            -
            struct parse_helper : context<parse_helper<Visitor> > {
         
     | 
| 
       1563 
     | 
    
         
            -
                parse_helper(Visitor& v):m_visitor(v) {}
         
     | 
| 
       1564 
     | 
    
         
            -
                unpack_return execute(const char* data, std::size_t len, std::size_t& off) {
         
     | 
| 
       1565 
     | 
    
         
            -
                    return context<parse_helper<Visitor> >::execute(data, len, off);
         
     | 
| 
       1566 
     | 
    
         
            -
                }
         
     | 
| 
       1567 
     | 
    
         
            -
                Visitor& visitor() const { return m_visitor; }
         
     | 
| 
       1568 
     | 
    
         
            -
                Visitor& m_visitor;
         
     | 
| 
       1569 
     | 
    
         
            -
            };
         
     | 
| 
       1570 
     | 
    
         
            -
             
     | 
| 
       1571 
     | 
    
         
            -
            template <typename Visitor>
         
     | 
| 
       1572 
     | 
    
         
            -
            inline unpack_return
         
     | 
| 
       1573 
     | 
    
         
            -
            parse_imp(const char* data, size_t len, size_t& off, Visitor& v) {
         
     | 
| 
       1574 
     | 
    
         
            -
                std::size_t noff = off;
         
     | 
| 
       1575 
     | 
    
         
            -
             
     | 
| 
       1576 
     | 
    
         
            -
                if(len <= noff) {
         
     | 
| 
       1577 
     | 
    
         
            -
                    // FIXME
         
     | 
| 
       1578 
     | 
    
         
            -
                    v.insufficient_bytes(noff, noff);
         
     | 
| 
       1579 
     | 
    
         
            -
                    return UNPACK_CONTINUE;
         
     | 
| 
       1580 
     | 
    
         
            -
                }
         
     | 
| 
       1581 
     | 
    
         
            -
                detail::parse_helper<Visitor> h(v);
         
     | 
| 
       1582 
     | 
    
         
            -
                unpack_return ret = h.execute(data, len, noff);
         
     | 
| 
       1583 
     | 
    
         
            -
                switch (ret) {
         
     | 
| 
       1584 
     | 
    
         
            -
                case UNPACK_CONTINUE:
         
     | 
| 
       1585 
     | 
    
         
            -
                    off = noff;
         
     | 
| 
       1586 
     | 
    
         
            -
                    v.insufficient_bytes(noff - 1, noff);
         
     | 
| 
       1587 
     | 
    
         
            -
                    return ret;
         
     | 
| 
       1588 
     | 
    
         
            -
                case UNPACK_SUCCESS:
         
     | 
| 
       1589 
     | 
    
         
            -
                    off = noff;
         
     | 
| 
       1590 
     | 
    
         
            -
                    if(noff < len) {
         
     | 
| 
       1591 
     | 
    
         
            -
                        return UNPACK_EXTRA_BYTES;
         
     | 
| 
       1592 
     | 
    
         
            -
                    }
         
     | 
| 
       1593 
     | 
    
         
            -
                    return ret;
         
     | 
| 
       1594 
     | 
    
         
            -
                default:
         
     | 
| 
       1595 
     | 
    
         
            -
                    return ret;
         
     | 
| 
       1596 
     | 
    
         
            -
                }
         
     | 
| 
       1597 
     | 
    
         
            -
            }
         
     | 
| 
       1598 
     | 
    
         
            -
             
     | 
| 
       1599 
     | 
    
         
            -
            inline unpack_return
         
     | 
| 
      
 321 
     | 
    
         
            +
            inline parse_return
         
     | 
| 
       1600 
322 
     | 
    
         
             
            unpack_imp(const char* data, std::size_t len, std::size_t& off,
         
     | 
| 
       1601 
323 
     | 
    
         
             
                       msgpack::zone& result_zone, msgpack::object& result, bool& referenced,
         
     | 
| 
       1602 
324 
     | 
    
         
             
                       unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
         
     | 
| 
         @@ -1606,13 +328,13 @@ unpack_imp(const char* data, std::size_t len, std::size_t& off, 
     | 
|
| 
       1606 
328 
     | 
    
         
             
                v.set_zone(result_zone);
         
     | 
| 
       1607 
329 
     | 
    
         
             
                referenced = false;
         
     | 
| 
       1608 
330 
     | 
    
         
             
                v.set_referenced(referenced);
         
     | 
| 
       1609 
     | 
    
         
            -
                 
     | 
| 
      
 331 
     | 
    
         
            +
                parse_return ret = parse_imp(data, len, off, v);
         
     | 
| 
       1610 
332 
     | 
    
         
             
                referenced = v.referenced();
         
     | 
| 
       1611 
333 
     | 
    
         
             
                result = v.data();
         
     | 
| 
       1612 
334 
     | 
    
         
             
                return ret;
         
     | 
| 
       1613 
335 
     | 
    
         
             
            }
         
     | 
| 
       1614 
336 
     | 
    
         | 
| 
       1615 
     | 
    
         
            -
            } // detail
         
     | 
| 
      
 337 
     | 
    
         
            +
            } // namespace detail
         
     | 
| 
       1616 
338 
     | 
    
         | 
| 
       1617 
339 
     | 
    
         | 
| 
       1618 
340 
     | 
    
         
             
            /// @cond
         
     | 
| 
         @@ -1621,5 +343,6 @@ unpack_imp(const char* data, std::size_t len, std::size_t& off, 
     | 
|
| 
       1621 
343 
     | 
    
         | 
| 
       1622 
344 
     | 
    
         
             
            }  // namespace msgpack
         
     | 
| 
       1623 
345 
     | 
    
         | 
| 
      
 346 
     | 
    
         
            +
            #endif // MSGPACK_DEFAULT_API_VERSION >= 2
         
     | 
| 
       1624 
347 
     | 
    
         | 
| 
       1625 
348 
     | 
    
         
             
            #endif // MSGPACK_V2_UNPACK_HPP
         
     |