mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-21 15:51:44 +02:00
Compare commits
81 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bd18a36dae | ||
![]() |
3fe630769e | ||
![]() |
2f80758889 | ||
![]() |
9f3efe9e54 | ||
![]() |
6e44edf290 | ||
![]() |
d28cbf32b9 | ||
![]() |
48d226e97c | ||
![]() |
64698e8e8c | ||
![]() |
e0d098641c | ||
![]() |
06f4b05487 | ||
![]() |
122fce5aee | ||
![]() |
e3f5281903 | ||
![]() |
88e94e3776 | ||
![]() |
95275ff16e | ||
![]() |
4cb938ed18 | ||
![]() |
5f3e62461e | ||
![]() |
ec239933db | ||
![]() |
de59b393c7 | ||
![]() |
b02371efe5 | ||
![]() |
f34289fdfd | ||
![]() |
584478a4f1 | ||
![]() |
700ec688f7 | ||
![]() |
a133c1d393 | ||
![]() |
6ba9a58648 | ||
![]() |
bb92d326c8 | ||
![]() |
1e13dadf1f | ||
![]() |
7b271c2af2 | ||
![]() |
c3f4e52bdb | ||
![]() |
458b4c0363 | ||
![]() |
f8dc0f0d04 | ||
![]() |
347658cdc1 | ||
![]() |
427a6e7313 | ||
![]() |
7f76a3caf0 | ||
![]() |
40539727e6 | ||
![]() |
30e56d0a45 | ||
![]() |
8eef2a245b | ||
![]() |
2bcfe2fdb0 | ||
![]() |
2b49e62b3c | ||
![]() |
bf70a36a1d | ||
![]() |
eb92058cf4 | ||
![]() |
423eaf25fb | ||
![]() |
280abe852c | ||
![]() |
c91307aaa1 | ||
![]() |
88ffd08087 | ||
![]() |
bd337129c6 | ||
![]() |
1f5cb86366 | ||
![]() |
0d39c577d8 | ||
![]() |
7e66dc28f0 | ||
![]() |
bec47a59f0 | ||
![]() |
064f854ddf | ||
![]() |
a05d92ae85 | ||
![]() |
1fdfde5d5f | ||
![]() |
b1620f1f6a | ||
![]() |
f789635ddc | ||
![]() |
f65c26e280 | ||
![]() |
579212996f | ||
![]() |
208595b262 | ||
![]() |
83a4b89818 | ||
![]() |
d46f220737 | ||
![]() |
b4db293181 | ||
![]() |
d1eac600e9 | ||
![]() |
7e758ca053 | ||
![]() |
db6d4f2003 | ||
![]() |
1ba46a30ce | ||
![]() |
5ece2ef2c7 | ||
![]() |
9513734040 | ||
![]() |
d452625ed1 | ||
![]() |
b02c6beb4d | ||
![]() |
06c2896def | ||
![]() |
724db8ed89 | ||
![]() |
fa48078a52 | ||
![]() |
d8ad85fa8c | ||
![]() |
cc3b895449 | ||
![]() |
384242e5eb | ||
![]() |
7a98138f27 | ||
![]() |
cd4e0bda57 | ||
![]() |
1ad2db0c42 | ||
![]() |
96a76a7a5c | ||
![]() |
bc964bd847 | ||
![]() |
12604b5c8e | ||
![]() |
7c67109396 |
19
.travis.yml
19
.travis.yml
@@ -1,5 +1,6 @@
|
|||||||
language: cpp
|
language: cpp
|
||||||
sudo: false
|
sudo: false
|
||||||
|
dist: trusty
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- export BASE=`pwd`
|
- export BASE=`pwd`
|
||||||
@@ -11,6 +12,7 @@ install:
|
|||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export LD_LIBRARY_PATH="${BASE}/usr/lib:$LD_LIBRARY_PATH"; fi
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export LD_LIBRARY_PATH="${BASE}/usr/lib:$LD_LIBRARY_PATH"; fi
|
||||||
- if [ "$CXX" = "g++" ]; then export CXX="g++-6" CC="gcc-6"; fi
|
- if [ "$CXX" = "g++" ]; then export CXX="g++-6" CC="gcc-6"; fi
|
||||||
- if [ "$CXX" = "clang++" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX="clang++-3.9" CC="clang-3.9"; fi
|
- if [ "$CXX" = "clang++" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then export CXX="clang++-3.9" CC="clang-3.9"; fi
|
||||||
|
- if [ "$CXX" = "g++" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then cd /usr/include/c++/$(g++ -v 2>&1 | grep version | awk '{print $3}')/bits; ln -s ../ext/atomicity.h .; cd ${BASE}/usr; fi
|
||||||
#gtest
|
#gtest
|
||||||
- wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip
|
- wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip
|
||||||
- unzip -q googletest-release-1.7.0.zip
|
- unzip -q googletest-release-1.7.0.zip
|
||||||
@@ -27,7 +29,8 @@ install:
|
|||||||
# valgrind
|
# valgrind
|
||||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2 && tar xjf valgrind-3.12.0.tar.bz2 && cd valgrind-3.12.0 && ./configure --prefix=${BASE}/usr > /dev/null && make -j3 > /dev/null && make install > /dev/null && cd ..; fi
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2 && tar xjf valgrind-3.12.0.tar.bz2 && cd valgrind-3.12.0 && ./configure --prefix=${BASE}/usr > /dev/null && make -j3 > /dev/null && make install > /dev/null && cd ..; fi
|
||||||
# boost
|
# boost
|
||||||
- if [ "$BOOST" == "ON" ]; then wget http://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.zip && unzip -q boost_1_63_0.zip && cd boost_1_63_0 && ./bootstrap.sh && ./b2 -j3 --prefix=${BASE}/usr --with-chrono --with-context --with-system --with-timer address-model=${ARCH} install > /dev/null && cd ..; fi
|
- if [ "$BOOST" == "ON" ]; then wget http://sourceforge.net/projects/boost/files/boost/1.66.0/boost_1_66_0.zip && unzip -q boost_1_66_0.zip && cd boost_1_66_0 && ./bootstrap.sh && ./b2 -j3 --prefix=${BASE}/usr --with-chrono --with-context --with-system --with-timer address-model=${ARCH} install > /dev/null && cd ..; fi
|
||||||
|
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include; fi
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
@@ -36,7 +39,7 @@ matrix:
|
|||||||
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="1"
|
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="1"
|
||||||
- os: osx
|
- os: osx
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
|
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="3"
|
||||||
- os: osx
|
- os: osx
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
|
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
|
||||||
@@ -78,12 +81,13 @@ matrix:
|
|||||||
- lib32gcc1
|
- lib32gcc1
|
||||||
- libc6-i386
|
- libc6-i386
|
||||||
- lib32z1-dev
|
- lib32z1-dev
|
||||||
|
- zlib1g-dev
|
||||||
- bzip2
|
- bzip2
|
||||||
- clang-3.9
|
- clang-3.9
|
||||||
- libc6-dbg
|
- libc6-dbg
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2" X3_PARSE="ON"
|
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" BOOST="ON" SHARED="ON" CHAR_SIGN="signed" API_VERSION="3" X3_PARSE="ON"
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
@@ -116,6 +120,7 @@ matrix:
|
|||||||
- lib32gcc1
|
- lib32gcc1
|
||||||
- libc6-i386
|
- libc6-i386
|
||||||
- lib32z1-dev
|
- lib32z1-dev
|
||||||
|
- zlib1g-dev
|
||||||
- bzip2
|
- bzip2
|
||||||
- clang-3.9
|
- clang-3.9
|
||||||
- libc6-dbg
|
- libc6-dbg
|
||||||
@@ -135,7 +140,7 @@ matrix:
|
|||||||
- libc6-dbg
|
- libc6-dbg
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="32" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="2" X3_PARSE="ON"
|
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="32" BOOST="ON" SHARED="ON" CHAR_SIGN="unsigned" API_VERSION="3" X3_PARSE="ON"
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
@@ -149,6 +154,7 @@ matrix:
|
|||||||
- lib32gcc1
|
- lib32gcc1
|
||||||
- libc6-i386
|
- libc6-i386
|
||||||
- lib32z1-dev
|
- lib32z1-dev
|
||||||
|
- zlib1g-dev
|
||||||
- bzip2
|
- bzip2
|
||||||
- libc6-dbg
|
- libc6-dbg
|
||||||
- os: linux
|
- os: linux
|
||||||
@@ -181,6 +187,7 @@ matrix:
|
|||||||
- lib32gcc1
|
- lib32gcc1
|
||||||
- libc6-i386
|
- libc6-i386
|
||||||
- lib32z1-dev
|
- lib32z1-dev
|
||||||
|
- zlib1g-dev
|
||||||
- bzip2
|
- bzip2
|
||||||
- libc6-dbg
|
- libc6-dbg
|
||||||
- os: linux
|
- os: linux
|
||||||
@@ -199,8 +206,10 @@ matrix:
|
|||||||
- lib32gcc1
|
- lib32gcc1
|
||||||
- libc6-i386
|
- libc6-i386
|
||||||
- lib32z1-dev
|
- lib32z1-dev
|
||||||
|
- zlib1g-dev
|
||||||
- bzip2
|
- bzip2
|
||||||
- libc6-dbg
|
- libc6-dbg
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" BOOST_ROOT="${BASE}/usr" ${ACTION}
|
- CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" BOOST_ROOT="${BASE}/usr" CFLAGS="-Werror -g" CXXFLAGS="-Werror -g" ${ACTION}
|
||||||
|
- cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2
|
||||||
|
25
CHANGELOG.md
25
CHANGELOG.md
@@ -1,4 +1,24 @@
|
|||||||
# 2017-08-03 version 2.1.4
|
# 2018-05-09 version 3.0.0
|
||||||
|
|
||||||
|
## << breaking changes >>
|
||||||
|
|
||||||
|
* Change offset parameter updating rule. If parse error is happend, offset is updated to the error position. (#639, #666)
|
||||||
|
|
||||||
|
## << other updates >>
|
||||||
|
|
||||||
|
* Improve cross platform configuration (#655, #677)
|
||||||
|
* Improve build system (#647)
|
||||||
|
* Improve user class adaptor (#645, #673)
|
||||||
|
* Improve msgpack::object visitation logic (#676)
|
||||||
|
* Remove some warnings (#641, 659)
|
||||||
|
* Add `->` and `*` operators to object_handle (#635)
|
||||||
|
* Improve CI environment (#631, #634, #643, #657, #662, #668)
|
||||||
|
* Improve documents (#630, #661)
|
||||||
|
* Refactoring (#670)
|
||||||
|
* Add OSS-Fuzz support (#672, #674, #675, #678)
|
||||||
|
|
||||||
|
# 2017-08-04 version 2.1.5
|
||||||
|
* Improve cross platform configuration (#624)
|
||||||
* Add boost asio examples (including zlib) (#610)
|
* Add boost asio examples (including zlib) (#610)
|
||||||
* Remove some warnings (#611)
|
* Remove some warnings (#611)
|
||||||
* Fix unpack visitor to treat float32/64 correctly (#613)
|
* Fix unpack visitor to treat float32/64 correctly (#613)
|
||||||
@@ -6,6 +26,9 @@
|
|||||||
* Fix alignment problem on some platform (#617, #518)
|
* Fix alignment problem on some platform (#617, #518)
|
||||||
* Fix conflict std::tuple, std::pair, and boost::fusion::sequence problem (#619)
|
* Fix conflict std::tuple, std::pair, and boost::fusion::sequence problem (#619)
|
||||||
|
|
||||||
|
# 2017-08-03 version 2.1.4 (Invalid)
|
||||||
|
* See https://github.com/msgpack/msgpack-c/issues/623
|
||||||
|
|
||||||
# 2017-06-15 version 2.1.3
|
# 2017-06-15 version 2.1.3
|
||||||
* Improve build system (#603)
|
* Improve build system (#603)
|
||||||
* Add C++17 adaptors `std::optional` and `std::string_view`. (#607, #608)
|
* Add C++17 adaptors `std::optional` and `std::string_view`. (#607, #608)
|
||||||
|
@@ -124,7 +124,7 @@ ENDIF ()
|
|||||||
IF (MSGPACK_DEFAULT_API_VERSION)
|
IF (MSGPACK_DEFAULT_API_VERSION)
|
||||||
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}")
|
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}")
|
||||||
ELSE ()
|
ELSE ()
|
||||||
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=2 ${CMAKE_CXX_FLAGS}")
|
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS}")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
FILE (GLOB_RECURSE PREDEF_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost/*.h)
|
FILE (GLOB_RECURSE PREDEF_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost ${CMAKE_CURRENT_SOURCE_DIR}/external/boost/predef/include/boost/*.h)
|
||||||
@@ -237,9 +237,9 @@ ENDIF ()
|
|||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
IF (MSGPACK_ENABLE_SHARED)
|
IF (MSGPACK_ENABLE_SHARED)
|
||||||
SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC")
|
SET_PROPERTY (TARGET msgpackc APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra -DPIC")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" )
|
SET_PROPERTY (TARGET msgpackc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra" )
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
61
Files.cmake
61
Files.cmake
@@ -216,6 +216,8 @@ IF (MSGPACK_ENABLE_CXX)
|
|||||||
include/msgpack/adaptor/vector_unsigned_char.hpp
|
include/msgpack/adaptor/vector_unsigned_char.hpp
|
||||||
include/msgpack/cpp_config.hpp
|
include/msgpack/cpp_config.hpp
|
||||||
include/msgpack/cpp_config_decl.hpp
|
include/msgpack/cpp_config_decl.hpp
|
||||||
|
include/msgpack/create_object_visitor.hpp
|
||||||
|
include/msgpack/create_object_visitor_decl.hpp
|
||||||
include/msgpack/fbuffer.hpp
|
include/msgpack/fbuffer.hpp
|
||||||
include/msgpack/fbuffer_decl.hpp
|
include/msgpack/fbuffer_decl.hpp
|
||||||
include/msgpack/gcc_atomic.hpp
|
include/msgpack/gcc_atomic.hpp
|
||||||
@@ -223,12 +225,16 @@ IF (MSGPACK_ENABLE_CXX)
|
|||||||
include/msgpack/iterator_decl.hpp
|
include/msgpack/iterator_decl.hpp
|
||||||
include/msgpack/meta.hpp
|
include/msgpack/meta.hpp
|
||||||
include/msgpack/meta_decl.hpp
|
include/msgpack/meta_decl.hpp
|
||||||
|
include/msgpack/null_visitor.hpp
|
||||||
|
include/msgpack/null_visitor_decl.hpp
|
||||||
include/msgpack/object.hpp
|
include/msgpack/object.hpp
|
||||||
include/msgpack/object_decl.hpp
|
include/msgpack/object_decl.hpp
|
||||||
include/msgpack/object_fwd.hpp
|
include/msgpack/object_fwd.hpp
|
||||||
include/msgpack/object_fwd_decl.hpp
|
include/msgpack/object_fwd_decl.hpp
|
||||||
include/msgpack/pack.hpp
|
include/msgpack/pack.hpp
|
||||||
include/msgpack/pack_decl.hpp
|
include/msgpack/pack_decl.hpp
|
||||||
|
include/msgpack/parse.hpp
|
||||||
|
include/msgpack/parse_decl.hpp
|
||||||
include/msgpack/parse_return.hpp
|
include/msgpack/parse_return.hpp
|
||||||
include/msgpack/preprocessor.hpp
|
include/msgpack/preprocessor.hpp
|
||||||
include/msgpack/preprocessor/arithmetic.hpp
|
include/msgpack/preprocessor/arithmetic.hpp
|
||||||
@@ -541,6 +547,7 @@ IF (MSGPACK_ENABLE_CXX)
|
|||||||
include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp
|
include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp
|
||||||
include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp
|
include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp
|
||||||
include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp
|
include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp
|
||||||
|
include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp
|
||||||
include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp
|
include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp
|
||||||
include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp
|
include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp
|
||||||
include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp
|
include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp
|
||||||
@@ -632,31 +639,85 @@ IF (MSGPACK_ENABLE_CXX)
|
|||||||
include/msgpack/v2/adaptor/v4raw_decl.hpp
|
include/msgpack/v2/adaptor/v4raw_decl.hpp
|
||||||
include/msgpack/v2/cpp_config_decl.hpp
|
include/msgpack/v2/cpp_config_decl.hpp
|
||||||
include/msgpack/v2/create_object_visitor.hpp
|
include/msgpack/v2/create_object_visitor.hpp
|
||||||
|
include/msgpack/v2/create_object_visitor_decl.hpp
|
||||||
include/msgpack/v2/detail/cpp03_zone_decl.hpp
|
include/msgpack/v2/detail/cpp03_zone_decl.hpp
|
||||||
include/msgpack/v2/detail/cpp11_zone_decl.hpp
|
include/msgpack/v2/detail/cpp11_zone_decl.hpp
|
||||||
include/msgpack/v2/fbuffer_decl.hpp
|
include/msgpack/v2/fbuffer_decl.hpp
|
||||||
include/msgpack/v2/iterator_decl.hpp
|
include/msgpack/v2/iterator_decl.hpp
|
||||||
include/msgpack/v2/meta_decl.hpp
|
include/msgpack/v2/meta_decl.hpp
|
||||||
include/msgpack/v2/null_visitor.hpp
|
include/msgpack/v2/null_visitor.hpp
|
||||||
|
include/msgpack/v2/null_visitor_decl.hpp
|
||||||
include/msgpack/v2/object.hpp
|
include/msgpack/v2/object.hpp
|
||||||
include/msgpack/v2/object_decl.hpp
|
include/msgpack/v2/object_decl.hpp
|
||||||
include/msgpack/v2/object_fwd.hpp
|
include/msgpack/v2/object_fwd.hpp
|
||||||
include/msgpack/v2/object_fwd_decl.hpp
|
include/msgpack/v2/object_fwd_decl.hpp
|
||||||
include/msgpack/v2/pack_decl.hpp
|
include/msgpack/v2/pack_decl.hpp
|
||||||
include/msgpack/v2/parse.hpp
|
include/msgpack/v2/parse.hpp
|
||||||
|
include/msgpack/v2/parse_decl.hpp
|
||||||
include/msgpack/v2/parse_return.hpp
|
include/msgpack/v2/parse_return.hpp
|
||||||
include/msgpack/v2/sbuffer_decl.hpp
|
include/msgpack/v2/sbuffer_decl.hpp
|
||||||
include/msgpack/v2/unpack.hpp
|
include/msgpack/v2/unpack.hpp
|
||||||
include/msgpack/v2/unpack_decl.hpp
|
include/msgpack/v2/unpack_decl.hpp
|
||||||
include/msgpack/v2/vrefbuffer_decl.hpp
|
include/msgpack/v2/vrefbuffer_decl.hpp
|
||||||
include/msgpack/v2/x3_parse.hpp
|
include/msgpack/v2/x3_parse.hpp
|
||||||
|
include/msgpack/v2/x3_parse_decl.hpp
|
||||||
include/msgpack/v2/x3_unpack.hpp
|
include/msgpack/v2/x3_unpack.hpp
|
||||||
|
include/msgpack/v2/x3_unpack_decl.hpp
|
||||||
include/msgpack/v2/zbuffer_decl.hpp
|
include/msgpack/v2/zbuffer_decl.hpp
|
||||||
include/msgpack/v2/zone_decl.hpp
|
include/msgpack/v2/zone_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/adaptor_base.hpp
|
||||||
|
include/msgpack/v3/adaptor/adaptor_base_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/array_ref_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/check_container_size_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/define_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/ext_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/fixint_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/int_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/map_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/nil_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/raw_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/size_equal_only_decl.hpp
|
||||||
|
include/msgpack/v3/adaptor/v4raw_decl.hpp
|
||||||
|
include/msgpack/v3/cpp_config_decl.hpp
|
||||||
|
include/msgpack/v3/create_object_visitor_decl.hpp
|
||||||
|
include/msgpack/v3/detail/cpp03_zone_decl.hpp
|
||||||
|
include/msgpack/v3/detail/cpp11_zone_decl.hpp
|
||||||
|
include/msgpack/v3/fbuffer_decl.hpp
|
||||||
|
include/msgpack/v3/iterator_decl.hpp
|
||||||
|
include/msgpack/v3/meta_decl.hpp
|
||||||
|
include/msgpack/v3/null_visitor_decl.hpp
|
||||||
|
include/msgpack/v3/object_decl.hpp
|
||||||
|
include/msgpack/v3/object_fwd.hpp
|
||||||
|
include/msgpack/v3/object_fwd_decl.hpp
|
||||||
|
include/msgpack/v3/pack_decl.hpp
|
||||||
|
include/msgpack/v3/parse.hpp
|
||||||
|
include/msgpack/v3/parse_decl.hpp
|
||||||
|
include/msgpack/v3/parse_return.hpp
|
||||||
|
include/msgpack/v3/sbuffer_decl.hpp
|
||||||
|
include/msgpack/v3/unpack.hpp
|
||||||
|
include/msgpack/v3/unpack_decl.hpp
|
||||||
|
include/msgpack/v3/vrefbuffer_decl.hpp
|
||||||
|
include/msgpack/v3/x3_parse_decl.hpp
|
||||||
|
include/msgpack/v3/x3_unpack.hpp
|
||||||
|
include/msgpack/v3/x3_unpack_decl.hpp
|
||||||
|
include/msgpack/v3/zbuffer_decl.hpp
|
||||||
|
include/msgpack/v3/zone_decl.hpp
|
||||||
include/msgpack/version.hpp
|
include/msgpack/version.hpp
|
||||||
include/msgpack/versioning.hpp
|
include/msgpack/versioning.hpp
|
||||||
include/msgpack/vrefbuffer.hpp
|
include/msgpack/vrefbuffer.hpp
|
||||||
include/msgpack/vrefbuffer_decl.hpp
|
include/msgpack/vrefbuffer_decl.hpp
|
||||||
|
include/msgpack/x3_parse.hpp
|
||||||
|
include/msgpack/x3_parse_decl.hpp
|
||||||
|
include/msgpack/x3_unpack.hpp
|
||||||
|
include/msgpack/x3_unpack_decl.hpp
|
||||||
include/msgpack/zbuffer.hpp
|
include/msgpack/zbuffer.hpp
|
||||||
include/msgpack/zbuffer_decl.hpp
|
include/msgpack/zbuffer_decl.hpp
|
||||||
include/msgpack/zone.hpp
|
include/msgpack/zone.hpp
|
||||||
|
@@ -20,7 +20,7 @@ You might need to run `sudo port selfupdate` before installing to update the pac
|
|||||||
You can also install via Homebrew.
|
You can also install via Homebrew.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ sudo brew install msgpack
|
$ brew install msgpack
|
||||||
```
|
```
|
||||||
|
|
||||||
## FreeBSD with Ports Collection
|
## FreeBSD with Ports Collection
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
`msgpack` for C/C++
|
`msgpack` for C/C++
|
||||||
===================
|
===================
|
||||||
|
|
||||||
Version 2.1.3 [](https://travis-ci.org/msgpack/msgpack-c) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/master)
|
Version 3.0.0 [](https://travis-ci.org/msgpack/msgpack-c) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/master)
|
||||||
|
|
||||||
It's like JSON but small and fast.
|
It's like JSON but smaller and faster.
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
--------
|
--------
|
||||||
@@ -11,7 +11,7 @@ Overview
|
|||||||
[MessagePack](http://msgpack.org/) is an efficient binary serialization
|
[MessagePack](http://msgpack.org/) is an efficient binary serialization
|
||||||
format, which lets you exchange data among multiple languages like JSON,
|
format, which lets you exchange data among multiple languages like JSON,
|
||||||
except that it's faster and smaller. Small integers are encoded into a
|
except that it's faster and smaller. Small integers are encoded into a
|
||||||
single byte while typical short strings require only one extra byte in
|
single byte and short strings require only one extra byte in
|
||||||
addition to the strings themselves.
|
addition to the strings themselves.
|
||||||
|
|
||||||
Example
|
Example
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
version: 2.1.4.{build}
|
version: 3.0.0.{build}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
- Visual Studio 2015
|
- Visual Studio 2015
|
||||||
|
@@ -61,6 +61,7 @@ struct define_map<A0<%1.upto(i) {|j|%>, A<%=j%><%}%>> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
|
@@ -39,7 +39,7 @@ FOREACH (source_file ${exec_PROGRAMS})
|
|||||||
)
|
)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
@@ -70,13 +70,22 @@ int main() {
|
|||||||
// Client
|
// Client
|
||||||
auto host = "localhost";
|
auto host = "localhost";
|
||||||
boost::asio::ip::tcp::resolver r(ios);
|
boost::asio::ip::tcp::resolver r(ios);
|
||||||
|
|
||||||
|
#if BOOST_VERSION < 106600
|
||||||
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
|
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
|
||||||
auto it = r.resolve(q);
|
auto it = r.resolve(q);
|
||||||
|
boost::asio::ip::tcp::resolver::iterator end;
|
||||||
|
#else // BOOST_VERSION < 106600
|
||||||
|
auto eps = r.resolve(host, boost::lexical_cast<std::string>(port));
|
||||||
|
auto it = eps.begin();
|
||||||
|
auto end = eps.end();
|
||||||
|
#endif // BOOST_VERSION < 106600
|
||||||
|
|
||||||
boost::asio::ip::tcp::socket cs(ios);
|
boost::asio::ip::tcp::socket cs(ios);
|
||||||
boost::asio::async_connect(
|
boost::asio::async_connect(
|
||||||
cs,
|
cs,
|
||||||
|
|
||||||
it,
|
it,
|
||||||
|
end,
|
||||||
[&]
|
[&]
|
||||||
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
||||||
if (e) {
|
if (e) {
|
||||||
|
@@ -136,13 +136,24 @@ int main() {
|
|||||||
|
|
||||||
// Client
|
// Client
|
||||||
auto host = "localhost";
|
auto host = "localhost";
|
||||||
|
|
||||||
boost::asio::ip::tcp::resolver r(ios);
|
boost::asio::ip::tcp::resolver r(ios);
|
||||||
|
|
||||||
|
#if BOOST_VERSION < 106600
|
||||||
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
|
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
|
||||||
auto it = r.resolve(q);
|
auto it = r.resolve(q);
|
||||||
|
boost::asio::ip::tcp::resolver::iterator end;
|
||||||
|
#else // BOOST_VERSION < 106600
|
||||||
|
auto eps = r.resolve(host, boost::lexical_cast<std::string>(port));
|
||||||
|
auto it = eps.begin();
|
||||||
|
auto end = eps.end();
|
||||||
|
#endif // BOOST_VERSION < 106600
|
||||||
|
|
||||||
boost::asio::ip::tcp::socket cs(ios);
|
boost::asio::ip::tcp::socket cs(ios);
|
||||||
boost::asio::async_connect(
|
boost::asio::async_connect(
|
||||||
cs,
|
cs,
|
||||||
it,
|
it,
|
||||||
|
end,
|
||||||
[&]
|
[&]
|
||||||
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
||||||
if (e) {
|
if (e) {
|
||||||
|
@@ -23,7 +23,7 @@ FOREACH (source_file ${exec_PROGRAMS})
|
|||||||
${MSGPACK_LIB}
|
${MSGPACK_LIB}
|
||||||
)
|
)
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
@@ -40,7 +40,7 @@ FOREACH (source_file ${exec_PROGRAMS})
|
|||||||
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
)
|
)
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||||
@@ -65,7 +65,7 @@ FOREACH (source_file ${with_pthread_PROGRAMS})
|
|||||||
${CMAKE_THREAD_LIBS_INIT}
|
${CMAKE_THREAD_LIBS_INIT}
|
||||||
)
|
)
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||||
|
@@ -25,7 +25,7 @@ IF (MSGPACK_CXX11)
|
|||||||
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
)
|
)
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 ")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
IF (MSGPACK_USE_X3_PARSE)
|
IF (MSGPACK_USE_X3_PARSE AND MSGPACK_DEFAULT_API_VERSION VERSION_GREATER 1)
|
||||||
INCLUDE_DIRECTORIES (
|
INCLUDE_DIRECTORIES (
|
||||||
../include
|
../include
|
||||||
)
|
)
|
||||||
@@ -23,7 +23,7 @@ IF (MSGPACK_USE_X3_PARSE)
|
|||||||
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
)
|
)
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g ")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
@@ -54,7 +54,7 @@ IF (MSGPACK_USE_X3_PARSE)
|
|||||||
${CMAKE_THREAD_LIBS_INIT}
|
${CMAKE_THREAD_LIBS_INIT}
|
||||||
)
|
)
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g ")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wall -Wextra")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
23
fuzz/unpack_pack_fuzzer.cpp
Normal file
23
fuzz/unpack_pack_fuzzer.cpp
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#include <msgpack.hpp>
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||||
|
try {
|
||||||
|
// NOTE(derwolfe): by default the limits are set at 2^32-1 length. I'm
|
||||||
|
// setting these at far smaller values to avoid OOMs
|
||||||
|
const int test_limit = 1000;
|
||||||
|
msgpack::object_handle unpacked = msgpack::unpack(reinterpret_cast<const char *>(data),
|
||||||
|
size,
|
||||||
|
nullptr,
|
||||||
|
nullptr,
|
||||||
|
msgpack::unpack_limit(test_limit,
|
||||||
|
test_limit,
|
||||||
|
test_limit,
|
||||||
|
test_limit,
|
||||||
|
test_limit,
|
||||||
|
test_limit));
|
||||||
|
msgpack::sbuffer sbuf;
|
||||||
|
msgpack::pack(sbuf, unpacked.get());
|
||||||
|
} catch (...) {
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
1
fuzz/unpack_pack_fuzzer_seed_corpus/EmptyArray
Normal file
1
fuzz/unpack_pack_fuzzer_seed_corpus/EmptyArray
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD>
|
1
fuzz/unpack_pack_fuzzer_seed_corpus/EmptyObject
Normal file
1
fuzz/unpack_pack_fuzzer_seed_corpus/EmptyObject
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<EFBFBD>
|
2
fuzz/unpack_pack_fuzzer_seed_corpus/ExcessiveNesting
Normal file
2
fuzz/unpack_pack_fuzzer_seed_corpus/ExcessiveNesting
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
<EFBFBD><01><02><03><04><05><06><07><08> <09>
|
||||||
|
<EFBFBD><0B><0C>
|
BIN
fuzz/unpack_pack_fuzzer_seed_corpus/OpenWeatherMap
Normal file
BIN
fuzz/unpack_pack_fuzzer_seed_corpus/OpenWeatherMap
Normal file
Binary file not shown.
BIN
fuzz/unpack_pack_fuzzer_seed_corpus/WeatherUnderground
Normal file
BIN
fuzz/unpack_pack_fuzzer_seed_corpus/WeatherUnderground
Normal file
Binary file not shown.
@@ -11,7 +11,11 @@
|
|||||||
#include "msgpack/iterator.hpp"
|
#include "msgpack/iterator.hpp"
|
||||||
#include "msgpack/zone.hpp"
|
#include "msgpack/zone.hpp"
|
||||||
#include "msgpack/pack.hpp"
|
#include "msgpack/pack.hpp"
|
||||||
|
#include "msgpack/null_visitor.hpp"
|
||||||
|
#include "msgpack/parse.hpp"
|
||||||
#include "msgpack/unpack.hpp"
|
#include "msgpack/unpack.hpp"
|
||||||
|
#include "msgpack/x3_parse.hpp"
|
||||||
|
#include "msgpack/x3_unpack.hpp"
|
||||||
#include "msgpack/sbuffer.hpp"
|
#include "msgpack/sbuffer.hpp"
|
||||||
#include "msgpack/vrefbuffer.hpp"
|
#include "msgpack/vrefbuffer.hpp"
|
||||||
#include "msgpack/version.hpp"
|
#include "msgpack/version.hpp"
|
||||||
|
@@ -14,5 +14,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/adaptor_base.hpp"
|
#include "msgpack/v1/adaptor/adaptor_base.hpp"
|
||||||
#include "msgpack/v2/adaptor/adaptor_base.hpp"
|
#include "msgpack/v2/adaptor/adaptor_base.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/adaptor_base.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_ADAPTOR_BASE_HPP
|
#endif // MSGPACK_ADAPTOR_BASE_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/adaptor_base_decl.hpp"
|
#include "msgpack/v1/adaptor/adaptor_base_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/adaptor_base_decl.hpp"
|
#include "msgpack/v2/adaptor/adaptor_base_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/adaptor_base_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_ADAPTOR_BASE_DECL_HPP
|
#endif // MSGPACK_ADAPTOR_BASE_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/array_ref_decl.hpp"
|
#include "msgpack/v1/adaptor/array_ref_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/array_ref_decl.hpp"
|
#include "msgpack/v2/adaptor/array_ref_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/array_ref_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_ARRAY_REF_DECL_HPP
|
#endif // MSGPACK_TYPE_ARRAY_REF_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp"
|
#include "msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp"
|
#include "msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP
|
#endif // MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/check_container_size_decl.hpp"
|
#include "msgpack/v1/adaptor/check_container_size_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/check_container_size_decl.hpp"
|
#include "msgpack/v2/adaptor/check_container_size_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/check_container_size_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_CHECK_CONTAINER_SIZE_DECL_HPP
|
#endif // MSGPACK_CHECK_CONTAINER_SIZE_DECL_HPP
|
||||||
|
@@ -139,5 +139,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/define_decl.hpp"
|
#include "msgpack/v1/adaptor/define_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/define_decl.hpp"
|
#include "msgpack/v2/adaptor/define_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/define_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_DEFINE_DECL_HPP
|
#endif // MSGPACK_DEFINE_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/ext_decl.hpp"
|
#include "msgpack/v1/adaptor/ext_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/ext_decl.hpp"
|
#include "msgpack/v2/adaptor/ext_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/ext_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_EXT_DECL_HPP
|
#endif // MSGPACK_TYPE_EXT_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/fixint_decl.hpp"
|
#include "msgpack/v1/adaptor/fixint_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/fixint_decl.hpp"
|
#include "msgpack/v2/adaptor/fixint_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/fixint_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_FIXINT_DECL_HPP
|
#endif // MSGPACK_TYPE_FIXINT_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/int_decl.hpp"
|
#include "msgpack/v1/adaptor/int_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/int_decl.hpp"
|
#include "msgpack/v2/adaptor/int_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/int_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_INT_DECL_HPP
|
#endif // MSGPACK_TYPE_INT_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/map_decl.hpp"
|
#include "msgpack/v1/adaptor/map_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/map_decl.hpp"
|
#include "msgpack/v2/adaptor/map_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/map_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_MAP_DECL_HPP
|
#endif // MSGPACK_TYPE_MAP_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/msgpack_tuple_decl.hpp"
|
#include "msgpack/v1/adaptor/msgpack_tuple_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/msgpack_tuple_decl.hpp"
|
#include "msgpack/v2/adaptor/msgpack_tuple_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/msgpack_tuple_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_MSGPACK_TUPLE_DECL_HPP
|
#endif // MSGPACK_MSGPACK_TUPLE_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/nil_decl.hpp"
|
#include "msgpack/v1/adaptor/nil_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/nil_decl.hpp"
|
#include "msgpack/v2/adaptor/nil_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/nil_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_NIL_DECL_HPP
|
#endif // MSGPACK_TYPE_NIL_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/raw_decl.hpp"
|
#include "msgpack/v1/adaptor/raw_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/raw_decl.hpp"
|
#include "msgpack/v2/adaptor/raw_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/raw_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_RAW_DECL_HPP
|
#endif // MSGPACK_TYPE_RAW_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/size_equal_only_decl.hpp"
|
#include "msgpack/v1/adaptor/size_equal_only_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/size_equal_only_decl.hpp"
|
#include "msgpack/v2/adaptor/size_equal_only_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/size_equal_only_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_SIZE_EQUAL_ONLY_DECL_HPP
|
#endif // MSGPACK_TYPE_SIZE_EQUAL_ONLY_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/adaptor/v4raw_decl.hpp"
|
#include "msgpack/v1/adaptor/v4raw_decl.hpp"
|
||||||
#include "msgpack/v2/adaptor/v4raw_decl.hpp"
|
#include "msgpack/v2/adaptor/v4raw_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/v4raw_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_TYPE_V4RAW_DECL_HPP
|
#endif // MSGPACK_TYPE_V4RAW_DECL_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/cpp_config_decl.hpp"
|
#include "msgpack/v1/cpp_config_decl.hpp"
|
||||||
#include "msgpack/v2/cpp_config_decl.hpp"
|
#include "msgpack/v2/cpp_config_decl.hpp"
|
||||||
|
#include "msgpack/v3/cpp_config_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_CPP_CONFIG_DECL_HPP
|
#endif // MSGPACK_CPP_CONFIG_DECL_HPP
|
||||||
|
17
include/msgpack/create_object_visitor.hpp
Normal file
17
include/msgpack/create_object_visitor.hpp
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_CREATE_OBJECT_VISITOR_HPP
|
||||||
|
#define MSGPACK_CREATE_OBJECT_VISITOR_HPP
|
||||||
|
|
||||||
|
#include "msgpack/create_object_visitor_decl.hpp"
|
||||||
|
|
||||||
|
#include "msgpack/v2/create_object_visitor.hpp"
|
||||||
|
|
||||||
|
#endif // MSGPACK_CREATE_OBJECT_VISITOR_HPP
|
16
include/msgpack/create_object_visitor_decl.hpp
Normal file
16
include/msgpack/create_object_visitor_decl.hpp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP
|
||||||
|
#define MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/create_object_visitor_decl.hpp"
|
||||||
|
#include "msgpack/v3/create_object_visitor_decl.hpp"
|
||||||
|
|
||||||
|
#endif // MSGPACK_CREATE_OBJECT_VISITOR_DECL_HPP
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/fbuffer_decl.hpp"
|
#include "msgpack/v1/fbuffer_decl.hpp"
|
||||||
#include "msgpack/v2/fbuffer_decl.hpp"
|
#include "msgpack/v2/fbuffer_decl.hpp"
|
||||||
|
#include "msgpack/v3/fbuffer_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_FBUFFER_DECL_HPP
|
#endif // MSGPACK_FBUFFER_DECL_HPP
|
||||||
|
@@ -13,5 +13,6 @@
|
|||||||
|
|
||||||
#include <msgpack/v1/iterator_decl.hpp>
|
#include <msgpack/v1/iterator_decl.hpp>
|
||||||
#include <msgpack/v2/iterator_decl.hpp>
|
#include <msgpack/v2/iterator_decl.hpp>
|
||||||
|
#include <msgpack/v3/iterator_decl.hpp>
|
||||||
|
|
||||||
#endif // MSGPACK_V1_ITERATOR_DECL_HPP
|
#endif // MSGPACK_ITERATOR_DECL_HPP
|
||||||
|
@@ -13,5 +13,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/meta_decl.hpp"
|
#include "msgpack/v1/meta_decl.hpp"
|
||||||
#include "msgpack/v2/meta_decl.hpp"
|
#include "msgpack/v2/meta_decl.hpp"
|
||||||
|
#include "msgpack/v3/meta_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_META_DECL_HPP
|
#endif // MSGPACK_META_DECL_HPP
|
||||||
|
17
include/msgpack/null_visitor.hpp
Normal file
17
include/msgpack/null_visitor.hpp
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_NULL_VISITOR_HPP
|
||||||
|
#define MSGPACK_NULL_VISITOR_HPP
|
||||||
|
|
||||||
|
#include "msgpack/null_visitor_decl.hpp"
|
||||||
|
|
||||||
|
#include "msgpack/v2/null_visitor.hpp"
|
||||||
|
|
||||||
|
#endif // MSGPACK_NULL_VISITOR_HPP
|
16
include/msgpack/null_visitor_decl.hpp
Normal file
16
include/msgpack/null_visitor_decl.hpp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_NULL_VISITOR_DECL_HPP
|
||||||
|
#define MSGPACK_NULL_VISITOR_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/null_visitor_decl.hpp"
|
||||||
|
#include "msgpack/v3/null_visitor_decl.hpp"
|
||||||
|
|
||||||
|
#endif // MSGPACK_NULL_VISITOR_DECL_HPP
|
@@ -13,5 +13,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/object_decl.hpp"
|
#include "msgpack/v1/object_decl.hpp"
|
||||||
#include "msgpack/v2/object_decl.hpp"
|
#include "msgpack/v2/object_decl.hpp"
|
||||||
|
#include "msgpack/v3/object_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_OBJECT_DECL_HPP
|
#endif // MSGPACK_OBJECT_DECL_HPP
|
||||||
|
@@ -15,5 +15,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/object_fwd.hpp"
|
#include "msgpack/v1/object_fwd.hpp"
|
||||||
#include "msgpack/v2/object_fwd.hpp"
|
#include "msgpack/v2/object_fwd.hpp"
|
||||||
|
#include "msgpack/v3/object_fwd.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_OBJECT_FWD_HPP
|
#endif // MSGPACK_OBJECT_FWD_HPP
|
||||||
|
@@ -13,5 +13,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/object_fwd_decl.hpp"
|
#include "msgpack/v1/object_fwd_decl.hpp"
|
||||||
#include "msgpack/v2/object_fwd_decl.hpp"
|
#include "msgpack/v2/object_fwd_decl.hpp"
|
||||||
|
#include "msgpack/v3/object_fwd_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_OBJECT_FWD_DECL_HPP
|
#endif // MSGPACK_OBJECT_FWD_DECL_HPP
|
||||||
|
@@ -98,6 +98,7 @@ static int msgpack_pack_bin_body(msgpack_packer* pk, const void* b, size_t l);
|
|||||||
static int msgpack_pack_ext(msgpack_packer* pk, size_t l, int8_t type);
|
static int msgpack_pack_ext(msgpack_packer* pk, size_t l, int8_t type);
|
||||||
static int msgpack_pack_ext_body(msgpack_packer* pk, const void* b, size_t l);
|
static int msgpack_pack_ext_body(msgpack_packer* pk, const void* b, size_t l);
|
||||||
|
|
||||||
|
MSGPACK_DLLEXPORT
|
||||||
int msgpack_pack_object(msgpack_packer* pk, msgpack_object d);
|
int msgpack_pack_object(msgpack_packer* pk, msgpack_object d);
|
||||||
|
|
||||||
|
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/pack_decl.hpp"
|
#include "msgpack/v1/pack_decl.hpp"
|
||||||
#include "msgpack/v2/pack_decl.hpp"
|
#include "msgpack/v2/pack_decl.hpp"
|
||||||
|
#include "msgpack/v3/pack_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_PACK_DECL_HPP
|
#endif // MSGPACK_PACK_DECL_HPP
|
||||||
|
18
include/msgpack/parse.hpp
Normal file
18
include/msgpack/parse.hpp
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_PARSE_HPP
|
||||||
|
#define MSGPACK_PARSE_HPP
|
||||||
|
|
||||||
|
#include "msgpack/parse_decl.hpp"
|
||||||
|
|
||||||
|
#include "msgpack/v2/parse.hpp"
|
||||||
|
#include "msgpack/v3/parse.hpp"
|
||||||
|
|
||||||
|
#endif // MSGPACK_PARSE_HPP
|
16
include/msgpack/parse_decl.hpp
Normal file
16
include/msgpack/parse_decl.hpp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_PARSE_DECL_HPP
|
||||||
|
#define MSGPACK_PARSE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/parse_decl.hpp"
|
||||||
|
#include "msgpack/v3/parse_decl.hpp"
|
||||||
|
|
||||||
|
#endif // MSGPACK_PARSE_DECL_HPP
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/parse_return.hpp"
|
#include "msgpack/v1/parse_return.hpp"
|
||||||
#include "msgpack/v2/parse_return.hpp"
|
#include "msgpack/v2/parse_return.hpp"
|
||||||
|
#include "msgpack/v3/parse_return.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_PARSE_RETURN_HPP
|
#endif // MSGPACK_PARSE_RETURN_HPP
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/sbuffer_decl.hpp"
|
#include "msgpack/v1/sbuffer_decl.hpp"
|
||||||
#include "msgpack/v2/sbuffer_decl.hpp"
|
#include "msgpack/v2/sbuffer_decl.hpp"
|
||||||
|
#include "msgpack/v3/sbuffer_decl.hpp"
|
||||||
|
|
||||||
|
|
||||||
#endif // MSGPACK_SBUFFER_DECL_HPP
|
#endif // MSGPACK_SBUFFER_DECL_HPP
|
||||||
|
@@ -14,6 +14,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/unpack.hpp"
|
#include "msgpack/v1/unpack.hpp"
|
||||||
#include "msgpack/v2/unpack.hpp"
|
#include "msgpack/v2/unpack.hpp"
|
||||||
#include "msgpack/v2/x3_unpack.hpp"
|
#include "msgpack/v3/unpack.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_UNPACK_HPP
|
#endif // MSGPACK_UNPACK_HPP
|
||||||
|
@@ -12,5 +12,6 @@
|
|||||||
|
|
||||||
#include "msgpack/v1/unpack_decl.hpp"
|
#include "msgpack/v1/unpack_decl.hpp"
|
||||||
#include "msgpack/v2/unpack_decl.hpp"
|
#include "msgpack/v2/unpack_decl.hpp"
|
||||||
|
#include "msgpack/v3/unpack_decl.hpp"
|
||||||
|
|
||||||
#endif // MSGPACK_UNPACK_DECL_HPP
|
#endif // MSGPACK_UNPACK_DECL_HPP
|
||||||
|
@@ -62,6 +62,7 @@ struct define_map<A0, A1> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -114,6 +115,7 @@ struct define_map<A0, A1, A2, A3> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -180,6 +182,7 @@ struct define_map<A0, A1, A2, A3, A4, A5> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -260,6 +263,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -354,6 +358,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -462,6 +467,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -584,6 +590,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -720,6 +727,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -870,6 +878,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -1034,6 +1043,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -1212,6 +1222,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -1404,6 +1415,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -1610,6 +1622,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -1830,6 +1843,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -2064,6 +2078,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
@@ -2312,6 +2327,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.insert(
|
kvmap.insert(
|
||||||
std::map<std::string, msgpack::object const*>::value_type(
|
std::map<std::string, msgpack::object const*>::value_type(
|
||||||
std::string(
|
std::string(
|
||||||
|
45
include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp
Normal file
45
include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2017 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V1_CPP11_CONVERT_HELPER_HPP
|
||||||
|
#define MSGPACK_V1_CPP11_CONVERT_HELPER_HPP
|
||||||
|
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
|
#include <msgpack/object_fwd.hpp>
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v1) {
|
||||||
|
/// @endcond
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline typename std::enable_if<
|
||||||
|
has_as<T>::value
|
||||||
|
>::type
|
||||||
|
convert_helper(msgpack::object const& o, T& t) {
|
||||||
|
t = o.as<T>();
|
||||||
|
}
|
||||||
|
template <typename T>
|
||||||
|
inline typename std::enable_if<
|
||||||
|
!has_as<T>::value
|
||||||
|
>::type
|
||||||
|
convert_helper(msgpack::object const& o, T& t) {
|
||||||
|
o.convert(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v1)
|
||||||
|
/// @endcond
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V1_CPP11_CONVERT_HELPER_HPP
|
@@ -11,6 +11,7 @@
|
|||||||
#define MSGPACK_V1_CPP11_DEFINE_ARRAY_HPP
|
#define MSGPACK_V1_CPP11_DEFINE_ARRAY_HPP
|
||||||
|
|
||||||
#include "msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp"
|
#include "msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp"
|
||||||
|
#include "msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp"
|
||||||
|
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
|
|
||||||
@@ -31,7 +32,7 @@ struct define_array_imp {
|
|||||||
define_array_imp<Tuple, N-1>::unpack(o, t);
|
define_array_imp<Tuple, N-1>::unpack(o, t);
|
||||||
const size_t size = o.via.array.size;
|
const size_t size = o.via.array.size;
|
||||||
if(size <= N-1) { return; }
|
if(size <= N-1) { return; }
|
||||||
o.via.array.ptr[N-1].convert(std::get<N-1>(t));
|
convert_helper(o.via.array.ptr[N-1], std::get<N-1>(t));
|
||||||
}
|
}
|
||||||
static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) {
|
static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) {
|
||||||
define_array_imp<Tuple, N-1>::object(o, z, t);
|
define_array_imp<Tuple, N-1>::object(o, z, t);
|
||||||
@@ -48,7 +49,7 @@ struct define_array_imp<Tuple, 1> {
|
|||||||
static void unpack(msgpack::object const& o, Tuple& t) {
|
static void unpack(msgpack::object const& o, Tuple& t) {
|
||||||
const size_t size = o.via.array.size;
|
const size_t size = o.via.array.size;
|
||||||
if(size <= 0) { return; }
|
if(size <= 0) { return; }
|
||||||
o.via.array.ptr[0].convert(std::get<0>(t));
|
convert_helper(o.via.array.ptr[0], std::get<0>(t));
|
||||||
}
|
}
|
||||||
static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) {
|
static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) {
|
||||||
o->via.array.ptr[0] = msgpack::object(std::get<0>(t), z);
|
o->via.array.ptr[0] = msgpack::object(std::get<0>(t), z);
|
||||||
|
@@ -11,6 +11,7 @@
|
|||||||
#define MSGPACK_V1_CPP11_DEFINE_MAP_HPP
|
#define MSGPACK_V1_CPP11_DEFINE_MAP_HPP
|
||||||
|
|
||||||
#include "msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp"
|
#include "msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp"
|
||||||
|
#include "msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp"
|
||||||
|
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
#include <map>
|
#include <map>
|
||||||
@@ -34,7 +35,7 @@ struct define_map_imp {
|
|||||||
define_map_imp<Tuple, N-2>::unpack(o, t, kvmap);
|
define_map_imp<Tuple, N-2>::unpack(o, t, kvmap);
|
||||||
auto it = kvmap.find(std::get<N-2>(t));
|
auto it = kvmap.find(std::get<N-2>(t));
|
||||||
if (it != kvmap.end()) {
|
if (it != kvmap.end()) {
|
||||||
it->second->convert(std::get<N-1>(t));
|
convert_helper(*it->second, std::get<N-1>(t));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) {
|
static void object(msgpack::object* o, msgpack::zone& z, Tuple const& t) {
|
||||||
@@ -71,6 +72,7 @@ struct define_map {
|
|||||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||||
std::map<std::string, msgpack::object const*> kvmap;
|
std::map<std::string, msgpack::object const*> kvmap;
|
||||||
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
for (uint32_t i = 0; i < o.via.map.size; ++i) {
|
||||||
|
if (o.via.map.ptr[i].key.type != msgpack::type::STR) { throw msgpack::type_error(); }
|
||||||
kvmap.emplace(
|
kvmap.emplace(
|
||||||
std::string(
|
std::string(
|
||||||
o.via.map.ptr[i].key.via.str.ptr,
|
o.via.map.ptr[i].key.via.str.ptr,
|
||||||
|
@@ -201,75 +201,91 @@ struct object<type::fix_int64> {
|
|||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<type::fix_uint8> {
|
struct object<type::fix_uint8> {
|
||||||
void operator()(msgpack::object& o, type::fix_uint8 v) const
|
void operator()(msgpack::object& o, type::fix_uint8 v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v.get();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<type::fix_uint16> {
|
struct object<type::fix_uint16> {
|
||||||
void operator()(msgpack::object& o, type::fix_uint16 v) const
|
void operator()(msgpack::object& o, type::fix_uint16 v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v.get();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<type::fix_uint32> {
|
struct object<type::fix_uint32> {
|
||||||
void operator()(msgpack::object& o, type::fix_uint32 v) const
|
void operator()(msgpack::object& o, type::fix_uint32 v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v.get();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<type::fix_uint64> {
|
struct object<type::fix_uint64> {
|
||||||
void operator()(msgpack::object& o, type::fix_uint64 v) const
|
void operator()(msgpack::object& o, type::fix_uint64 v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v.get();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_int8> {
|
struct object_with_zone<type::fix_int8> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_int8 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_int8 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_int16> {
|
struct object_with_zone<type::fix_int16> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_int16 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_int16 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_int32> {
|
struct object_with_zone<type::fix_int32> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_int32 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_int32 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_int64> {
|
struct object_with_zone<type::fix_int64> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_int64 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_int64 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_uint8> {
|
struct object_with_zone<type::fix_uint8> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_uint8 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_uint8 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_uint16> {
|
struct object_with_zone<type::fix_uint16> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_uint16 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_uint16 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_uint32> {
|
struct object_with_zone<type::fix_uint32> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_uint32 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_uint32 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<type::fix_uint64> {
|
struct object_with_zone<type::fix_uint64> {
|
||||||
void operator()(msgpack::object::with_zone& o, type::fix_uint64 v) const
|
void operator()(msgpack::object::with_zone& o, type::fix_uint64 v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace adaptor
|
} // namespace adaptor
|
||||||
|
@@ -82,7 +82,8 @@ struct object_char_sign<true> {
|
|||||||
template <>
|
template <>
|
||||||
struct object_char_sign<false> {
|
struct object_char_sign<false> {
|
||||||
static void make(msgpack::object& o, char v) {
|
static void make(msgpack::object& o, char v) {
|
||||||
o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v;
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -320,99 +321,120 @@ struct object<signed long long> {
|
|||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<unsigned char> {
|
struct object<unsigned char> {
|
||||||
void operator()(msgpack::object& o, unsigned char v) const
|
void operator()(msgpack::object& o, unsigned char v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<unsigned short> {
|
struct object<unsigned short> {
|
||||||
void operator()(msgpack::object& o, unsigned short v) const
|
void operator()(msgpack::object& o, unsigned short v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<unsigned int> {
|
struct object<unsigned int> {
|
||||||
void operator()(msgpack::object& o, unsigned int v) const
|
void operator()(msgpack::object& o, unsigned int v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<unsigned long> {
|
struct object<unsigned long> {
|
||||||
void operator()(msgpack::object& o, unsigned long v) const
|
void operator()(msgpack::object& o, unsigned long v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object<unsigned long long> {
|
struct object<unsigned long long> {
|
||||||
void operator()(msgpack::object& o, unsigned long long v) const
|
void operator()(msgpack::object& o, unsigned long long v) const {
|
||||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||||
|
o.via.u64 = v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<char> {
|
struct object_with_zone<char> {
|
||||||
void operator()(msgpack::object::with_zone& o, char v) const
|
void operator()(msgpack::object::with_zone& o, char v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<signed char> {
|
struct object_with_zone<signed char> {
|
||||||
void operator()(msgpack::object::with_zone& o, signed char v) const
|
void operator()(msgpack::object::with_zone& o, signed char v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<signed short> {
|
struct object_with_zone<signed short> {
|
||||||
void operator()(msgpack::object::with_zone& o, signed short v) const
|
void operator()(msgpack::object::with_zone& o, signed short v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<signed int> {
|
struct object_with_zone<signed int> {
|
||||||
void operator()(msgpack::object::with_zone& o, signed int v) const
|
void operator()(msgpack::object::with_zone& o, signed int v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<signed long> {
|
struct object_with_zone<signed long> {
|
||||||
void operator()(msgpack::object::with_zone& o, signed long v) const
|
void operator()(msgpack::object::with_zone& o, signed long v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<signed long long> {
|
struct object_with_zone<signed long long> {
|
||||||
void operator()(msgpack::object::with_zone& o, const signed long long& v) const
|
void operator()(msgpack::object::with_zone& o, const signed long long& v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<unsigned char> {
|
struct object_with_zone<unsigned char> {
|
||||||
void operator()(msgpack::object::with_zone& o, unsigned char v) const
|
void operator()(msgpack::object::with_zone& o, unsigned char v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<unsigned short> {
|
struct object_with_zone<unsigned short> {
|
||||||
void operator()(msgpack::object::with_zone& o, unsigned short v) const
|
void operator()(msgpack::object::with_zone& o, unsigned short v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<unsigned int> {
|
struct object_with_zone<unsigned int> {
|
||||||
void operator()(msgpack::object::with_zone& o, unsigned int v) const
|
void operator()(msgpack::object::with_zone& o, unsigned int v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<unsigned long> {
|
struct object_with_zone<unsigned long> {
|
||||||
void operator()(msgpack::object::with_zone& o, unsigned long v) const
|
void operator()(msgpack::object::with_zone& o, unsigned long v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct object_with_zone<unsigned long long> {
|
struct object_with_zone<unsigned long long> {
|
||||||
void operator()(msgpack::object::with_zone& o, const unsigned long long& v) const
|
void operator()(msgpack::object::with_zone& o, const unsigned long long& v) const {
|
||||||
{ static_cast<msgpack::object&>(o) << v; }
|
static_cast<msgpack::object&>(o) << v;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace adaptor
|
} // namespace adaptor
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -83,6 +83,13 @@ bool operator!=(const T& y, const msgpack::object& x);
|
|||||||
|
|
||||||
void operator<< (msgpack::object& o, const msgpack_object& v);
|
void operator<< (msgpack::object& o, const msgpack_object& v);
|
||||||
|
|
||||||
|
class object_parser;
|
||||||
|
|
||||||
|
template <typename Stream>
|
||||||
|
struct object_pack_visitor;
|
||||||
|
|
||||||
|
struct object_stringize_visitor;
|
||||||
|
|
||||||
// obsolete
|
// obsolete
|
||||||
template <typename T>
|
template <typename T>
|
||||||
MSGPACK_DEPRECATED("please use member function version of object::convert(T&)")
|
MSGPACK_DEPRECATED("please use member function version of object::convert(T&)")
|
||||||
@@ -104,7 +111,7 @@ msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const msgpack::
|
|||||||
template <typename Stream>
|
template <typename Stream>
|
||||||
msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const msgpack::object::with_zone& v);
|
msgpack::packer<Stream>& operator<< (msgpack::packer<Stream>& o, const msgpack::object::with_zone& v);
|
||||||
|
|
||||||
std::ostream& operator<< (std::ostream& s, const msgpack::object& o);
|
std::ostream& operator<< (std::ostream& s, const msgpack::object& v);
|
||||||
|
|
||||||
/// @cond
|
/// @cond
|
||||||
} // MSGPACK_API_VERSION_NAMESPACE(v1)
|
} // MSGPACK_API_VERSION_NAMESPACE(v1)
|
||||||
|
@@ -59,7 +59,7 @@ private:
|
|||||||
decltype(adaptor::as<U>()(std::declval<msgpack::object>())),
|
decltype(adaptor::as<U>()(std::declval<msgpack::object>())),
|
||||||
T
|
T
|
||||||
>::type;
|
>::type;
|
||||||
template <typename>
|
template <typename...>
|
||||||
static std::false_type check(...);
|
static std::false_type check(...);
|
||||||
public:
|
public:
|
||||||
using type = decltype(check<T>(MSGPACK_NULLPTR));
|
using type = decltype(check<T>(MSGPACK_NULLPTR));
|
||||||
|
@@ -848,7 +848,6 @@ class unpacker {
|
|||||||
public:
|
public:
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/**
|
/**
|
||||||
* @param referenced If the unpacked object contains reference of the buffer, then set as true, otherwise false.
|
|
||||||
* @param f A judging function that msgpack::object refer to the buffer.
|
* @param f A judging function that msgpack::object refer to the buffer.
|
||||||
* @param user_data This parameter is passed to f.
|
* @param user_data This parameter is passed to f.
|
||||||
* @param initial_buffer_size The memory size to allocate when unpacker is constructed.
|
* @param initial_buffer_size The memory size to allocate when unpacker is constructed.
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include "msgpack/unpack_decl.hpp"
|
#include "msgpack/unpack_decl.hpp"
|
||||||
#include "msgpack/unpack_exception.hpp"
|
#include "msgpack/unpack_exception.hpp"
|
||||||
|
#include "msgpack/v2/create_object_visitor_decl.hpp"
|
||||||
#include "msgpack/v2/null_visitor.hpp"
|
#include "msgpack/v2/null_visitor.hpp"
|
||||||
|
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
33
include/msgpack/v2/create_object_visitor_decl.hpp
Normal file
33
include/msgpack/v2/create_object_visitor_decl.hpp
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2017 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V2_CREATE_OBJECT_VISITOR_DECL_HPP
|
||||||
|
#define MSGPACK_V2_CREATE_OBJECT_VISITOR_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/versioning.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v2) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
class create_object_visitor;
|
||||||
|
|
||||||
|
} // detail
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v2)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V2_CREATE_OBJECT_VISITOR_DECL_HPP
|
@@ -10,8 +10,7 @@
|
|||||||
#ifndef MSGPACK_V2_NULL_VISITOR_HPP
|
#ifndef MSGPACK_V2_NULL_VISITOR_HPP
|
||||||
#define MSGPACK_V2_NULL_VISITOR_HPP
|
#define MSGPACK_V2_NULL_VISITOR_HPP
|
||||||
|
|
||||||
#include "msgpack/versioning.hpp"
|
#include "msgpack/v2/null_visitor_decl.hpp"
|
||||||
#include "msgpack/cpp_config.hpp"
|
|
||||||
|
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
|
||||||
|
29
include/msgpack/v2/null_visitor_decl.hpp
Normal file
29
include/msgpack/v2/null_visitor_decl.hpp
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V2_NULL_VISITOR_DECL_HPP
|
||||||
|
#define MSGPACK_V2_NULL_VISITOR_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/versioning.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v2) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
struct null_visitor;
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v2)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V2_NULL_VISITOR_DECL_HPP
|
@@ -37,6 +37,10 @@ using v1::detail::packer_serializer;
|
|||||||
|
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
|
using v1::object_parser;
|
||||||
|
using v1::object_pack_visitor;
|
||||||
|
using v1::object_stringize_visitor;
|
||||||
|
|
||||||
using v1::operator==;
|
using v1::operator==;
|
||||||
using v1::operator!=;
|
using v1::operator!=;
|
||||||
|
|
||||||
|
@@ -91,7 +91,7 @@ private:
|
|||||||
v1::has_as<U>::value,
|
v1::has_as<U>::value,
|
||||||
std::true_type
|
std::true_type
|
||||||
>::type;
|
>::type;
|
||||||
template <typename>
|
template <typename...>
|
||||||
static std::false_type check(...);
|
static std::false_type check(...);
|
||||||
public:
|
public:
|
||||||
using type = decltype(check<T>(MSGPACK_NULLPTR));
|
using type = decltype(check<T>(MSGPACK_NULLPTR));
|
||||||
|
@@ -22,6 +22,7 @@ using v1::packer;
|
|||||||
|
|
||||||
using v1::pack;
|
using v1::pack;
|
||||||
|
|
||||||
|
|
||||||
#if MSGPACK_ENDIAN_LITTLE_BYTE
|
#if MSGPACK_ENDIAN_LITTLE_BYTE
|
||||||
|
|
||||||
using v1::take8_8;
|
using v1::take8_8;
|
||||||
|
@@ -10,8 +10,14 @@
|
|||||||
#ifndef MSGPACK_V2_PARSE_HPP
|
#ifndef MSGPACK_V2_PARSE_HPP
|
||||||
#define MSGPACK_V2_PARSE_HPP
|
#define MSGPACK_V2_PARSE_HPP
|
||||||
|
|
||||||
|
#if MSGPACK_DEFAULT_API_VERSION >= 2
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
#include "msgpack/unpack_define.h"
|
||||||
|
#include "msgpack/parse_return.hpp"
|
||||||
|
#include "msgpack/unpack_exception.hpp"
|
||||||
#include "msgpack/unpack_decl.hpp"
|
#include "msgpack/unpack_decl.hpp"
|
||||||
#include "msgpack/v2/create_object_visitor.hpp"
|
|
||||||
|
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
|
||||||
@@ -21,6 +27,10 @@ MSGPACK_API_VERSION_NAMESPACE(v2) {
|
|||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
|
using v1::detail::fix_tag;
|
||||||
|
using v1::detail::value;
|
||||||
|
using v1::detail::load;
|
||||||
|
|
||||||
template <typename VisitorHolder>
|
template <typename VisitorHolder>
|
||||||
class context {
|
class context {
|
||||||
public:
|
public:
|
||||||
@@ -621,11 +631,11 @@ class parser : public detail::context<VisitorHolder> {
|
|||||||
public:
|
public:
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/**
|
/**
|
||||||
* @param referenced If the unpacked object contains reference of the buffer, then set as true, otherwise false.
|
* @param hook The handler that is called when buffer is allocated internally.
|
||||||
* @param f A judging function that msgpack::object refer to the buffer.
|
* `hook` should be callable with char* parameter.
|
||||||
* @param user_data This parameter is passed to f.
|
* `parser` gives a chance to prepare finalizer.
|
||||||
|
* See https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_visitor#parse-api
|
||||||
* @param initial_buffer_size The memory size to allocate when unpacker is constructed.
|
* @param initial_buffer_size The memory size to allocate when unpacker is constructed.
|
||||||
* @param limit The size limit information of msgpack::object.
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
parser(ReferencedBufferHook& hook,
|
parser(ReferencedBufferHook& hook,
|
||||||
@@ -998,23 +1008,23 @@ inline void parser<VisitorHolder, ReferencedBufferHook>::remove_nonparsed_buffer
|
|||||||
|
|
||||||
template <typename Visitor>
|
template <typename Visitor>
|
||||||
inline bool parse(const char* data, size_t len, size_t& off, Visitor& v) {
|
inline bool parse(const char* data, size_t len, size_t& off, Visitor& v) {
|
||||||
parse_return ret = detail::parse_imp(data, len, off, v);
|
parse_return ret = msgpack::detail::parse_imp(data, len, off, v);
|
||||||
return ret == PARSE_SUCCESS || ret == PARSE_EXTRA_BYTES;
|
return ret == PARSE_SUCCESS || ret == PARSE_EXTRA_BYTES;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Visitor>
|
template <typename Visitor>
|
||||||
inline bool parse(const char* data, size_t len, Visitor& v) {
|
inline bool parse(const char* data, size_t len, Visitor& v) {
|
||||||
std::size_t off = 0;
|
std::size_t off = 0;
|
||||||
return parse(data, len, off, v);
|
return msgpack::parse(data, len, off, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
template <typename Visitor>
|
template <typename Visitor>
|
||||||
struct parse_helper : context<parse_helper<Visitor> > {
|
struct parse_helper : detail::context<parse_helper<Visitor> > {
|
||||||
parse_helper(Visitor& v):m_visitor(v) {}
|
parse_helper(Visitor& v):m_visitor(v) {}
|
||||||
parse_return execute(const char* data, std::size_t len, std::size_t& off) {
|
parse_return execute(const char* data, std::size_t len, std::size_t& off) {
|
||||||
return context<parse_helper<Visitor> >::execute(data, len, off);
|
return detail::context<parse_helper<Visitor> >::execute(data, len, off);
|
||||||
}
|
}
|
||||||
Visitor& visitor() const { return m_visitor; }
|
Visitor& visitor() const { return m_visitor; }
|
||||||
Visitor& m_visitor;
|
Visitor& m_visitor;
|
||||||
@@ -1057,5 +1067,6 @@ parse_imp(const char* data, size_t len, size_t& off, Visitor& v) {
|
|||||||
|
|
||||||
} // namespace msgpack
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_DEFAULT_API_VERSION >= 2
|
||||||
|
|
||||||
#endif // MSGPACK_V2_PARSE_HPP
|
#endif // MSGPACK_V2_PARSE_HPP
|
||||||
|
79
include/msgpack/v2/parse_decl.hpp
Normal file
79
include/msgpack/v2/parse_decl.hpp
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V2_PARSE_DECL_HPP
|
||||||
|
#define MSGPACK_V2_PARSE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/parse_return.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v2) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template <typename VisitorHolder>
|
||||||
|
class context;
|
||||||
|
|
||||||
|
} // detail
|
||||||
|
|
||||||
|
|
||||||
|
/// Parsing class for a stream deserialization.
|
||||||
|
|
||||||
|
template <typename VisitorHolder, typename ReferencedBufferHook>
|
||||||
|
class parser;
|
||||||
|
|
||||||
|
|
||||||
|
/// Unpack msgpack formatted data via a visitor
|
||||||
|
/**
|
||||||
|
* @param data The pointer to the buffer.
|
||||||
|
* @param len The length of the buffer.
|
||||||
|
* @param off The offset position of the buffer. It is read and overwritten.
|
||||||
|
* @param v The visitor that satisfies visitor concept. https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_visitor#visitor-concept
|
||||||
|
*
|
||||||
|
* @return if unpacking process finishs without error then return true, otherwise return false.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
template <typename Visitor>
|
||||||
|
bool parse(const char* data, size_t len, size_t& off, Visitor& v);
|
||||||
|
|
||||||
|
|
||||||
|
/// Unpack msgpack formatted data via a visitor
|
||||||
|
/**
|
||||||
|
* @param data The pointer to the buffer.
|
||||||
|
* @param len The length of the buffer.
|
||||||
|
* @param v The visitor that satisfies visitor concept. https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_visitor#visitor-concept
|
||||||
|
*
|
||||||
|
* @return if unpacking process finishs without error then return true, otherwise return false.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
template <typename Visitor>
|
||||||
|
bool parse(const char* data, size_t len, Visitor& v);
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template <typename Visitor>
|
||||||
|
struct parse_helper;
|
||||||
|
|
||||||
|
template <typename Visitor>
|
||||||
|
inline parse_return
|
||||||
|
parse_imp(const char* data, size_t len, size_t& off, Visitor& v);
|
||||||
|
|
||||||
|
} // detail
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v2)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
|
||||||
|
#endif // MSGPACK_V2_PARSE_DECL_HPP
|
@@ -10,9 +10,11 @@
|
|||||||
#ifndef MSGPACK_V2_UNPACK_HPP
|
#ifndef MSGPACK_V2_UNPACK_HPP
|
||||||
#define MSGPACK_V2_UNPACK_HPP
|
#define MSGPACK_V2_UNPACK_HPP
|
||||||
|
|
||||||
|
#if MSGPACK_DEFAULT_API_VERSION >= 2
|
||||||
|
|
||||||
#include "msgpack/unpack_decl.hpp"
|
#include "msgpack/unpack_decl.hpp"
|
||||||
#include "msgpack/v2/create_object_visitor.hpp"
|
#include "msgpack/parse.hpp"
|
||||||
#include "msgpack/v2/parse.hpp"
|
#include "msgpack/create_object_visitor.hpp"
|
||||||
|
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
|
||||||
@@ -229,7 +231,7 @@ inline void unpack(
|
|||||||
inline void unpack(
|
inline void unpack(
|
||||||
msgpack::object_handle& result,
|
msgpack::object_handle& result,
|
||||||
const char* data, std::size_t len, std::size_t& off,
|
const char* data, std::size_t len, std::size_t& off,
|
||||||
msgpack::v2::unpack_reference_func f, void* user_data,
|
unpack_reference_func f, void* user_data,
|
||||||
unpack_limit const& limit)
|
unpack_limit const& limit)
|
||||||
{
|
{
|
||||||
bool referenced;
|
bool referenced;
|
||||||
@@ -341,5 +343,6 @@ unpack_imp(const char* data, std::size_t len, std::size_t& off,
|
|||||||
|
|
||||||
} // namespace msgpack
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_DEFAULT_API_VERSION >= 2
|
||||||
|
|
||||||
#endif // MSGPACK_V2_UNPACK_HPP
|
#endif // MSGPACK_V2_UNPACK_HPP
|
||||||
|
@@ -100,7 +100,7 @@ class basic_unpacker;
|
|||||||
* @return object_handle that contains unpacked data.
|
* @return object_handle that contains unpacked data.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
object_handle unpack(
|
msgpack::object_handle unpack(
|
||||||
const char* data, std::size_t len, std::size_t& off, bool& referenced,
|
const char* data, std::size_t len, std::size_t& off, bool& referenced,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ object_handle unpack(
|
|||||||
* @return object_handle that contains unpacked data.
|
* @return object_handle that contains unpacked data.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
object_handle unpack(
|
msgpack::object_handle unpack(
|
||||||
const char* data, std::size_t len, std::size_t& off,
|
const char* data, std::size_t len, std::size_t& off,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ object_handle unpack(
|
|||||||
* @return object_handle that contains unpacked data.
|
* @return object_handle that contains unpacked data.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
object_handle unpack(
|
msgpack::object_handle unpack(
|
||||||
const char* data, std::size_t len, bool& referenced,
|
const char* data, std::size_t len, bool& referenced,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ object_handle unpack(
|
|||||||
* @return object_handle that contains unpacked data.
|
* @return object_handle that contains unpacked data.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
object_handle unpack(
|
msgpack::object_handle unpack(
|
||||||
const char* data, std::size_t len,
|
const char* data, std::size_t len,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ object_handle unpack(
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void unpack(
|
void unpack(
|
||||||
object_handle& result,
|
msgpack::object_handle& result,
|
||||||
const char* data, std::size_t len, std::size_t& off, bool& referenced,
|
const char* data, std::size_t len, std::size_t& off, bool& referenced,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -183,7 +183,7 @@ void unpack(
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void unpack(
|
void unpack(
|
||||||
object_handle& result,
|
msgpack::object_handle& result,
|
||||||
const char* data, std::size_t len, std::size_t& off,
|
const char* data, std::size_t len, std::size_t& off,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ void unpack(
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void unpack(
|
void unpack(
|
||||||
object_handle& result,
|
msgpack::object_handle& result,
|
||||||
const char* data, std::size_t len, bool& referenced,
|
const char* data, std::size_t len, bool& referenced,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ void unpack(
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void unpack(
|
void unpack(
|
||||||
object_handle& result,
|
msgpack::object_handle& result,
|
||||||
const char* data, std::size_t len,
|
const char* data, std::size_t len,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
@@ -292,31 +292,6 @@ msgpack::object unpack(
|
|||||||
const char* data, std::size_t len,
|
const char* data, std::size_t len,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR, unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
/// Unpack msgpack formatted data via a visitor
|
|
||||||
/**
|
|
||||||
* @param data The pointer to the buffer.
|
|
||||||
* @param len The length of the buffer.
|
|
||||||
* @param off The offset position of the buffer. It is read and overwritten.
|
|
||||||
* @param v The visitor that satisfies visitor concept. https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_visitor#visitor-concept
|
|
||||||
*
|
|
||||||
* @return if unpacking process finishs without error then return true, otherwise return false.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
template <typename Visitor>
|
|
||||||
bool parse(const char* data, size_t len, size_t& off, Visitor& v);
|
|
||||||
|
|
||||||
/// Unpack msgpack formatted data via a visitor
|
|
||||||
/**
|
|
||||||
* @param data The pointer to the buffer.
|
|
||||||
* @param len The length of the buffer.
|
|
||||||
* @param v The visitor that satisfies visitor concept. https://github.com/msgpack/msgpack-c/wiki/v2_0_cpp_visitor#visitor-concept
|
|
||||||
*
|
|
||||||
* @return if unpacking process finishs without error then return true, otherwise return false.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
template <typename Visitor>
|
|
||||||
bool parse(const char* data, size_t len, Visitor& v);
|
|
||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
|
||||||
parse_return
|
parse_return
|
||||||
@@ -325,9 +300,6 @@ unpack_imp(const char* data, std::size_t len, std::size_t& off,
|
|||||||
unpack_reference_func f, void* user_data,
|
unpack_reference_func f, void* user_data,
|
||||||
unpack_limit const& limit);
|
unpack_limit const& limit);
|
||||||
|
|
||||||
template <typename UnpackVisitor>
|
|
||||||
parse_return
|
|
||||||
parse_imp(const char* data, size_t len, size_t& off, UnpackVisitor& v);
|
|
||||||
|
|
||||||
} // detail
|
} // detail
|
||||||
|
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
#if BOOST_VERSION >= 106100
|
#if BOOST_VERSION >= 106100
|
||||||
|
|
||||||
#include "msgpack/versioning.hpp"
|
#include "msgpack/versioning.hpp"
|
||||||
|
#include "msgpack/x3_parse_decl.hpp"
|
||||||
|
|
||||||
#if __GNUC__ >= 4
|
#if __GNUC__ >= 4
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
|
36
include/msgpack/v2/x3_parse_decl.hpp
Normal file
36
include/msgpack/v2/x3_parse_decl.hpp
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2017 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V2_X3_PARSE_DECL_HPP
|
||||||
|
#define MSGPACK_V2_X3_PARSE_DECL_HPP
|
||||||
|
|
||||||
|
#if defined(MSGPACK_USE_X3_PARSE)
|
||||||
|
|
||||||
|
#include "msgpack/versioning.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v2) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
|
||||||
|
template <typename Iterator, typename Visitor>
|
||||||
|
bool parse(Iterator&& begin, Iterator&& end, Visitor&& vis);
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v2)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
|
||||||
|
#endif // defined(MSGPACK_USE_X3_PARSE)
|
||||||
|
|
||||||
|
#endif // MSGPACK_V2_X3_PARSE_DECL_HPP
|
@@ -17,8 +17,9 @@
|
|||||||
#if BOOST_VERSION >= 106100
|
#if BOOST_VERSION >= 106100
|
||||||
|
|
||||||
#include "msgpack/versioning.hpp"
|
#include "msgpack/versioning.hpp"
|
||||||
#include "msgpack/v2/create_object_visitor.hpp"
|
#include "msgpack/create_object_visitor.hpp"
|
||||||
#include "msgpack/v2/x3_parse.hpp"
|
#include "msgpack/x3_unpack_decl.hpp"
|
||||||
|
#include "msgpack/x3_parse.hpp"
|
||||||
|
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
|
||||||
@@ -32,8 +33,8 @@ template <typename Iterator>
|
|||||||
inline void
|
inline void
|
||||||
unpack_imp(Iterator&& begin, Iterator&& end,
|
unpack_imp(Iterator&& begin, Iterator&& end,
|
||||||
msgpack::zone& result_zone, msgpack::object& result, bool& referenced,
|
msgpack::zone& result_zone, msgpack::object& result, bool& referenced,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
unpack_reference_func f, void* user_data,
|
||||||
unpack_limit const& limit = unpack_limit())
|
unpack_limit const& limit)
|
||||||
{
|
{
|
||||||
create_object_visitor v(f, user_data, limit);
|
create_object_visitor v(f, user_data, limit);
|
||||||
v.set_zone(result_zone);
|
v.set_zone(result_zone);
|
||||||
@@ -53,8 +54,8 @@ template <typename Iterator>
|
|||||||
inline msgpack::object_handle unpack(
|
inline msgpack::object_handle unpack(
|
||||||
Iterator&& begin, Iterator&& end,
|
Iterator&& begin, Iterator&& end,
|
||||||
bool& referenced,
|
bool& referenced,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
unpack_reference_func f, void* user_data,
|
||||||
unpack_limit const& limit = unpack_limit())
|
unpack_limit const& limit)
|
||||||
{
|
{
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unique_ptr<msgpack::zone> z(new msgpack::zone);
|
msgpack::unique_ptr<msgpack::zone> z(new msgpack::zone);
|
||||||
@@ -67,8 +68,8 @@ inline msgpack::object_handle unpack(
|
|||||||
template <typename Iterator>
|
template <typename Iterator>
|
||||||
inline msgpack::object_handle unpack(
|
inline msgpack::object_handle unpack(
|
||||||
Iterator&& begin, Iterator&& end,
|
Iterator&& begin, Iterator&& end,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
unpack_reference_func f, void* user_data,
|
||||||
unpack_limit const& limit = unpack_limit())
|
unpack_limit const& limit)
|
||||||
{
|
{
|
||||||
bool referenced;
|
bool referenced;
|
||||||
return unpack(std::forward<Iterator>(begin), std::forward<Iterator>(end), referenced, f, user_data, limit);
|
return unpack(std::forward<Iterator>(begin), std::forward<Iterator>(end), referenced, f, user_data, limit);
|
||||||
@@ -79,8 +80,8 @@ inline msgpack::object unpack(
|
|||||||
msgpack::zone& z,
|
msgpack::zone& z,
|
||||||
Iterator&& begin, Iterator&& end,
|
Iterator&& begin, Iterator&& end,
|
||||||
bool& referenced,
|
bool& referenced,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
unpack_reference_func f, void* user_data,
|
||||||
unpack_limit const& limit = unpack_limit())
|
unpack_limit const& limit)
|
||||||
{
|
{
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
referenced = false;
|
referenced = false;
|
||||||
@@ -93,8 +94,8 @@ template <typename Iterator>
|
|||||||
inline msgpack::object unpack(
|
inline msgpack::object unpack(
|
||||||
msgpack::zone& z,
|
msgpack::zone& z,
|
||||||
Iterator&& begin, Iterator&& end,
|
Iterator&& begin, Iterator&& end,
|
||||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
unpack_reference_func f, void* user_data,
|
||||||
unpack_limit const& limit = unpack_limit())
|
unpack_limit const& limit)
|
||||||
{
|
{
|
||||||
bool referenced;
|
bool referenced;
|
||||||
return unpack(
|
return unpack(
|
||||||
|
71
include/msgpack/v2/x3_unpack_decl.hpp
Normal file
71
include/msgpack/v2/x3_unpack_decl.hpp
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ deserializing routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2018 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V2_X3_UNPACK_DECL_HPP
|
||||||
|
#define MSGPACK_V2_X3_UNPACK_DECL_HPP
|
||||||
|
|
||||||
|
#if defined(MSGPACK_USE_X3_PARSE)
|
||||||
|
|
||||||
|
#include "msgpack/versioning.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v2) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
void
|
||||||
|
unpack_imp(Iterator&& begin, Iterator&& end,
|
||||||
|
msgpack::zone& result_zone, msgpack::object& result, bool& referenced,
|
||||||
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
||||||
|
unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
|
} // namespace detail
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
msgpack::object_handle unpack(
|
||||||
|
Iterator&& begin, Iterator&& end,
|
||||||
|
bool& referenced,
|
||||||
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
||||||
|
unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
msgpack::object_handle unpack(
|
||||||
|
Iterator&& begin, Iterator&& end,
|
||||||
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
||||||
|
unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
msgpack::object unpack(
|
||||||
|
msgpack::zone& z,
|
||||||
|
Iterator&& begin, Iterator&& end,
|
||||||
|
bool& referenced,
|
||||||
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
||||||
|
unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
|
template <typename Iterator>
|
||||||
|
msgpack::object unpack(
|
||||||
|
msgpack::zone& z,
|
||||||
|
Iterator&& begin, Iterator&& end,
|
||||||
|
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
||||||
|
unpack_limit const& limit = unpack_limit());
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v2)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
|
||||||
|
#endif // defined(MSGPACK_USE_X3_PARSE)
|
||||||
|
|
||||||
|
#endif // MSGPACK_V2_X3_UNPACK_DECL_HPP
|
58
include/msgpack/v3/adaptor/adaptor_base.hpp
Normal file
58
include/msgpack/v3/adaptor/adaptor_base.hpp
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2015-2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_ADAPTOR_BASE_HPP
|
||||||
|
#define MSGPACK_V3_ADAPTOR_BASE_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v3/adaptor/adaptor_base_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
|
||||||
|
namespace adaptor {
|
||||||
|
|
||||||
|
// Adaptor functors
|
||||||
|
|
||||||
|
template <typename T, typename Enabler>
|
||||||
|
struct convert : v2::adaptor::convert<T, Enabler> {
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, typename Enabler>
|
||||||
|
struct pack : v2::adaptor::pack<T, Enabler> {
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, typename Enabler>
|
||||||
|
struct object<
|
||||||
|
T,
|
||||||
|
Enabler,
|
||||||
|
typename msgpack::enable_if<
|
||||||
|
!msgpack::is_same<T, std::string>::value &&
|
||||||
|
!msgpack::is_array<T>::value
|
||||||
|
>::type>
|
||||||
|
: v2::adaptor::object<T, Enabler> {
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, typename Enabler>
|
||||||
|
struct object_with_zone : v2::adaptor::object_with_zone<T, Enabler> {
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace adaptor
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_ADAPTOR_BASE_HPP
|
52
include/msgpack/v3/adaptor/adaptor_base_decl.hpp
Normal file
52
include/msgpack/v3/adaptor/adaptor_base_decl.hpp
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_ADAPTOR_BASE_DECL_HPP
|
||||||
|
#define MSGPACK_V3_ADAPTOR_BASE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/adaptor_base_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
using v2::packer;
|
||||||
|
|
||||||
|
namespace adaptor {
|
||||||
|
|
||||||
|
// Adaptor functors
|
||||||
|
|
||||||
|
template <typename T, typename Enabler = void>
|
||||||
|
struct convert;
|
||||||
|
|
||||||
|
template <typename T, typename Enabler = void>
|
||||||
|
struct pack;
|
||||||
|
|
||||||
|
template <typename T, typename Enabler = void, typename Enabler2 = void>
|
||||||
|
struct object;
|
||||||
|
|
||||||
|
template <typename T, typename Enabler = void>
|
||||||
|
struct object_with_zone;
|
||||||
|
|
||||||
|
} // namespace adaptor
|
||||||
|
|
||||||
|
// operators
|
||||||
|
|
||||||
|
using v2::operator>>;
|
||||||
|
using v2::operator<<;
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_ADAPTOR_BASE_DECL_HPP
|
36
include/msgpack/v3/adaptor/array_ref_decl.hpp
Normal file
36
include/msgpack/v3/adaptor/array_ref_decl.hpp
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_ARRAY_REF_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_ARRAY_REF_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/array_ref_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::array_ref;
|
||||||
|
|
||||||
|
using v2::type::make_array_ref;
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_TYPE_ARRAY_REF_DECL_HPP
|
42
include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp
Normal file
42
include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP
|
||||||
|
|
||||||
|
#if defined(MSGPACK_USE_BOOST)
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::basic_variant;
|
||||||
|
using v2::type::variant;
|
||||||
|
using v2::type::variant_ref;
|
||||||
|
|
||||||
|
using v2::type::operator<;
|
||||||
|
|
||||||
|
using v2::type::operator==;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_USE_BOOST
|
||||||
|
#endif // MSGPACK_V3_TYPE_BOOST_MSGPACK_VARIANT_DECL_HPP
|
39
include/msgpack/v3/adaptor/check_container_size_decl.hpp
Normal file
39
include/msgpack/v3/adaptor/check_container_size_decl.hpp
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_CHECK_CONTAINER_SIZE_DECL_HPP
|
||||||
|
#define MSGPACK_V3_CHECK_CONTAINER_SIZE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/check_container_size_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
using v2::container_size_overflow;
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
using v2::detail::check_container_size;
|
||||||
|
|
||||||
|
using v2::detail::check_container_size_for_ext;
|
||||||
|
|
||||||
|
} // namespace detail
|
||||||
|
|
||||||
|
using v2::checked_get_container_size;
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_CHECK_CONTAINER_SIZE_DECL_HPP
|
23
include/msgpack/v3/adaptor/define_decl.hpp
Normal file
23
include/msgpack/v3/adaptor/define_decl.hpp
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_DEFINE_DECL_HPP
|
||||||
|
#define MSGPACK_V3_DEFINE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/cpp_config.hpp"
|
||||||
|
|
||||||
|
#if defined(MSGPACK_USE_CPP03)
|
||||||
|
#include "msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp"
|
||||||
|
#else // MSGPACK_USE_CPP03
|
||||||
|
#include "msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp"
|
||||||
|
#include "msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp"
|
||||||
|
#endif // MSGPACK_USE_CPP03
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_DEFINE_DECL_HPP
|
@@ -0,0 +1,31 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_CPP03_DEFINE_ARRAY_DECL_HPP
|
||||||
|
#define MSGPACK_V3_CPP03_DEFINE_ARRAY_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/detail/cpp03_define_array_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::define_array;
|
||||||
|
|
||||||
|
using v2::type::make_define_array;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_CPP03_DEFINE_ARRAY_DECL_HPP
|
31
include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp
Normal file
31
include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2015-2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_CPP03_DEFINE_MAP_DECL_HPP
|
||||||
|
#define MSGPACK_V3_CPP03_DEFINE_MAP_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/detail/cpp03_define_map_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::define_map;
|
||||||
|
|
||||||
|
using v2::type::make_define_map;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_CPP03_DEFINE_MAP_DECL_HPP
|
@@ -0,0 +1,43 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_CPP03_MSGPACK_TUPLE_DECL_HPP
|
||||||
|
#define MSGPACK_V3_CPP03_MSGPACK_TUPLE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/detail/cpp03_msgpack_tuple_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::tuple;
|
||||||
|
|
||||||
|
using v2::type::tuple_element;
|
||||||
|
|
||||||
|
using v2::type::const_tuple_element;
|
||||||
|
|
||||||
|
using v2::type::tuple_type;
|
||||||
|
|
||||||
|
using v2::type::get;
|
||||||
|
|
||||||
|
using v2::type::make_tuple;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_CPP03_MSGPACK_TUPLE_DECL_HPP
|
@@ -0,0 +1,32 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_CPP11_DEFINE_ARRAY_DECL_HPP
|
||||||
|
#define MSGPACK_V3_CPP11_DEFINE_ARRAY_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/detail/cpp11_define_array_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::define_array_imp;
|
||||||
|
using v2::type::define_array;
|
||||||
|
|
||||||
|
using v2::type::make_define_array;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_CPP11_DEFINE_ARRAY_DECL_HPP
|
31
include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp
Normal file
31
include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_CPP11_DEFINE_MAP_DECL_HPP
|
||||||
|
#define MSGPACK_V3_CPP11_DEFINE_MAP_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/detail/cpp11_define_map_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::define_map_imp;
|
||||||
|
using v2::type::define_map;
|
||||||
|
using v2::type::make_define_map;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_CPP11_DEFINE_MAP_DECL_HPP
|
@@ -0,0 +1,59 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_CPP11_MSGPACK_TUPLE_DECL_HPP
|
||||||
|
#define MSGPACK_V3_CPP11_MSGPACK_TUPLE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/detail/cpp11_msgpack_tuple_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::get;
|
||||||
|
using v2::type::tuple_size;
|
||||||
|
using v2::type::tuple_element;
|
||||||
|
using v2::type::uses_allocator;
|
||||||
|
using v2::type::ignore;
|
||||||
|
using v2::type::swap;
|
||||||
|
|
||||||
|
using v2::type::tuple;
|
||||||
|
|
||||||
|
using v2::type::make_tuple;
|
||||||
|
using v2::type::forward_as_tuple;
|
||||||
|
using v2::type::tuple_cat;
|
||||||
|
using v2::type::tie;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
// --- Pack from tuple to packer stream ---
|
||||||
|
|
||||||
|
using v2::MsgpackTuplePacker;
|
||||||
|
|
||||||
|
// --- Convert from tuple to object ---
|
||||||
|
using v2::MsgpackTupleAs;
|
||||||
|
|
||||||
|
using v2::MsgpackTupleAsImpl;
|
||||||
|
|
||||||
|
using v2::MsgpackTupleConverter;
|
||||||
|
|
||||||
|
// --- Convert from tuple to object with zone ---
|
||||||
|
using v2::MsgpackTupleToObjectWithZone;
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
///@endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_CPP11_MSGPACK_TUPLE_DECL_HPP
|
34
include/msgpack/v3/adaptor/ext_decl.hpp
Normal file
34
include/msgpack/v3/adaptor/ext_decl.hpp
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_EXT_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_EXT_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/ext_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::ext_ref;
|
||||||
|
using v2::type::ext;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_TYPE_EXT_DECL_HPP
|
43
include/msgpack/v3/adaptor/fixint_decl.hpp
Normal file
43
include/msgpack/v3/adaptor/fixint_decl.hpp
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 FURUHASHI Sadayuki and KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_FIXINT_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_FIXINT_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/fixint_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::fix_int;
|
||||||
|
|
||||||
|
using v2::type::fix_uint8;
|
||||||
|
using v2::type::fix_uint16;
|
||||||
|
using v2::type::fix_uint32;
|
||||||
|
using v2::type::fix_uint64;
|
||||||
|
|
||||||
|
using v2::type::fix_int8;
|
||||||
|
using v2::type::fix_int16;
|
||||||
|
using v2::type::fix_int32;
|
||||||
|
using v2::type::fix_int64;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_TYPE_FIXINT_DECL_HPP
|
54
include/msgpack/v3/adaptor/int_decl.hpp
Normal file
54
include/msgpack/v3/adaptor/int_decl.hpp
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 FURUHASHI Sadayuki and KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_INT_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_INT_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/int_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3){
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T, bool Signed>
|
||||||
|
struct convert_integer_sign;
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct is_signed;
|
||||||
|
|
||||||
|
|
||||||
|
template <bool Signed>
|
||||||
|
struct object_char_sign;
|
||||||
|
|
||||||
|
//using v2::type::detail::convert_integer_sign;
|
||||||
|
|
||||||
|
//using v2::type::detail::is_signed;
|
||||||
|
|
||||||
|
using v2::type::detail::convert_integer;
|
||||||
|
|
||||||
|
//using v2::type::detail::object_char_sign;
|
||||||
|
|
||||||
|
using v2::type::detail::object_char;
|
||||||
|
|
||||||
|
} // namespace detail
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_TYPE_INT_DECL_HPP
|
33
include/msgpack/v3/adaptor/map_decl.hpp
Normal file
33
include/msgpack/v3/adaptor/map_decl.hpp
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_MAP_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_MAP_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/map_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::assoc_vector;
|
||||||
|
|
||||||
|
} //namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_TYPE_MAP_DECL_HPP
|
21
include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp
Normal file
21
include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_MSGPACK_TUPLE_DECL_HPP
|
||||||
|
#define MSGPACK_V3_MSGPACK_TUPLE_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/cpp_config.hpp"
|
||||||
|
|
||||||
|
#if defined(MSGPACK_USE_CPP03)
|
||||||
|
#include "msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp"
|
||||||
|
#else // MSGPACK_USE_CPP03
|
||||||
|
#include "msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp"
|
||||||
|
#endif // MSGPACK_USE_CPP03
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_MSGPACK_TUPLE_DECL_HPP
|
42
include/msgpack/v3/adaptor/nil_decl.hpp
Normal file
42
include/msgpack/v3/adaptor/nil_decl.hpp
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2008-2016 FURUHASHI Sadayuki and KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_NIL_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_NIL_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/nil_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::nil_t;
|
||||||
|
|
||||||
|
#if defined(MSGPACK_USE_LEGACY_NIL)
|
||||||
|
|
||||||
|
typedef nil_t nil;
|
||||||
|
|
||||||
|
#endif // defined(MSGPACK_USE_LEGACY_NIL)
|
||||||
|
|
||||||
|
using v2::type::operator<;
|
||||||
|
using v2::type::operator==;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_TYPE_NIL_DECL_HPP
|
33
include/msgpack/v3/adaptor/raw_decl.hpp
Normal file
33
include/msgpack/v3/adaptor/raw_decl.hpp
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// MessagePack for C++ static resolution routine
|
||||||
|
//
|
||||||
|
// Copyright (C) 2016 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
#ifndef MSGPACK_V3_TYPE_RAW_DECL_HPP
|
||||||
|
#define MSGPACK_V3_TYPE_RAW_DECL_HPP
|
||||||
|
|
||||||
|
#include "msgpack/v2/adaptor/raw_decl.hpp"
|
||||||
|
|
||||||
|
namespace msgpack {
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
MSGPACK_API_VERSION_NAMESPACE(v3) {
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
namespace type {
|
||||||
|
|
||||||
|
using v2::type::raw_ref;
|
||||||
|
|
||||||
|
} // namespace type
|
||||||
|
|
||||||
|
/// @cond
|
||||||
|
} // MSGPACK_API_VERSION_NAMESPACE(v3)
|
||||||
|
/// @endcond
|
||||||
|
|
||||||
|
} // namespace msgpack
|
||||||
|
|
||||||
|
#endif // MSGPACK_V3_TYPE_RAW_DECL_HPP
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user