mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-21 07:45:02 +02:00
Compare commits
74 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 |
19
.travis.yml
19
.travis.yml
@@ -1,5 +1,6 @@
|
||||
language: cpp
|
||||
sudo: false
|
||||
dist: trusty
|
||||
|
||||
install:
|
||||
- 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 [ "$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" = "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
|
||||
- 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
|
||||
@@ -27,7 +29,8 @@ install:
|
||||
# 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
|
||||
# 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:
|
||||
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"
|
||||
- os: osx
|
||||
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
|
||||
compiler: clang
|
||||
env: ACTION="ci/build_cmake.sh" CXX11="ON" ARCH="64" SHARED="ON" CHAR_SIGN="signed" API_VERSION="2"
|
||||
@@ -78,12 +81,13 @@ matrix:
|
||||
- lib32gcc1
|
||||
- libc6-i386
|
||||
- lib32z1-dev
|
||||
- zlib1g-dev
|
||||
- bzip2
|
||||
- clang-3.9
|
||||
- libc6-dbg
|
||||
- os: linux
|
||||
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:
|
||||
apt:
|
||||
sources:
|
||||
@@ -116,6 +120,7 @@ matrix:
|
||||
- lib32gcc1
|
||||
- libc6-i386
|
||||
- lib32z1-dev
|
||||
- zlib1g-dev
|
||||
- bzip2
|
||||
- clang-3.9
|
||||
- libc6-dbg
|
||||
@@ -135,7 +140,7 @@ matrix:
|
||||
- libc6-dbg
|
||||
- os: linux
|
||||
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:
|
||||
apt:
|
||||
sources:
|
||||
@@ -149,6 +154,7 @@ matrix:
|
||||
- lib32gcc1
|
||||
- libc6-i386
|
||||
- lib32z1-dev
|
||||
- zlib1g-dev
|
||||
- bzip2
|
||||
- libc6-dbg
|
||||
- os: linux
|
||||
@@ -181,6 +187,7 @@ matrix:
|
||||
- lib32gcc1
|
||||
- libc6-i386
|
||||
- lib32z1-dev
|
||||
- zlib1g-dev
|
||||
- bzip2
|
||||
- libc6-dbg
|
||||
- os: linux
|
||||
@@ -199,8 +206,10 @@ matrix:
|
||||
- lib32gcc1
|
||||
- libc6-i386
|
||||
- lib32z1-dev
|
||||
- zlib1g-dev
|
||||
- bzip2
|
||||
- libc6-dbg
|
||||
|
||||
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
|
||||
|
19
CHANGELOG.md
19
CHANGELOG.md
@@ -1,3 +1,22 @@
|
||||
# 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)
|
||||
|
@@ -124,7 +124,7 @@ ENDIF ()
|
||||
IF (MSGPACK_DEFAULT_API_VERSION)
|
||||
SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}")
|
||||
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 ()
|
||||
|
||||
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 (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 ()
|
||||
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 ()
|
||||
|
||||
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/cpp_config.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_decl.hpp
|
||||
include/msgpack/gcc_atomic.hpp
|
||||
@@ -223,12 +225,16 @@ IF (MSGPACK_ENABLE_CXX)
|
||||
include/msgpack/iterator_decl.hpp
|
||||
include/msgpack/meta.hpp
|
||||
include/msgpack/meta_decl.hpp
|
||||
include/msgpack/null_visitor.hpp
|
||||
include/msgpack/null_visitor_decl.hpp
|
||||
include/msgpack/object.hpp
|
||||
include/msgpack/object_decl.hpp
|
||||
include/msgpack/object_fwd.hpp
|
||||
include/msgpack/object_fwd_decl.hpp
|
||||
include/msgpack/pack.hpp
|
||||
include/msgpack/pack_decl.hpp
|
||||
include/msgpack/parse.hpp
|
||||
include/msgpack/parse_decl.hpp
|
||||
include/msgpack/parse_return.hpp
|
||||
include/msgpack/preprocessor.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_msgpack_tuple.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_decl.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/cpp_config_decl.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/cpp11_zone_decl.hpp
|
||||
include/msgpack/v2/fbuffer_decl.hpp
|
||||
include/msgpack/v2/iterator_decl.hpp
|
||||
include/msgpack/v2/meta_decl.hpp
|
||||
include/msgpack/v2/null_visitor.hpp
|
||||
include/msgpack/v2/null_visitor_decl.hpp
|
||||
include/msgpack/v2/object.hpp
|
||||
include/msgpack/v2/object_decl.hpp
|
||||
include/msgpack/v2/object_fwd.hpp
|
||||
include/msgpack/v2/object_fwd_decl.hpp
|
||||
include/msgpack/v2/pack_decl.hpp
|
||||
include/msgpack/v2/parse.hpp
|
||||
include/msgpack/v2/parse_decl.hpp
|
||||
include/msgpack/v2/parse_return.hpp
|
||||
include/msgpack/v2/sbuffer_decl.hpp
|
||||
include/msgpack/v2/unpack.hpp
|
||||
include/msgpack/v2/unpack_decl.hpp
|
||||
include/msgpack/v2/vrefbuffer_decl.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_decl.hpp
|
||||
include/msgpack/v2/zbuffer_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/versioning.hpp
|
||||
include/msgpack/vrefbuffer.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_decl.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.
|
||||
|
||||
```
|
||||
$ sudo brew install msgpack
|
||||
$ brew install msgpack
|
||||
```
|
||||
|
||||
## FreeBSD with Ports Collection
|
||||
|
@@ -1,9 +1,9 @@
|
||||
`msgpack` for C/C++
|
||||
===================
|
||||
|
||||
Version 2.1.5 [](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
|
||||
--------
|
||||
@@ -11,7 +11,7 @@ Overview
|
||||
[MessagePack](http://msgpack.org/) is an efficient binary serialization
|
||||
format, which lets you exchange data among multiple languages like JSON,
|
||||
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.
|
||||
|
||||
Example
|
||||
|
@@ -1,4 +1,4 @@
|
||||
version: 2.1.5.{build}
|
||||
version: 3.0.0.{build}
|
||||
|
||||
image:
|
||||
- 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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
std::string(
|
||||
|
@@ -39,7 +39,7 @@ FOREACH (source_file ${exec_PROGRAMS})
|
||||
)
|
||||
ENDIF()
|
||||
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 ()
|
||||
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
|
@@ -70,13 +70,22 @@ int main() {
|
||||
// Client
|
||||
auto host = "localhost";
|
||||
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));
|
||||
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::async_connect(
|
||||
cs,
|
||||
|
||||
it,
|
||||
end,
|
||||
[&]
|
||||
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
||||
if (e) {
|
||||
|
@@ -136,13 +136,24 @@ int main() {
|
||||
|
||||
// Client
|
||||
auto host = "localhost";
|
||||
|
||||
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));
|
||||
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::async_connect(
|
||||
cs,
|
||||
it,
|
||||
end,
|
||||
[&]
|
||||
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
||||
if (e) {
|
||||
|
@@ -23,7 +23,7 @@ FOREACH (source_file ${exec_PROGRAMS})
|
||||
${MSGPACK_LIB}
|
||||
)
|
||||
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 ()
|
||||
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
|
@@ -40,7 +40,7 @@ FOREACH (source_file ${exec_PROGRAMS})
|
||||
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
)
|
||||
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 ()
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||
@@ -65,7 +65,7 @@ FOREACH (source_file ${with_pthread_PROGRAMS})
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
)
|
||||
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 ()
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||
|
@@ -25,7 +25,7 @@ IF (MSGPACK_CXX11)
|
||||
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
)
|
||||
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 ()
|
||||
|
||||
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
|
||||
)
|
||||
@@ -23,7 +23,7 @@ IF (MSGPACK_USE_X3_PARSE)
|
||||
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
)
|
||||
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 ()
|
||||
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
@@ -54,7 +54,7 @@ IF (MSGPACK_USE_X3_PARSE)
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
)
|
||||
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 ()
|
||||
|
||||
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/zone.hpp"
|
||||
#include "msgpack/pack.hpp"
|
||||
#include "msgpack/null_visitor.hpp"
|
||||
#include "msgpack/parse.hpp"
|
||||
#include "msgpack/unpack.hpp"
|
||||
#include "msgpack/x3_parse.hpp"
|
||||
#include "msgpack/x3_unpack.hpp"
|
||||
#include "msgpack/sbuffer.hpp"
|
||||
#include "msgpack/vrefbuffer.hpp"
|
||||
#include "msgpack/version.hpp"
|
||||
|
@@ -14,5 +14,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/adaptor_base.hpp"
|
||||
#include "msgpack/v2/adaptor/adaptor_base.hpp"
|
||||
#include "msgpack/v3/adaptor/adaptor_base.hpp"
|
||||
|
||||
#endif // MSGPACK_ADAPTOR_BASE_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/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
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/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
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/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
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/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
|
||||
|
@@ -139,5 +139,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/define_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/define_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/define_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_DEFINE_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/ext_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/ext_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/ext_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_TYPE_EXT_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/fixint_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/fixint_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/fixint_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_TYPE_FIXINT_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/int_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/int_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/int_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_TYPE_INT_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/map_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/map_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/map_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_TYPE_MAP_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/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
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/nil_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/nil_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/nil_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_TYPE_NIL_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/raw_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/raw_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/raw_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_TYPE_RAW_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/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
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/adaptor/v4raw_decl.hpp"
|
||||
#include "msgpack/v2/adaptor/v4raw_decl.hpp"
|
||||
#include "msgpack/v3/adaptor/v4raw_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_TYPE_V4RAW_DECL_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/cpp_config_decl.hpp"
|
||||
#include "msgpack/v2/cpp_config_decl.hpp"
|
||||
#include "msgpack/v3/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/v2/fbuffer_decl.hpp"
|
||||
#include "msgpack/v3/fbuffer_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_FBUFFER_DECL_HPP
|
||||
|
@@ -13,5 +13,6 @@
|
||||
|
||||
#include <msgpack/v1/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/v2/meta_decl.hpp"
|
||||
#include "msgpack/v3/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/v2/object_decl.hpp"
|
||||
#include "msgpack/v3/object_decl.hpp"
|
||||
|
||||
#endif // MSGPACK_OBJECT_DECL_HPP
|
||||
|
@@ -15,5 +15,6 @@
|
||||
|
||||
#include "msgpack/v1/object_fwd.hpp"
|
||||
#include "msgpack/v2/object_fwd.hpp"
|
||||
#include "msgpack/v3/object_fwd.hpp"
|
||||
|
||||
#endif // MSGPACK_OBJECT_FWD_HPP
|
||||
|
@@ -13,5 +13,6 @@
|
||||
|
||||
#include "msgpack/v1/object_fwd_decl.hpp"
|
||||
#include "msgpack/v2/object_fwd_decl.hpp"
|
||||
#include "msgpack/v3/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_body(msgpack_packer* pk, const void* b, size_t l);
|
||||
|
||||
MSGPACK_DLLEXPORT
|
||||
int msgpack_pack_object(msgpack_packer* pk, msgpack_object d);
|
||||
|
||||
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/pack_decl.hpp"
|
||||
#include "msgpack/v2/pack_decl.hpp"
|
||||
#include "msgpack/v3/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/v2/parse_return.hpp"
|
||||
#include "msgpack/v3/parse_return.hpp"
|
||||
|
||||
#endif // MSGPACK_PARSE_RETURN_HPP
|
||||
|
@@ -12,6 +12,7 @@
|
||||
|
||||
#include "msgpack/v1/sbuffer_decl.hpp"
|
||||
#include "msgpack/v2/sbuffer_decl.hpp"
|
||||
#include "msgpack/v3/sbuffer_decl.hpp"
|
||||
|
||||
|
||||
#endif // MSGPACK_SBUFFER_DECL_HPP
|
||||
|
@@ -14,6 +14,6 @@
|
||||
|
||||
#include "msgpack/v1/unpack.hpp"
|
||||
#include "msgpack/v2/unpack.hpp"
|
||||
#include "msgpack/v2/x3_unpack.hpp"
|
||||
#include "msgpack/v3/unpack.hpp"
|
||||
|
||||
#endif // MSGPACK_UNPACK_HPP
|
||||
|
@@ -12,5 +12,6 @@
|
||||
|
||||
#include "msgpack/v1/unpack_decl.hpp"
|
||||
#include "msgpack/v2/unpack_decl.hpp"
|
||||
#include "msgpack/v3/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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
std::string(
|
||||
@@ -114,6 +115,7 @@ struct define_map<A0, A1, A2, A3> {
|
||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::map<std::string, msgpack::object const*>::value_type(
|
||||
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
|
||||
|
||||
#include "msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp"
|
||||
#include "msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp"
|
||||
|
||||
#include <tuple>
|
||||
|
||||
@@ -31,7 +32,7 @@ struct define_array_imp {
|
||||
define_array_imp<Tuple, N-1>::unpack(o, t);
|
||||
const size_t size = o.via.array.size;
|
||||
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) {
|
||||
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) {
|
||||
const size_t size = o.via.array.size;
|
||||
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) {
|
||||
o->via.array.ptr[0] = msgpack::object(std::get<0>(t), z);
|
||||
|
@@ -11,6 +11,7 @@
|
||||
#define MSGPACK_V1_CPP11_DEFINE_MAP_HPP
|
||||
|
||||
#include "msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp"
|
||||
#include "msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp"
|
||||
|
||||
#include <tuple>
|
||||
#include <map>
|
||||
@@ -34,7 +35,7 @@ struct define_map_imp {
|
||||
define_map_imp<Tuple, N-2>::unpack(o, t, kvmap);
|
||||
auto it = kvmap.find(std::get<N-2>(t));
|
||||
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) {
|
||||
@@ -71,6 +72,7 @@ struct define_map {
|
||||
if(o.type != msgpack::type::MAP) { throw msgpack::type_error(); }
|
||||
std::map<std::string, msgpack::object const*> kvmap;
|
||||
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(
|
||||
std::string(
|
||||
o.via.map.ptr[i].key.via.str.ptr,
|
||||
|
@@ -201,75 +201,91 @@ struct object<type::fix_int64> {
|
||||
|
||||
template <>
|
||||
struct object<type::fix_uint8> {
|
||||
void operator()(msgpack::object& o, type::fix_uint8 v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
||||
void operator()(msgpack::object& o, type::fix_uint8 v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v.get();
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object<type::fix_uint16> {
|
||||
void operator()(msgpack::object& o, type::fix_uint16 v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
||||
void operator()(msgpack::object& o, type::fix_uint16 v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v.get();
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object<type::fix_uint32> {
|
||||
void operator()(msgpack::object& o, type::fix_uint32 v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
||||
void operator()(msgpack::object& o, type::fix_uint32 v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v.get();
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object<type::fix_uint64> {
|
||||
void operator()(msgpack::object& o, type::fix_uint64 v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
|
||||
void operator()(msgpack::object& o, type::fix_uint64 v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v.get();
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_int8> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int8 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int8 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_int16> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int16 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int16 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_int32> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int32 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int32 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_int64> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int64 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_int64 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_uint8> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint8 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint8 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_uint16> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint16 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint16 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_uint32> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint32 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint32 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<type::fix_uint64> {
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint64 v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, type::fix_uint64 v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace adaptor
|
||||
|
@@ -82,7 +82,8 @@ struct object_char_sign<true> {
|
||||
template <>
|
||||
struct object_char_sign<false> {
|
||||
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 <>
|
||||
struct object<unsigned char> {
|
||||
void operator()(msgpack::object& o, unsigned char v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
||||
void operator()(msgpack::object& o, unsigned char v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object<unsigned short> {
|
||||
void operator()(msgpack::object& o, unsigned short v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
||||
void operator()(msgpack::object& o, unsigned short v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object<unsigned int> {
|
||||
void operator()(msgpack::object& o, unsigned int v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
||||
void operator()(msgpack::object& o, unsigned int v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object<unsigned long> {
|
||||
void operator()(msgpack::object& o, unsigned long v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
||||
void operator()(msgpack::object& o, unsigned long v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object<unsigned long long> {
|
||||
void operator()(msgpack::object& o, unsigned long long v) const
|
||||
{ o.type = msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
|
||||
void operator()(msgpack::object& o, unsigned long long v) const {
|
||||
o.type = msgpack::type::POSITIVE_INTEGER;
|
||||
o.via.u64 = v;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
template <>
|
||||
struct object_with_zone<char> {
|
||||
void operator()(msgpack::object::with_zone& o, char v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, char v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<signed char> {
|
||||
void operator()(msgpack::object::with_zone& o, signed char v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, signed char v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<signed short> {
|
||||
void operator()(msgpack::object::with_zone& o, signed short v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, signed short v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<signed int> {
|
||||
void operator()(msgpack::object::with_zone& o, signed int v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, signed int v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<signed long> {
|
||||
void operator()(msgpack::object::with_zone& o, signed long v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, signed long v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<signed long long> {
|
||||
void operator()(msgpack::object::with_zone& o, const signed long long& v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, const signed long long& v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<unsigned char> {
|
||||
void operator()(msgpack::object::with_zone& o, unsigned char v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, unsigned char v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<unsigned short> {
|
||||
void operator()(msgpack::object::with_zone& o, unsigned short v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, unsigned short v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<unsigned int> {
|
||||
void operator()(msgpack::object::with_zone& o, unsigned int v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, unsigned int v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<unsigned long> {
|
||||
void operator()(msgpack::object::with_zone& o, unsigned long v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, unsigned long v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct object_with_zone<unsigned long long> {
|
||||
void operator()(msgpack::object::with_zone& o, const unsigned long long& v) const
|
||||
{ static_cast<msgpack::object&>(o) << v; }
|
||||
void operator()(msgpack::object::with_zone& o, const unsigned long long& v) const {
|
||||
static_cast<msgpack::object&>(o) << v;
|
||||
}
|
||||
};
|
||||
|
||||
} // 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);
|
||||
|
||||
class object_parser;
|
||||
|
||||
template <typename Stream>
|
||||
struct object_pack_visitor;
|
||||
|
||||
struct object_stringize_visitor;
|
||||
|
||||
// obsolete
|
||||
template <typename 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>
|
||||
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
|
||||
} // MSGPACK_API_VERSION_NAMESPACE(v1)
|
||||
|
@@ -59,7 +59,7 @@ private:
|
||||
decltype(adaptor::as<U>()(std::declval<msgpack::object>())),
|
||||
T
|
||||
>::type;
|
||||
template <typename>
|
||||
template <typename...>
|
||||
static std::false_type check(...);
|
||||
public:
|
||||
using type = decltype(check<T>(MSGPACK_NULLPTR));
|
||||
|
@@ -848,7 +848,6 @@ class unpacker {
|
||||
public:
|
||||
/// 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 user_data This parameter is passed to f.
|
||||
* @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_exception.hpp"
|
||||
#include "msgpack/v2/create_object_visitor_decl.hpp"
|
||||
#include "msgpack/v2/null_visitor.hpp"
|
||||
|
||||
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
|
||||
#define MSGPACK_V2_NULL_VISITOR_HPP
|
||||
|
||||
#include "msgpack/versioning.hpp"
|
||||
#include "msgpack/cpp_config.hpp"
|
||||
#include "msgpack/v2/null_visitor_decl.hpp"
|
||||
|
||||
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
|
||||
|
||||
using v1::object_parser;
|
||||
using v1::object_pack_visitor;
|
||||
using v1::object_stringize_visitor;
|
||||
|
||||
using v1::operator==;
|
||||
using v1::operator!=;
|
||||
|
||||
|
@@ -91,7 +91,7 @@ private:
|
||||
v1::has_as<U>::value,
|
||||
std::true_type
|
||||
>::type;
|
||||
template <typename>
|
||||
template <typename...>
|
||||
static std::false_type check(...);
|
||||
public:
|
||||
using type = decltype(check<T>(MSGPACK_NULLPTR));
|
||||
|
@@ -22,6 +22,7 @@ using v1::packer;
|
||||
|
||||
using v1::pack;
|
||||
|
||||
|
||||
#if MSGPACK_ENDIAN_LITTLE_BYTE
|
||||
|
||||
using v1::take8_8;
|
||||
|
@@ -10,8 +10,14 @@
|
||||
#ifndef 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/v2/create_object_visitor.hpp"
|
||||
|
||||
namespace msgpack {
|
||||
|
||||
@@ -21,6 +27,10 @@ MSGPACK_API_VERSION_NAMESPACE(v2) {
|
||||
|
||||
namespace detail {
|
||||
|
||||
using v1::detail::fix_tag;
|
||||
using v1::detail::value;
|
||||
using v1::detail::load;
|
||||
|
||||
template <typename VisitorHolder>
|
||||
class context {
|
||||
public:
|
||||
@@ -621,11 +631,11 @@ class parser : public detail::context<VisitorHolder> {
|
||||
public:
|
||||
/// 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 user_data This parameter is passed to f.
|
||||
* @param hook The handler that is called when buffer is allocated internally.
|
||||
* `hook` should be callable with char* parameter.
|
||||
* `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 limit The size limit information of msgpack::object.
|
||||
*
|
||||
*/
|
||||
parser(ReferencedBufferHook& hook,
|
||||
@@ -998,23 +1008,23 @@ inline void parser<VisitorHolder, ReferencedBufferHook>::remove_nonparsed_buffer
|
||||
|
||||
template <typename Visitor>
|
||||
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;
|
||||
}
|
||||
|
||||
template <typename Visitor>
|
||||
inline bool parse(const char* data, size_t len, Visitor& v) {
|
||||
std::size_t off = 0;
|
||||
return parse(data, len, off, v);
|
||||
return msgpack::parse(data, len, off, v);
|
||||
}
|
||||
|
||||
namespace detail {
|
||||
|
||||
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_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& m_visitor;
|
||||
@@ -1057,5 +1067,6 @@ parse_imp(const char* data, size_t len, size_t& off, Visitor& v) {
|
||||
|
||||
} // namespace msgpack
|
||||
|
||||
#endif // MSGPACK_DEFAULT_API_VERSION >= 2
|
||||
|
||||
#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
|
||||
#define MSGPACK_V2_UNPACK_HPP
|
||||
|
||||
#if MSGPACK_DEFAULT_API_VERSION >= 2
|
||||
|
||||
#include "msgpack/unpack_decl.hpp"
|
||||
#include "msgpack/v2/create_object_visitor.hpp"
|
||||
#include "msgpack/v2/parse.hpp"
|
||||
#include "msgpack/parse.hpp"
|
||||
#include "msgpack/create_object_visitor.hpp"
|
||||
|
||||
namespace msgpack {
|
||||
|
||||
@@ -229,7 +231,7 @@ inline void unpack(
|
||||
inline void unpack(
|
||||
msgpack::object_handle& result,
|
||||
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)
|
||||
{
|
||||
bool referenced;
|
||||
@@ -341,5 +343,6 @@ unpack_imp(const char* data, std::size_t len, std::size_t& off,
|
||||
|
||||
} // namespace msgpack
|
||||
|
||||
#endif // MSGPACK_DEFAULT_API_VERSION >= 2
|
||||
|
||||
#endif // MSGPACK_V2_UNPACK_HPP
|
||||
|
@@ -100,7 +100,7 @@ class basic_unpacker;
|
||||
* @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,
|
||||
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.
|
||||
*
|
||||
*/
|
||||
object_handle unpack(
|
||||
msgpack::object_handle unpack(
|
||||
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());
|
||||
|
||||
@@ -132,7 +132,7 @@ object_handle unpack(
|
||||
* @return object_handle that contains unpacked data.
|
||||
*
|
||||
*/
|
||||
object_handle unpack(
|
||||
msgpack::object_handle unpack(
|
||||
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());
|
||||
|
||||
@@ -147,7 +147,7 @@ object_handle unpack(
|
||||
* @return object_handle that contains unpacked data.
|
||||
*
|
||||
*/
|
||||
object_handle unpack(
|
||||
msgpack::object_handle unpack(
|
||||
const char* data, std::size_t len,
|
||||
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(
|
||||
object_handle& result,
|
||||
msgpack::object_handle& result,
|
||||
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());
|
||||
|
||||
@@ -183,7 +183,7 @@ void unpack(
|
||||
*
|
||||
*/
|
||||
void unpack(
|
||||
object_handle& result,
|
||||
msgpack::object_handle& result,
|
||||
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());
|
||||
|
||||
@@ -200,7 +200,7 @@ void unpack(
|
||||
*
|
||||
*/
|
||||
void unpack(
|
||||
object_handle& result,
|
||||
msgpack::object_handle& result,
|
||||
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());
|
||||
|
||||
@@ -216,7 +216,7 @@ void unpack(
|
||||
*
|
||||
*/
|
||||
void unpack(
|
||||
object_handle& result,
|
||||
msgpack::object_handle& result,
|
||||
const char* data, std::size_t len,
|
||||
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,
|
||||
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 {
|
||||
|
||||
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_limit const& limit);
|
||||
|
||||
template <typename UnpackVisitor>
|
||||
parse_return
|
||||
parse_imp(const char* data, size_t len, size_t& off, UnpackVisitor& v);
|
||||
|
||||
} // detail
|
||||
|
||||
|
@@ -17,6 +17,7 @@
|
||||
#if BOOST_VERSION >= 106100
|
||||
|
||||
#include "msgpack/versioning.hpp"
|
||||
#include "msgpack/x3_parse_decl.hpp"
|
||||
|
||||
#if __GNUC__ >= 4
|
||||
#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
|
||||
|
||||
#include "msgpack/versioning.hpp"
|
||||
#include "msgpack/v2/create_object_visitor.hpp"
|
||||
#include "msgpack/v2/x3_parse.hpp"
|
||||
#include "msgpack/create_object_visitor.hpp"
|
||||
#include "msgpack/x3_unpack_decl.hpp"
|
||||
#include "msgpack/x3_parse.hpp"
|
||||
|
||||
namespace msgpack {
|
||||
|
||||
@@ -32,8 +33,8 @@ template <typename Iterator>
|
||||
inline 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())
|
||||
unpack_reference_func f, void* user_data,
|
||||
unpack_limit const& limit)
|
||||
{
|
||||
create_object_visitor v(f, user_data, limit);
|
||||
v.set_zone(result_zone);
|
||||
@@ -53,8 +54,8 @@ template <typename Iterator>
|
||||
inline 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())
|
||||
unpack_reference_func f, void* user_data,
|
||||
unpack_limit const& limit)
|
||||
{
|
||||
msgpack::object obj;
|
||||
msgpack::unique_ptr<msgpack::zone> z(new msgpack::zone);
|
||||
@@ -67,8 +68,8 @@ inline msgpack::object_handle unpack(
|
||||
template <typename Iterator>
|
||||
inline 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())
|
||||
unpack_reference_func f, void* user_data,
|
||||
unpack_limit const& limit)
|
||||
{
|
||||
bool referenced;
|
||||
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,
|
||||
Iterator&& begin, Iterator&& end,
|
||||
bool& referenced,
|
||||
unpack_reference_func f = MSGPACK_NULLPTR, void* user_data = MSGPACK_NULLPTR,
|
||||
unpack_limit const& limit = unpack_limit())
|
||||
unpack_reference_func f, void* user_data,
|
||||
unpack_limit const& limit)
|
||||
{
|
||||
msgpack::object obj;
|
||||
referenced = false;
|
||||
@@ -93,8 +94,8 @@ template <typename Iterator>
|
||||
inline 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())
|
||||
unpack_reference_func f, void* user_data,
|
||||
unpack_limit const& limit)
|
||||
{
|
||||
bool referenced;
|
||||
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