mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	Update zipkin to the newer version (#1205)
* Update zipkin to the newer version Also update thrift to use head commit Signed-off-by: Yong Tang <yong.tang.github@outlook.com> * Update vendor directory. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
		
							
								
								
									
										64
									
								
								vendor/github.com/apache/thrift/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/github.com/apache/thrift/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -21,6 +21,7 @@ | ||||
| *.swp | ||||
| *.hi | ||||
| *~ | ||||
| tags | ||||
|  | ||||
| .*project | ||||
| junit*.properties | ||||
| @@ -36,6 +37,8 @@ node_modules | ||||
| compile | ||||
| test-driver | ||||
| erl_crash.dump | ||||
| package-lock.json | ||||
| project.lock.json | ||||
|  | ||||
| .sonar | ||||
| .DS_Store | ||||
| @@ -101,6 +104,7 @@ erl_crash.dump | ||||
| /lib/cpp/src/thrift/stamp-h2 | ||||
| /lib/cpp/test/Benchmark | ||||
| /lib/cpp/test/AllProtocolsTest | ||||
| /lib/cpp/test/AnnotationTest | ||||
| /lib/cpp/test/DebugProtoTest | ||||
| /lib/cpp/test/DenseProtoTest | ||||
| /lib/cpp/test/EnumTest | ||||
| @@ -114,6 +118,7 @@ erl_crash.dump | ||||
| /lib/cpp/test/TFileTransportTest | ||||
| /lib/cpp/test/TInterruptTest | ||||
| /lib/cpp/test/TNonblockingServerTest | ||||
| /lib/cpp/test/TNonblockingSSLServerTest | ||||
| /lib/cpp/test/TPipedTransportTest | ||||
| /lib/cpp/test/TServerIntegrationTest | ||||
| /lib/cpp/test/TSocketInterruptTest | ||||
| @@ -149,6 +154,7 @@ erl_crash.dump | ||||
| /lib/c_glib/test/testframedtransport | ||||
| /lib/c_glib/test/testmemorybuffer | ||||
| /lib/c_glib/test/testoptionalrequired | ||||
| /lib/c_glib/test/testtransportsslsocket | ||||
| /lib/c_glib/test/testsimpleserver | ||||
| /lib/c_glib/test/teststruct | ||||
| /lib/c_glib/test/testthrifttest | ||||
| @@ -204,17 +210,26 @@ erl_crash.dump | ||||
| /lib/delphi/test/typeregistry/*.identcache | ||||
| /lib/delphi/test/typeregistry/*.local | ||||
| /lib/delphi/test/typeregistry/*.dcu | ||||
| /lib/erl/.generated | ||||
| /lib/erl/.eunit | ||||
| /lib/erl/ebin | ||||
| /lib/erl/.generated | ||||
| /lib/erl/.rebar/ | ||||
| /lib/erl/deps/ | ||||
| /lib/erl/ebin | ||||
| /lib/erl/src/thrift.app.src | ||||
| /lib/erl/test/*.hrl | ||||
| /lib/erl/test/*.beam | ||||
| /lib/erl/test/*.hrl | ||||
| /lib/erl/test/Thrift_omit_without.thrift | ||||
| /lib/haxe/test/bin | ||||
| /lib/hs/dist | ||||
| /lib/java/build | ||||
| /lib/js/dist | ||||
| /lib/js/doc | ||||
| /lib/js/package-lock.json | ||||
| /lib/js/test/build | ||||
| /lib/netcore/**/.vs | ||||
| /lib/netcore/**/bin | ||||
| /lib/netcore/**/obj | ||||
| /lib/netcore/**/gen-* | ||||
| /lib/nodejs/coverage | ||||
| /lib/nodejs/node_modules/ | ||||
| /lib/perl/MANIFEST | ||||
| @@ -254,8 +269,22 @@ erl_crash.dump | ||||
| /lib/php/test/packages/ | ||||
| /lib/py/dist/ | ||||
| /lib/erl/logs/ | ||||
| /lib/go/pkg | ||||
| /lib/go/src | ||||
| /lib/go/test/gopath/ | ||||
| /lib/go/test/ThriftTest.thrift | ||||
| /lib/rs/target/ | ||||
| /lib/rs/Cargo.lock | ||||
| /lib/rs/test/Cargo.lock | ||||
| /lib/rs/test/target/ | ||||
| /lib/rs/test/bin/ | ||||
| /lib/rs/test/src/base_one.rs | ||||
| /lib/rs/test/src/base_two.rs | ||||
| /lib/rs/test/src/midlayer.rs | ||||
| /lib/rs/test/src/recursive.rs | ||||
| /lib/rs/test/src/ultimate.rs | ||||
| /lib/rs/*.iml | ||||
| /lib/rs/**/*.iml | ||||
| /libtool | ||||
| /ltmain.sh | ||||
| /missing | ||||
| @@ -276,20 +305,36 @@ erl_crash.dump | ||||
| /test/log/ | ||||
| /test/test.log | ||||
| /test/erl/.generated | ||||
| /test/erl/.rebar | ||||
| /test/erl/ebin | ||||
| /test/go/bin/ | ||||
| /test/go/ThriftTest.thrift | ||||
| /test/go/gopath | ||||
| /test/go/pkg/ | ||||
| /test/go/src/code.google.com/ | ||||
| /test/go/src/common/mock_handler.go | ||||
| /test/go/src/github.com/golang/ | ||||
| /test/go/src/golang.org/ | ||||
| /test/go/src/gen/ | ||||
| /test/go/src/thrift | ||||
| /test/haxe/bin | ||||
| /test/hs/TestClient | ||||
| /test/hs/TestServer | ||||
| /test/php/php_ext_dir/ | ||||
| /test/py.twisted/_trial_temp/ | ||||
| /test/rb/Gemfile.lock | ||||
| /test/netcore/**/.vs | ||||
| /test/netcore/**/bin | ||||
| /test/netcore/**/obj | ||||
| /test/netcore/**/gen-* | ||||
| /test/netcore/Thrift | ||||
| /test/php/php_ext_dir/ | ||||
| /test/rs/Cargo.lock | ||||
| /test/rs/src/thrift_test.rs | ||||
| /test/rs/bin/ | ||||
| /test/rs/target/ | ||||
| /test/rs/*.iml | ||||
| /test/rs/**/*.iml | ||||
| /tutorial/cpp/TutorialClient | ||||
| /tutorial/cpp/TutorialServer | ||||
| /tutorial/c_glib/tutorial_client | ||||
| @@ -314,13 +359,26 @@ erl_crash.dump | ||||
| /tutorial/delphi/DelphiClient/*.identcache | ||||
| /tutorial/delphi/DelphiServer/*.identcache | ||||
| /tutorial/delphi/DelphiServer/*.local | ||||
| /tutorial/go/gopath | ||||
| /tutorial/go/go-tutorial | ||||
| /tutorial/go/calculator-remote | ||||
| /tutorial/go/src/shared | ||||
| /tutorial/go/src/tutorial | ||||
| /tutorial/go/src/git.apache.org | ||||
| /tutorial/go/src/golang.org | ||||
| /tutorial/haxe/bin | ||||
| /tutorial/hs/dist/ | ||||
| /tutorial/java/build/ | ||||
| /tutorial/js/build/ | ||||
| /tutorial/netcore/**/.vs | ||||
| /tutorial/netcore/**/bin | ||||
| /tutorial/netcore/**/obj | ||||
| /tutorial/netcore/**/gen-* | ||||
| /tutorial/netcore/Thrift | ||||
| /tutorial/rs/*.iml | ||||
| /tutorial/rs/src/shared.rs | ||||
| /tutorial/rs/src/tutorial.rs | ||||
| /tutorial/rs/bin | ||||
| /tutorial/rs/target | ||||
| /tutorial/rs/Cargo.lock | ||||
| /ylwrap | ||||
|   | ||||
							
								
								
									
										7
									
								
								vendor/github.com/apache/thrift/.rustfmt.toml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/apache/thrift/.rustfmt.toml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| max_width = 100 | ||||
| fn_args_layout = "Block" | ||||
| array_layout = "Block" | ||||
| where_style = "Rfc" | ||||
| generics_indent = "Block" | ||||
| fn_call_style = "Block" | ||||
| reorder_imported_names = true | ||||
							
								
								
									
										317
									
								
								vendor/github.com/apache/thrift/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										317
									
								
								vendor/github.com/apache/thrift/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,181 +19,178 @@ | ||||
|  | ||||
| # build Apache Thrift on Travis CI - https://travis-ci.org/ | ||||
|  | ||||
| # | ||||
| # Docker Integration | ||||
| # see: build/docker/README.md | ||||
| #  | ||||
|  | ||||
| sudo: required | ||||
| dist: trusty | ||||
| language: cpp | ||||
|  | ||||
| services: | ||||
|   - docker | ||||
|  | ||||
| install: | ||||
|   - (travis_wait ./build/docker/check_unmodified.sh $DISTRO && touch .unmodified) || true | ||||
|   - if [ ! -f .unmodified ]; then travis_retry travis_wait docker build -q -t thrift-build:$DISTRO build/docker/$DISTRO; fi | ||||
|   - if [[ `uname` == "Linux" ]]; then build/docker/refresh.sh; fi | ||||
|  | ||||
| script: | ||||
|   - docker run --net=host -e BUILD_LIBS="$BUILD_LIBS" $BUILD_ENV -v $(pwd):/thrift/src -it thrift-build:$DISTRO build/docker/scripts/$SCRIPT $BUILD_ARG | ||||
| stages: | ||||
| # - osx       # up front for now (for testing) | ||||
|   - docker    # docker images | ||||
|   - thrift    # thrift build jobs | ||||
|  | ||||
| env: | ||||
|   global: | ||||
|     - TEST_NAME="" | ||||
|     - SCRIPT="cmake.sh" | ||||
|     - BUILD_ARG="" | ||||
|     - BUILD_ENV="-e CC=clang -e CXX=clang++" | ||||
|     - DISTRO=ubuntu | ||||
|     - DISTRO=ubuntu-xenial | ||||
|     - BUILD_LIBS="CPP C_GLIB HASKELL JAVA PYTHON TESTING TUTORIALS"  # only meaningful for CMake builds | ||||
|     - TRAVIS_BUILD_STAGE=test | ||||
|     # DOCKER_REPO (this works for all builds as a source for docker images - you can override for fork builds in your Travis settings) | ||||
|     - DOCKER_REPO="thrift/thrift-build" | ||||
|     # DOCKER_USER (provide in your Travis settings if you want to build and update docker images once, instead of on every job) | ||||
|     # DOCKER_PASS (same) | ||||
|  | ||||
|   matrix: | ||||
|     - TEST_NAME="Cross Language Tests (Binary and Header Protocols)" | ||||
|       SCRIPT="cross-test.sh" | ||||
|       BUILD_ARG="-'(binary|header)'" | ||||
|       BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|  | ||||
|     - TEST_NAME="Cross Language Tests (Debian) (Binary and Header Protocols)" | ||||
|       SCRIPT="cross-test.sh" | ||||
|       BUILD_ARG="-'(binary|header)'" | ||||
|       BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|       DISTRO=debian | ||||
|  | ||||
|     - TEST_NAME="Cross Language Tests (Compact and JSON Protocols)" | ||||
|       SCRIPT="cross-test.sh" | ||||
|       BUILD_ARG="-'(compact|json)'" | ||||
|       BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|  | ||||
|     - TEST_NAME="Cross Language Tests (Debian) (Compact and JSON Protocols)" | ||||
|       SCRIPT="cross-test.sh" | ||||
|       BUILD_ARG="-'(compact|json)'" | ||||
|       BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|       DISTRO=debian | ||||
|  | ||||
|     # TODO: Remove them once migrated to CMake | ||||
|     # Autotools builds | ||||
|     - TEST_NAME="C C++ C# D Erlang Haxe Go (automake)" | ||||
|       SCRIPT="autotools.sh" | ||||
|       BUILD_ARG="--without-dart --without-haskell --without-java --without-lua --without-nodejs --without-perl --without-php --without-php_extension --without-python --without-ruby" | ||||
|  | ||||
|     - TEST_NAME="C C++ - GCC (automake)" | ||||
|       SCRIPT="autotools.sh" | ||||
|       BUILD_ARG="--without-csharp --without-java --without-erlang --without-nodejs --without-lua --without-python --without-perl --without-php --without-php_extension --without-dart --without-ruby --without-haskell --without-go --without-haxe --without-d" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - TEST_NAME="Java Lua PHP Ruby Dart (automake)" | ||||
|       SCRIPT="autotools.sh" | ||||
|       BUILD_ARG="--without-cpp --without-haskell --without-c_glib --without-csharp --without-d --without-erlang --without-go --without-haxe --without-nodejs --without-python --without-perl" | ||||
|  | ||||
|     # These are flaky (due to cabal and npm network/server failures) and also have lengthy output | ||||
|     - TEST_NAME="Haskell Node.js Python Perl (automake)" | ||||
|       SCRIPT="autotools.sh" | ||||
|       BUILD_ARG="--without-cpp --without-c_glib --without-csharp --without-d --without-dart --without-erlang --without-go --without-haxe --without-java --without-lua --without-php --without-php_extension --without-ruby" | ||||
|  | ||||
|     # CMake build | ||||
|     - TEST_NAME="All" | ||||
|  | ||||
|     - TEST_NAME="All (Debian)" | ||||
|       DISTRO=debian | ||||
|  | ||||
|     - TEST_NAME="C C++ - GCC" | ||||
|       BUILD_LIBS="CPP C_GLIB TESTING TUTORIALS" | ||||
|       BUILD_ARG="-DWITH_PYTHON=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - TEST_NAME="C++ (Boost Thread)" | ||||
|       BUILD_LIBS="CPP TESTING TUTORIALS" | ||||
|       BUILD_ARG="-DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|  | ||||
|     - TEST_NAME="C++ (Boost Thread - GCC)" | ||||
|       BUILD_LIBS="CPP TESTING TUTORIALS" | ||||
|       BUILD_ARG="-DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - TEST_NAME="C++ (Std Thread)" | ||||
|       BUILD_LIBS="CPP TESTING TUTORIALS" | ||||
|       BUILD_ARG="-DWITH_STDTHREADS=ON -DCMAKE_CXX_FLAGS='-std=c++11' -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|  | ||||
|     - TEST_NAME="C++ (Std Thread - GCC)" | ||||
|       BUILD_LIBS="CPP TESTING TUTORIALS" | ||||
|       BUILD_ARG="-DWITH_STDTHREADS=ON -DCMAKE_CXX_FLAGS='-std=c++11' -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - TEST_NAME="Compiler (mingw)" | ||||
|       BUILD_LIBS="" | ||||
|       BUILD_ARG="-DCMAKE_TOOLCHAIN_FILE=../build/cmake/mingw32-toolchain.cmake -DBUILD_COMPILER=ON -DBUILD_LIBRARIES=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF" | ||||
|       BUILD_ENV="" | ||||
|  | ||||
|     - TEST_NAME="All - GCC (CentOS)" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|       DISTRO=centos | ||||
|  | ||||
|     - TEST_NAME="C C++ - Clang (CentOS)" | ||||
|       BUILD_LIBS="CPP C_GLIB TESTING TUTORIALS" | ||||
|       BUILD_ARG="-DWITH_PYTHON=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|       DISTRO=centos | ||||
|  | ||||
|     - TEST_NAME="Python 2.6 (CentOS 6)" | ||||
|       BUILD_LIBS="PYTHON TESTING TUTORIALS" | ||||
|       BUILD_ARG="-DWITH_PYTHON=ON -DWITH_CPP=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|       DISTRO=centos6 | ||||
|  | ||||
|     # Distribution | ||||
|     - TEST_NAME="make dist" | ||||
|       SCRIPT="make-dist.sh" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - TEST_NAME="Debian Packages" | ||||
|       SCRIPT="dpkg.sh" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - TEST_NAME="make dist (Debian)" | ||||
|       SCRIPT="make-dist.sh" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|       DISTRO=debian | ||||
|  | ||||
|     - TEST_NAME="Debian Packages (Debian)" | ||||
|       SCRIPT="dpkg.sh" | ||||
|       BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|       DISTRO=debian | ||||
|  | ||||
| matrix: | ||||
| jobs: | ||||
|   include: | ||||
|     # ------------------------- phase: osx -------------------------- | ||||
|     # - stage: osx | ||||
|     #   os: osx | ||||
|     #   osx_image: xcode9 | ||||
|     #   script: build/docker/scripts/autotools.sh | ||||
|  | ||||
|     # ========================= stage: docker ========================= | ||||
|     - stage: docker | ||||
|       script: true | ||||
|       env: | ||||
|         - JOB="Docker Build ubuntu-trusty 14.04" | ||||
|         - DISTRO=ubuntu-trusty | ||||
|         - TRAVIS_BUILD_STAGE=docker | ||||
|     - script: true | ||||
|       env: | ||||
|         - JOB="Docker Build ubuntu-xenial 16.04" | ||||
|         - DISTRO=ubuntu-xenial | ||||
|         - TRAVIS_BUILD_STAGE=docker | ||||
|     - script: true | ||||
|       env: | ||||
|         - JOB="Docker Build ubuntu-artful 17.10" | ||||
|         - DISTRO=ubuntu-artful | ||||
|         - TRAVIS_BUILD_STAGE=docker | ||||
|  | ||||
|     # ========================= stage: thrift ======================= | ||||
|     # ------------------------- phase: cross ------------------------ | ||||
|     # apache/thrift official PR builds can exceed 50 minutes per job so combine all cross tests | ||||
|     - stage: thrift | ||||
|       script: build/docker/run.sh | ||||
|       if: repo = apache/thrift | ||||
|       env: | ||||
|         - JOB="Cross Language Tests" | ||||
|         - SCRIPT="cross-test.sh" | ||||
|         - BUILD_ARG="" | ||||
|         - BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|  | ||||
|     # fork based PR builds cannot exceed 50 minutes per job | ||||
|     - stage: thrift | ||||
|       script: build/docker/run.sh | ||||
|       if: repo != apache/thrift | ||||
|       env: | ||||
|         - JOB="Cross Language Tests (Binary Protocol)" | ||||
|         - SCRIPT="cross-test.sh" | ||||
|         - BUILD_ARG="-'(binary)'" | ||||
|         - BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|  | ||||
|     - stage: thrift | ||||
|       script: build/docker/run.sh | ||||
|       if: repo != apache/thrift | ||||
|       env: | ||||
|         - JOB="Cross Language Tests (Header, JSON Protocols)" | ||||
|         - SCRIPT="cross-test.sh" | ||||
|         - BUILD_ARG="-'(header|json)'" | ||||
|         - BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|  | ||||
|     - stage: thrift | ||||
|       script: build/docker/run.sh | ||||
|       if: repo != apache/thrift | ||||
|       env: | ||||
|         - JOB="Cross Language Tests (Compact and Multiplexed Protocols)" | ||||
|         - SCRIPT="cross-test.sh" | ||||
|         - BUILD_ARG="-'(compact|multiplexed)'" | ||||
|         - BUILD_ENV="-e CC=clang -e CXX=clang++ -e THRIFT_CROSSTEST_CONCURRENCY=4" | ||||
|  | ||||
|     # ------------------------- phase: sca -------------------------- | ||||
|     # QA jobs for code analytics and metrics | ||||
|     # | ||||
|     # C/C++ static code analysis with cppcheck | ||||
|     # add --error-exitcode=1 to --enable=all as soon as everything is fixed | ||||
|     # | ||||
|     # Python code style check with flake8 | ||||
|     # | ||||
|     # search for TODO etc within source tree | ||||
|     # some statistics about the code base | ||||
|     # some info about the build machine | ||||
|     - env: TEST_NAME="cppcheck, flake8, TODO FIXME HACK, LoC and system info" | ||||
|       install: | ||||
|         - travis_retry sudo apt-get update | ||||
|         - travis_retry sudo apt-get install -ym cppcheck sloccount python-flake8 | ||||
|       script: | ||||
|         # Compiler cppcheck (All) | ||||
|         - cppcheck --force --quiet --inline-suppr --enable=all -j2 compiler/cpp/src | ||||
|         # C++ cppcheck (All) | ||||
|         - cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp | ||||
|         # C Glib cppcheck (All) | ||||
|         - cppcheck --force --quiet --inline-suppr --enable=all -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib | ||||
|         # Silent error checks | ||||
|         - cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 compiler/cpp/src | ||||
|         - cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/cpp/src lib/cpp/test test/cpp tutorial/cpp | ||||
|         - cppcheck --force --quiet --inline-suppr --error-exitcode=1 -j2 lib/c_glib/src lib/c_glib/test test/c_glib/src tutorial/c_glib | ||||
|         # Python code style | ||||
|         - flake8 --ignore=E501 lib/py | ||||
|         - flake8 tutorial/py | ||||
|         - flake8 --ignore=E501 test/py | ||||
|         - flake8 test/py.twisted | ||||
|         - flake8 test/py.tornado | ||||
|         - flake8 --ignore=E501 test/test.py | ||||
|         - flake8 --ignore=E501 test/crossrunner | ||||
|         - flake8 test/features | ||||
|         # TODO etc | ||||
|         - grep -r TODO * | ||||
|         - grep -r FIXME * | ||||
|         - grep -r HACK * | ||||
|         # LoC | ||||
|         - sloccount . | ||||
|         # System Info | ||||
|         - dpkg -l | ||||
|         - uname -a | ||||
|     - stage: thrift | ||||
|       script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="Static Code Analysis" | ||||
|         - SCRIPT="sca.sh" | ||||
|         - DISTRO=ubuntu-artful | ||||
|  | ||||
|     # C and C++ undefined behavior. | ||||
|     # A binary crashes if undefined behavior occurs and produces a stack trace. | ||||
|     # python is disabled, see: THRIFT-4360 | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="UBSan" | ||||
|         - SCRIPT="ubsan.sh" | ||||
|         - DISTRO=ubuntu-artful | ||||
|         - BUILD_ARG="--without-python --without-py3" | ||||
|  | ||||
|     # ------------------------- phase: cmake ------------------------ | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="CMake (Ubuntu Xenial)" | ||||
|  | ||||
|     # C++ specific options: compiler plug-in, threading model | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="C++98 (Boost Thread)" | ||||
|         - SCRIPT="cmake.sh" | ||||
|         - BUILD_LIBS="CPP TESTING TUTORIALS" | ||||
|         - BUILD_ARG="-DCMAKE_CXX_STANDARD=98 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF --DWITH_BOOSTTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|         - BUILD_ENV="" | ||||
|  | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="C++ (Std Thread) and Plugin" | ||||
|         - SCRIPT="cmake.sh" | ||||
|         - BUILD_LIBS="CPP TESTING TUTORIALS" | ||||
|         - BUILD_ARG="-DWITH_PLUGIN=ON -DWITH_STDTHREADS=ON -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DWITH_JAVA=OFF -DWITH_HASKELL=OFF" | ||||
|         - BUILD_ENV="-e CC=clang -e CXX=clang++" | ||||
|  | ||||
|     # ------------------------- phase: autotools -------------------- | ||||
|     # TODO: Remove them once migrated to CMake | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="Autotools (Ubuntu Artful)" | ||||
|         - DISTRO=ubuntu-artful | ||||
|         - SCRIPT="autotools.sh" | ||||
|         - BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="Autotools (Ubuntu Xenial)" | ||||
|         - DISTRO=ubuntu-xenial | ||||
|         - SCRIPT="autotools.sh" | ||||
|         - BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="Autotools (Ubuntu Trusty)" | ||||
|         - DISTRO=ubuntu-trusty | ||||
|         - SCRIPT="autotools.sh" | ||||
|         - BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     # ------------------------- phase: dist ------------------------- | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="make dist" | ||||
|         - SCRIPT="make-dist.sh" | ||||
|         - BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|  | ||||
|     - script: build/docker/run.sh | ||||
|       env: | ||||
|         - JOB="Debian Packages" | ||||
|         - SCRIPT="dpkg.sh" | ||||
|         - BUILD_ENV="-e CC=gcc -e CXX=g++" | ||||
|   | ||||
							
								
								
									
										9
									
								
								vendor/github.com/apache/thrift/CMakeLists.txt
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/apache/thrift/CMakeLists.txt
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -17,7 +17,14 @@ | ||||
| # under the License. | ||||
| # | ||||
|  | ||||
| cmake_minimum_required(VERSION 2.8.12) | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
|  | ||||
| # CMake 3.1 supports C++ standards selection with CMAKE_CXX_STANDARD | ||||
| # If you need CMake 3.1+ for Ubuntu 14.04, try | ||||
| #   https://launchpad.net/~george-edison55/+archive/ubuntu/cmake-3.x | ||||
| # If you need CMake 3.1+ for debian "jessie", get it from jessie-backports | ||||
| # Otherwise | ||||
| #   http://cmake.org | ||||
|  | ||||
| project("Apache Thrift") | ||||
|  | ||||
|   | ||||
							
								
								
									
										130
									
								
								vendor/github.com/apache/thrift/CONTRIBUTING.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										130
									
								
								vendor/github.com/apache/thrift/CONTRIBUTING.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,49 +1,91 @@ | ||||
| ## How to contribute | ||||
|  1. Help to review and verify existing patches | ||||
|  1. Make sure your issue is not all ready in the [Jira issue tracker](http://issues.apache.org/jira/browse/THRIFT) | ||||
|  1. If not, create a ticket describing the change you're proposing in the [Jira issue tracker](http://issues.apache.org/jira/browse/THRIFT) | ||||
|  1. Contribute your patch using one of the two methods below | ||||
| # How to Contribute # | ||||
|  | ||||
| ### Contributing via a patch | ||||
|  | ||||
| 1. Check out the latest version of the source code | ||||
|  | ||||
|   * git clone https://git-wip-us.apache.org/repos/asf/thrift.git thrift | ||||
|  | ||||
| 1. Modify the source to include the improvement/bugfix | ||||
|  | ||||
|   * Remember to provide *tests* for all submited changes | ||||
|   * When bugfixing: add test that will isolate bug *before* applying change that fixes it | ||||
|   * Verify that you follow [Thrift Coding Standards](/docs/coding_standards) (you can run 'make style', which ensures proper format for some languages) | ||||
|  | ||||
| 1. Create a patch from project root directory (e.g. you@dev:~/thrift $ ): | ||||
|  | ||||
|   * git diff > ../thrift-XXX-my-new-feature.patch | ||||
|  | ||||
| 1. Attach the newly generated patch to the issue | ||||
| 1. Wait for other contributors or committers to review your new addition | ||||
| 1. Wait for a committer to commit your patch | ||||
|  | ||||
| ### Contributing via GitHub pull requests | ||||
|  | ||||
| 1. Create a fork for http://github.com/apache/thrift | ||||
| 1. Create a branch for your changes(best practice is issue as branch name, e.g. THRIFT-9999) | ||||
| 1. Modify the source to include the improvement/bugfix | ||||
|  | ||||
|   * Remember to provide *tests* for all submited changes | ||||
|   * When bugfixing: add test that will isolate bug *before* applying change that fixes it | ||||
|   * Verify that you follow [Thrift Coding Standards](/docs/coding_standards) (you can run 'make style', which ensures proper format for some languages) | ||||
|   * Verify that your change works on other platforms by adding a GitHub service hook to [Travis CI](http://docs.travis-ci.com/user/getting-started/#Step-one%3A-Sign-in) and [AppVeyor](http://www.appveyor.com/docs) | ||||
|  | ||||
| 1. Commit and push changes to your branch (please use issue name and description as commit title, e.g. THRIFT-9999 make it perfect) | ||||
| 1. Issue a pull request with the jira ticket number you are working on in it's name | ||||
| 1. Wait for other contributors or committers to review your new addition | ||||
| 1. Wait for a committer to commit your patch | ||||
|  | ||||
| ### More info | ||||
|  | ||||
|  Plenty of information on why and how to contribute is available on the Apache Software Foundation (ASF) web site. In particular, we recommend the following: | ||||
| Thank you for your interest in contributing to the Apache Thrift project!  Information on why and how to contribute is available on the Apache Software Foundation (ASF) web site. In particular, we recommend the following to become acquainted with Apache Contributions: | ||||
|  | ||||
|  * [Contributors Tech Guide](http://www.apache.org/dev/contributors) | ||||
|  * [Get involved!](http://www.apache.org/foundation/getinvolved.html) | ||||
|  * [Legal aspects on Submission of Contributions (Patches)](http://www.apache.org/licenses/LICENSE-2.0.html#contributions) | ||||
|  | ||||
| ## If you want to review open issues... ## | ||||
|  | ||||
|  1. Review the [GitHub Pull Request Backlog](https://github.com/apache/thrift/pulls).  Code reviews are open to all. | ||||
|  2. Review the [Jira issue tracker](http://issues.apache.org/jira/browse/THRIFT).  You can search for tickets relating to languages you are interested in or currently using with thrift, for example a Jira search (Issues -> Search For Issues) query of ``project = THRIFT AND component in ("Erlang - Library") and status not in (resolved, closed)`` will locate all the open Erlang Library issues. | ||||
|  | ||||
| ## If you discovered a defect... ## | ||||
|  | ||||
|  1. Check to see if the issue is already in the [Jira issue tracker](http://issues.apache.org/jira/browse/THRIFT). | ||||
|  1. If not, create a ticket describing the change you're proposing in the Jira issue tracker. | ||||
|  1. Contribute your code changes using the GitHub pull request method: | ||||
|  | ||||
| ## Contributing via GitHub pull requests ## | ||||
|  | ||||
| This is the preferred method of submitting changes.  When you submit a pull request through github, it activates the continuous integration (CI) build systems at Appveyor and Travis to build your changes on a variety of Windows and Linux configurations and run all the test suites. | ||||
|  | ||||
|  1. Create a fork in your GitHub account of http://github.com/apache/thrift | ||||
|  1. Clone the fork to your development system. | ||||
|  1. Create a branch for your changes (best practice is issue as branch name, e.g. THRIFT-9999). | ||||
|  1. Modify the source to include the improvement/bugfix, and: | ||||
|  | ||||
|     * Remember to provide *tests* for all submitted changes! | ||||
|     * Use test-driven development (TDD): add a test that will isolate the bug *before* applying a  change that fixes it. | ||||
|     * Verify that you follow [Thrift Coding Standards](/docs/coding_standards) (you can run 'make style', which ensures proper format for some languages). | ||||
|     * [*optional*] Verify that your change works on other platforms by adding a GitHub service hook to [Travis CI](http://docs.travis-ci.com/user/getting-started/#Step-one%3A-Sign-in) and [AppVeyor](http://www.appveyor.com/docs).  You can use this technique to run the Thrift CI jobs in your account to check your changes before they are made public.  Every GitHub pull request into Thrift will run the full CI build and test suite on your changes. | ||||
|  | ||||
|  1. Squash your changes to a single commit.  This is very important as it makes the process of applying your commit upstream much easier. | ||||
|  1. Commit and push changes to your branch (please use issue name and description as commit title, e.g. "THRIFT-9999: make it perfect"). | ||||
|  1. Use GitHub to create a pull request going from your branch to apache:master.  Ensure that the Jira ticket number is at the beginning of the title of your pull request, same as the commit title. | ||||
|  1. Wait for other contributors or committers to review your new addition, and for a CI build to complete. | ||||
|  1. Wait for a committer to commit your patch.  You can nudge the committers if necessary by sending a message to the [Apache Thrift mailing list](https://thrift.apache.org/mailing). | ||||
|  | ||||
| ## Contributing via Patch ## | ||||
|  | ||||
| Some changes do not require a build, for example in documentation.  For changes that are not code or build related, you can submit a patch on Jira for review.  To create a patch from changes in your local directory: | ||||
|  | ||||
|     git diff > ../THRIFT-NNNN.patch | ||||
|  | ||||
| then wait for contributors or committers to review your changes, and then for a committer to apply your patch. | ||||
|  | ||||
| ## GitHub recipes for Pull Requests ## | ||||
|  | ||||
| Sometimes commmitters may ask you to take actions in your pull requests.  Here are some recipes that will help you accomplish those requests.  These examples assume you are working on Jira issue THRIFT-9999.  You should also be familiar with the [upstream](https://help.github.com/articles/syncing-a-fork/) repository concept. | ||||
|  | ||||
| ### Squash your changes ### | ||||
|  | ||||
| If you have not submitted a pull request yet, or if you have not yet rebased your existing pull request, you can squash all your commits down to a single commit.  This makes life easier for the committers.  If your pull request on GitHub has more than one commit, you should do this. | ||||
|  | ||||
| 1. Use the command ``git log`` to identify how many commits you made since you began. | ||||
| 2. Use the command ``git rebase -i HEAD~N`` where N is the number of commits. | ||||
| 3. Leave "pull" in the first line. | ||||
| 4. Change all other lines from "pull" to "fixup". | ||||
| 5. All your changes are now in a single commit. | ||||
|  | ||||
| If you already have a pull request outstanding, you will need to do a "force push" to overwrite it since you changed your commit history: | ||||
|  | ||||
|     git push -u origin THRIFT-9999 --force | ||||
|  | ||||
| A more detailed walkthrough of a squash can be found at [Git Ready](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html). | ||||
|  | ||||
| ### Rebase your pull request ### | ||||
|  | ||||
| If your pull request has a conflict with master, it needs to be rebased: | ||||
|  | ||||
|     git checkout THRIFT-9999 | ||||
|     git rebase upstream master | ||||
|       (resolve any conflicts, make sure it builds) | ||||
|     git push -u origin THRIFT-9999 --force | ||||
|  | ||||
| ### Fix a bad merge ### | ||||
|  | ||||
| If your pull request contains commits that are not yours, then you should use the following technique to fix the bad merge in your branch: | ||||
|  | ||||
|     git checkout master | ||||
|     git pull upstream master | ||||
|     git checkout -b THRIFT-9999-take-2 | ||||
|     git cherry-pick ... | ||||
|         (pick only your commits from your original pull request in ascending chronological order) | ||||
|     squash your changes to a single commit if there is more than one (see above) | ||||
|     git push -u origin THRIFT-9999-take-2:THRIFT-9999 | ||||
|  | ||||
| This procedure will apply only your commits in order to the current master, then you will squash them to a single commit, and then you force push your local THRIFT-9999-take-2 into remote THRIFT-9999 which represents your pull request, replacing all the commits with the new one. | ||||
|  | ||||
|   | ||||
|   | ||||
							
								
								
									
										61
									
								
								vendor/github.com/apache/thrift/Dockerfile
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										61
									
								
								vendor/github.com/apache/thrift/Dockerfile
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,61 +0,0 @@ | ||||
| # Licensed to the Apache Software Foundation (ASF) under one | ||||
| # or more contributor license agreements. See the NOTICE file | ||||
| # distributed with this work for additional information | ||||
| # regarding copyright ownership. The ASF licenses this file | ||||
| # to you under the Apache License, Version 2.0 (the | ||||
| # "License"); you may not use this file except in compliance | ||||
| # with the License. You may obtain a copy of the License at | ||||
| # | ||||
| #   http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, | ||||
| # software distributed under the License is distributed on an | ||||
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
| # KIND, either express or implied. See the License for the | ||||
| # specific language governing permissions and limitations | ||||
| # under the License. | ||||
| # | ||||
|  | ||||
| # Goal: provide a thrift-compiler Docker image | ||||
| # | ||||
| # Usage: | ||||
| #   docker run -v "${PWD}:/data" thrift/thrift-compiler  -gen cpp -o /data/ /data/test/ThriftTest.thrift | ||||
| # | ||||
| # further details on docker for thrift is here build/docker/ | ||||
| # | ||||
| # TODO: push to apache/thrift-compiler instead of thrift/thrift-compiler | ||||
|  | ||||
| FROM debian:jessie | ||||
| MAINTAINER Apache Thrift <dev@thrift.apache.org> | ||||
|  | ||||
| ENV DEBIAN_FRONTEND noninteractive | ||||
|  | ||||
| ADD . /thrift | ||||
|  | ||||
| RUN buildDeps=" \ | ||||
|         flex \ | ||||
|         bison \ | ||||
|         g++ \ | ||||
|         make \ | ||||
|         cmake \ | ||||
|         curl \ | ||||
|         "; \ | ||||
|     apt-get update && apt-get install -y --no-install-recommends $buildDeps \ | ||||
|     && mkdir /tmp/cmake-build && cd /tmp/cmake-build \ | ||||
|     && cmake \ | ||||
|        -DBUILD_COMPILER=ON \ | ||||
|        -DBUILD_LIBRARIES=OFF \ | ||||
|        -DBUILD_TESTING=OFF \ | ||||
|        -DBUILD_EXAMPLES=OFF \ | ||||
|        /thrift \ | ||||
|     && cmake --build . --config Release \ | ||||
|     && make install \ | ||||
|     && curl -k -sSL "https://storage.googleapis.com/golang/go1.5.2.linux-amd64.tar.gz" -o /tmp/go.tar.gz \ | ||||
|     && tar xzf /tmp/go.tar.gz -C /tmp \ | ||||
|     && cp /tmp/go/bin/gofmt /usr/bin/gofmt \ | ||||
|     && apt-get purge -y --auto-remove $buildDeps \ | ||||
|     && apt-get clean \ | ||||
|     && rm -rf /tmp/* \ | ||||
|     && rm -rf /var/lib/apt/lists/* | ||||
|  | ||||
| ENTRYPOINT ["thrift"] | ||||
							
								
								
									
										305
									
								
								vendor/github.com/apache/thrift/LANGUAGES.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										305
									
								
								vendor/github.com/apache/thrift/LANGUAGES.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,305 @@ | ||||
| # Apache Thrift Language Support # | ||||
|  | ||||
| Last Modified: 2017-10-05<br> | ||||
| Version: 0.10.0+ | ||||
|  | ||||
| Thrift supports many programming languages and has an impressive test suite that exercises most of the languages, protocols, and transports that represents a matrix of thousands of possible combinations.  Each language typically has a minimum required version as well as support libraries - some mandatory and some optional.  All of this information is provided below to help you assess whether you can use Apache Thrift with your project.  Obviously this is a complex matrix to maintain and may not be correct in all cases - if you spot an error please inform the developers using the mailing list. | ||||
|  | ||||
| Apache Thrift has a choice of two build systems.  The `autoconf` build system is the most complete build and is used to build all supported languages.  The `cmake` build system has been designated by the project to replace `autoconf` however this transition will take quite some time to complete.  | ||||
|  | ||||
| The Language/Library Levels indicate the minimum and maximum versions that are used in the [continuous integration environments](build/docker/README.md) (Appveyor, Travis) for Apache Thrift.  Note that while a language may contain support for protocols, transports, and servers, the extent to which each is tested as part of the overall build process varies.  The definitive integration test for the project is called the "cross" test which executes a test matrix with clients and servers communicating across languages. | ||||
|  | ||||
| <table style="font-size: 65%; padding: 1px;"> | ||||
| <thead> | ||||
| <tr> | ||||
| <th rowspan=2>Language</th> | ||||
| <th colspan=2 align=center>Build Systems</th> | ||||
| <th colspan=2 align=center>Lang/Lib Levels</th> | ||||
| <th colspan=6 align=center>Low-Level Transports</th> | ||||
| <th colspan=3 align=center>Transport Wrappers</th> | ||||
| <th colspan=4 align=center>Protocols</th> | ||||
| <th colspan=5 align=center>Servers</th> | ||||
| <th rowspan=2>Open Issues</th> | ||||
| </tr> | ||||
| <tr> | ||||
| <!-- Build Systems ---------><th>autoconf</th><th>cmake</th> | ||||
| <!-- Lang/Lib Levels -------><th>Min</th><th>Max</th> | ||||
| <!-- Low-Level Transports --><th><a href="https://en.wikipedia.org/wiki/Unix_domain_socket">Domain</a></th><th> File </th><th>Memory</th><th> Pipe </th><th>Socket</th><th> TLS </th> | ||||
| <!-- Transport Wrappers ----><th>Framed</th><th> http </th><th> zlib </th> | ||||
| <!-- Protocols -------------><th><a href="doc/specs/thrift-binary-protocol.md">Binary</a></th><th><a href="doc/specs/thrift-compact-protocol.md">Compact</a></th><th> JSON </th><th>Multiplex</th> | ||||
| <!-- Servers ---------------><th>Forking</th><th>Nonblocking</th><th>Simple</th><th>Threaded</th><th>ThreadPool</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/as3/README.md">ActionScript</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td colspan=2>ActionScript 3</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12313722">ActionScript</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/c_glib/README.md">C (glib)</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Language Levels -------><td>2.40.2</td><td>2.54.0</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12313854">C (glib)</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/cpp/README.md">C++</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Language Levels -------><td colspan=2>C++98, gcc </td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312313">C++</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/csharp/README.md">C#</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>.NET 3.5 / mono 3.2.8.0</td><td>.NET 4.6.1 / mono 4.6.2.7</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312362">C# (.NET)</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/cocoa/README.md">Cocoa</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td colspan=2>unknown</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312398">Cocoa</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/d/README.md">D</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>2.070.2</td><td>2.076.0</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12317904">D</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/dart/README.md">Dart</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>1.20.1</td><td>1.24.2</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12328006">Dart</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/delphi/README.md">Delphi</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>2010</td><td>unknown</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12316601">Delphi</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/netcore/README.md">.NET Core</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td colspan=2>2.0.0</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12331176">.NET Core</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/erl/README.md">Erlang</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>R16B03</td><td>20.0.4</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312390">Erlang</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/go/README.md">Go</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>1.2.1</td><td>1.8.3</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12314307">Go</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/hs/README.md">Haskell</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Language Levels -------><td>7.6.3</td><td>8.0.2</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312704">Haskell</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/haxe/README.md">Haxe</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td colspan=2>3.2.1</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12324347">Haxe</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/java/README.md">Java (SE)</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Language Levels -------><td>1.7.0_151</td><td>1.8.0_144</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312314">Java SE</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/javame/README.md">Java (ME)</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td colspan=2>unknown</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12313759">Java ME</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/js/README.md">Javascript</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td colspan=2>unknown</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12313418">Javascript</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/lua/README.md">Lua</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>5.1.5</td><td>5.3.3</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12322659">Lua</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/nodejs/README.md">node.js</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>4.2.6</td><td>8.8.1</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12314320">node.js</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/ocaml/README.md">OCaml</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>4.02.3</td><td>4.04.0</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12313660">OCaml</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/perl/README.md">Perl</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>5.18.2</td><td>5.26.0</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312312">Perl</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/php/README.md">PHP</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>5.5.9</td><td>7.1.8</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312431">PHP</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/py/README.md">Python</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Language Levels -------><td>2.7.6, 3.4.3</td><td>2.7.14, 3.6.3</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312315">Python</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/rb/README.md">Ruby</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>1.9.3p484</td><td>2.3.3p222</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12312316">Ruby</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/rs/README.md">Rust</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td>1.15.1</td><td>1.18.0</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12331420">Rust</a></td> | ||||
| </tr> | ||||
| <tr align=center> | ||||
| <td align=left><a href="lib/st/README.md">Smalltalk</a></td> | ||||
| <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Language Levels -------><td colspan=2>unknown</td> | ||||
| <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Transport Wrappers ----><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes"/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <!-- Servers ---------------><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td><td><img src="doc/images/cred.png" alt=""/></td> | ||||
| <td align=left><a href="https://issues.apache.org/jira/browse/THRIFT/component/12313861">Smalltalk</a></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| <tfoot> | ||||
| <tr> | ||||
| <th rowspan=2>Language</th> | ||||
| <!-- Build Systems ---------><th>autoconf</th><th>cmake</th> | ||||
| <!-- Lang/Lib Levels -------><th>Min</th><th>Max</th> | ||||
| <!-- Low-Level Transports --><th><a href="https://en.wikipedia.org/wiki/Unix_domain_socket">Domain</a></th></th><th> File </th><th>Memory</th><th> Pipe </th><th>Socket</th><th> TLS </th> | ||||
| <!-- Transport Wrappers ----><th>Framed</th><th> http </th><th> zlib </th> | ||||
| <!-- Protocols -------------><th><a href="doc/specs/thrift-binary-protocol.md">Binary</a></th><th><a href="doc/specs/thrift-compact-protocol.md">Compact</a></th><th> JSON </th><th>Multiplex</th> | ||||
| <!-- Servers ---------------><th>Forking</th><th>Nonblocking</th><th>Simple</th><th>Threaded</th><th>ThreadPool</th> | ||||
| <th rowspan=2>Open Issues</th> | ||||
| </tr> | ||||
| <tr> | ||||
| <th colspan=2 align=center>Build Systems</th> | ||||
| <th colspan=2 align=center>Lang/Lib Levels</th> | ||||
| <th colspan=6 align=center>Low-Level Transports</th> | ||||
| <th colspan=3 align=center>Transport Wrappers</th> | ||||
| <th colspan=4 align=center>Protocols</th> | ||||
| <th colspan=5 align=center>Servers</th> | ||||
| </tr> | ||||
| </tfoot> | ||||
| </table> | ||||
							
								
								
									
										6
									
								
								vendor/github.com/apache/thrift/Makefile.am
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/apache/thrift/Makefile.am
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -43,7 +43,7 @@ dist-hook: | ||||
| 	find $(distdir) -type d \( -iname ".svn" -or -iname ".git" \) | xargs rm -rf | ||||
|  | ||||
| print-version: | ||||
| 	@echo $(VERSION) | ||||
| 	@echo $(PACKAGE_VERSION) | ||||
|  | ||||
| .PHONY: precross cross | ||||
| precross-%: all | ||||
| @@ -54,7 +54,7 @@ empty := | ||||
| space := $(empty) $(empty) | ||||
| comma := , | ||||
|  | ||||
| CROSS_LANGS = @MAYBE_CPP@ @MAYBE_C_GLIB@ @MAYBE_D@ @MAYBE_JAVA@ @MAYBE_CSHARP@ @MAYBE_PYTHON@ @MAYBE_PY3@ @MAYBE_RUBY@ @MAYBE_HASKELL@ @MAYBE_PERL@ @MAYBE_PHP@ @MAYBE_GO@ @MAYBE_NODEJS@ @MAYBE_DART@ @MAYBE_ERLANG@ @MAYBE_LUA@ | ||||
| CROSS_LANGS = @MAYBE_CPP@ @MAYBE_C_GLIB@ @MAYBE_D@ @MAYBE_JAVA@ @MAYBE_CSHARP@ @MAYBE_PYTHON@ @MAYBE_PY3@ @MAYBE_RUBY@ @MAYBE_HASKELL@ @MAYBE_PERL@ @MAYBE_PHP@ @MAYBE_GO@ @MAYBE_NODEJS@ @MAYBE_DART@ @MAYBE_ERLANG@ @MAYBE_LUA@ @MAYBE_RS@ @MAYBE_DOTNETCORE@ | ||||
| CROSS_LANGS_COMMA_SEPARATED = $(subst $(space),$(comma),$(CROSS_LANGS)) | ||||
|  | ||||
| if WITH_PY3 | ||||
| @@ -123,7 +123,7 @@ EXTRA_DIST = \ | ||||
| 	doap.rdf \ | ||||
| 	package.json \ | ||||
| 	sonar-project.properties \ | ||||
| 	Dockerfile \ | ||||
| 	LANGUAGES.md \ | ||||
| 	LICENSE \ | ||||
| 	CHANGES \ | ||||
| 	NOTICE \ | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/apache/thrift/NOTICE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/apache/thrift/NOTICE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| Apache Thrift | ||||
| Copyright 2006-2010 The Apache Software Foundation. | ||||
| Copyright 2006-2017 The Apache Software Foundation. | ||||
|  | ||||
| This product includes software developed at | ||||
| The Apache Software Foundation (http://www.apache.org/). | ||||
| The Apache Software Foundation (http://www.apache.org/). | ||||
|   | ||||
							
								
								
									
										55
									
								
								vendor/github.com/apache/thrift/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										55
									
								
								vendor/github.com/apache/thrift/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,9 +1,27 @@ | ||||
| Apache Thrift | ||||
| ============= | ||||
|  | ||||
| +[](https://travis-ci.org/apache/thrift) | ||||
| -		+[](https://ci.appveyor.com/project/apache/thrift) | ||||
| Last Modified: 2014-03-16 | ||||
|  | ||||
| License | ||||
| ======= | ||||
|  | ||||
| Licensed to the Apache Software Foundation (ASF) under one | ||||
| or more contributor license agreements. See the NOTICE file | ||||
| distributed with this work for additional information | ||||
| regarding copyright ownership. The ASF licenses this file | ||||
| to you under the Apache License, Version 2.0 (the | ||||
| "License"); you may not use this file except in compliance | ||||
| with the License. You may obtain a copy of the License at | ||||
|  | ||||
|   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, | ||||
| software distributed under the License is distributed on an | ||||
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
| KIND, either express or implied. See the License for the | ||||
| specific language governing permissions and limitations | ||||
| under the License. | ||||
|  | ||||
| Introduction | ||||
| ============ | ||||
| @@ -15,15 +33,22 @@ level processing. The code generation system takes a simple definition | ||||
| language as its input and generates code across programming languages that | ||||
| uses the abstracted stack to build interoperable RPC clients and servers. | ||||
|  | ||||
|  | ||||
|  | ||||
| Thrift makes it easy for programs written in different programming | ||||
| languages to share data and call remote procedures.  With support  | ||||
| for [over 20 programming languages](LANGUAGES.md), chances are Thrift  | ||||
| supports the ones that you currently use. | ||||
|  | ||||
| Thrift is specifically designed to support non-atomic version changes | ||||
| across client and server code. | ||||
|  | ||||
| For more details on Thrift's design and implementation, take a gander at | ||||
| the Thrift whitepaper included in this distribution or at the README.md files | ||||
| the Thrift whitepaper included in this distribution or at the README.md file | ||||
| in your particular subdirectory of interest. | ||||
|  | ||||
| Hierarchy | ||||
| ========= | ||||
| Project Hierarchy | ||||
| ================= | ||||
|  | ||||
| thrift/ | ||||
|  | ||||
| @@ -42,6 +67,7 @@ thrift/ | ||||
|     php/ | ||||
|     py/ | ||||
|     rb/ | ||||
|     ... | ||||
|  | ||||
|   test/ | ||||
|  | ||||
| @@ -145,22 +171,3 @@ To run the cross-language test suite, please run: | ||||
| This will run a set of tests that use different language clients and | ||||
| servers. | ||||
|  | ||||
| License | ||||
| ======= | ||||
|  | ||||
| Licensed to the Apache Software Foundation (ASF) under one | ||||
| or more contributor license agreements. See the NOTICE file | ||||
| distributed with this work for additional information | ||||
| regarding copyright ownership. The ASF licenses this file | ||||
| to you under the Apache License, Version 2.0 (the | ||||
| "License"); you may not use this file except in compliance | ||||
| with the License. You may obtain a copy of the License at | ||||
|  | ||||
|   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, | ||||
| software distributed under the License is distributed on an | ||||
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
| KIND, either express or implied. See the License for the | ||||
| specific language governing permissions and limitations | ||||
| under the License. | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/apache/thrift/Thrift.podspec
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/apache/thrift/Thrift.podspec
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| Pod::Spec.new do |s| | ||||
|   s.name          = "Thrift" | ||||
|   s.version       = "0.10.0" | ||||
|   s.version       = "1.0.0" | ||||
|   s.summary       = "Apache Thrift is a lightweight, language-independent software stack with an associated code generation mechanism for RPC." | ||||
|   s.description   = <<-DESC | ||||
| The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages. | ||||
| @@ -13,6 +13,6 @@ The Apache Thrift software framework, for scalable cross-language services devel | ||||
|   s.osx.deployment_target = '10.8' | ||||
|   s.ios.framework = 'CFNetwork' | ||||
|   s.osx.framework = 'CoreServices' | ||||
|   s.source        = { :git => "https://github.com/apache/thrift.git", :tag => "thrift-0.10.0" } | ||||
|   s.source        = { :git => "https://github.com/apache/thrift.git", :tag => "thrift-1.0.0" } | ||||
|   s.source_files  = 'lib/cocoa/src/**/*.{h,m,swift}' | ||||
| end | ||||
							
								
								
									
										138
									
								
								vendor/github.com/apache/thrift/appveyor.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										138
									
								
								vendor/github.com/apache/thrift/appveyor.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,3 +1,4 @@ | ||||
| # | ||||
| # Licensed to the Apache Software Foundation (ASF) under one | ||||
| # or more contributor license agreements. See the NOTICE file | ||||
| # distributed with this work for additional information | ||||
| @@ -18,76 +19,83 @@ | ||||
|  | ||||
| # build Apache Thrift on AppVeyor - https://ci.appveyor.com | ||||
|  | ||||
| shallow_clone: true | ||||
| clone_depth: 10 | ||||
| version: '1.0.0-dev.{build}' | ||||
|  | ||||
| shallow_clone: true | ||||
|  | ||||
| version: '{build}' | ||||
| os: | ||||
| # - Windows Server 2012 R2 | ||||
| - Visual Studio 2015 | ||||
|   - Visual Studio 2015 | ||||
|  | ||||
| cache: | ||||
|   - C:\projects\thrift\buildcache -> build\appveyor\MSVC-appveyor-install.bat | ||||
|   - C:\ProgramData\chocolatey\lib -> build\appveyor\MSVC-appveyor-install.bat | ||||
|   - C:\msys64\var\cache\pacman    -> build\appveyor\MSYS-appveyor-install.bat | ||||
|  | ||||
| environment: | ||||
|   BOOST_ROOT: C:\Libraries\boost_1_59_0 | ||||
|   BOOST_LIBRARYDIR: C:\Libraries\boost_1_59_0\lib64-msvc-14.0 | ||||
|   # Unfurtunately, this version needs manual update because old versions are quickly deleted. | ||||
|   ANT_VERSION: 1.9.7 | ||||
|   matrix: | ||||
|    - PROFILE: MSVC2010 | ||||
|      PLATFORM: x86 | ||||
|      CONFIGURATION: Debug | ||||
|      BOOST_VERSION: 1.54.0 | ||||
|      LIBEVENT_VERSION: 2.0.22 | ||||
|      QT_VERSION: 5.6 | ||||
|      ZLIB_VERSION: 1.2.8 | ||||
|      DISABLED_TESTS: StressTestNonBlocking | ||||
|  | ||||
|    - PROFILE: MSVC2015 | ||||
|      PLATFORM: x64 | ||||
|      CONFIGURATION: Release | ||||
|      BOOST_VERSION: 1.64.0 | ||||
|      LIBEVENT_VERSION: 2.0.22 | ||||
|      PYTHON_VERSION: 3.6 | ||||
|      QT_VERSION: 5.8 | ||||
|      ZLIB_VERSION: 1.2.11 | ||||
|      DISABLED_TESTS: StressTestNonBlocking | ||||
|  | ||||
|    - PROFILE: MINGW | ||||
|      PLATFORM: x64 | ||||
|      CONFIGURATION: Release | ||||
|  | ||||
| matrix: | ||||
|   fast_finish: true | ||||
|  | ||||
| install: | ||||
| - '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64' | ||||
| - cd \ | ||||
|   # Zlib | ||||
| - appveyor DownloadFile https://github.com/madler/zlib/archive/v1.2.8.tar.gz | ||||
| - 7z x v1.2.8.tar.gz -so | 7z x -si -ttar > nul | ||||
| - cd zlib-1.2.8 | ||||
| - cmake -G "Visual Studio 14 2015 Win64" . | ||||
| - cmake --build . --config release | ||||
| - cd .. | ||||
|   # OpenSSL | ||||
| - C:\Python35-x64\python %APPVEYOR_BUILD_FOLDER%\build\appveyor\download_openssl.py | ||||
| - ps: Start-Process "Win64OpenSSL.exe" -ArgumentList "/silent /verysilent /sp- /suppressmsgboxes" -Wait | ||||
|   # Libevent | ||||
| - appveyor DownloadFile https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz | ||||
| - 7z x libevent-2.0.22-stable.tar.gz -so | 7z x -si -ttar > nul | ||||
| - cd libevent-2.0.22-stable | ||||
| - nmake -f Makefile.nmake | ||||
| - mkdir lib | ||||
| - move *.lib lib\ | ||||
| - move WIN32-Code\event2\* include\event2\ | ||||
| - move *.h include\ | ||||
| - cd .. | ||||
| - appveyor-retry cinst -y winflexbison | ||||
| - appveyor DownloadFile http://www.us.apache.org/dist/ant/binaries/apache-ant-%ANT_VERSION%-bin.zip | ||||
| - 7z x apache-ant-%ANT_VERSION%-bin.zip > nul | ||||
| - cd %APPVEYOR_BUILD_FOLDER% | ||||
| # TODO: Enable Haskell build | ||||
| # - cinst HaskellPlatform -version 2014.2.0.0 | ||||
|  | ||||
|   - cd %APPVEYOR_BUILD_FOLDER% | ||||
|   - call build\appveyor\%PROFILE:~0,4%-appveyor-install.bat | ||||
|   - refreshenv | ||||
|  | ||||
| build_script: | ||||
| - set PATH=C:\ProgramData\chocolatey\bin;C:\apache-ant-%ANT_VERSION%\bin;%PATH% | ||||
| - set JAVA_HOME=C:\Program Files\Java\jdk1.7.0 | ||||
| - set PATH=%JAVA_HOME%\bin;%PATH% | ||||
| # - set PATH=%PATH%;C:\Program Files (x86)\Haskell Platform\2014.2.0.0\bin | ||||
| # - set PATH=%PATH%;C:\Program Files (x86)\Haskell Platform\2014.2.0.0\lib\extralibs\bin | ||||
| - set PATH=C:\Python27-x64\scripts;C:\Python27-x64;%PATH% | ||||
| - pip install ipaddress backports.ssl_match_hostname tornado twisted | ||||
| - mkdir cmake-build | ||||
| - cd cmake-build | ||||
| - cmake -G "Visual Studio 14 2015 Win64" -DWITH_SHARED_LIB=OFF -DLIBEVENT_ROOT=C:\libevent-2.0.22-stable -DZLIB_INCLUDE_DIR=C:\zlib-1.2.8 -DZLIB_LIBRARY=C:\zlib-1.2.8\release\zlibstatic.lib -DBOOST_ROOT="%BOOST_ROOT%" -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" .. | ||||
| - findstr /b /e BUILD_COMPILER:BOOL=ON CMakeCache.txt | ||||
| - findstr /b /e BUILD_CPP:BOOL=ON CMakeCache.txt | ||||
| - findstr /b /e BUILD_JAVA:BOOL=ON CMakeCache.txt | ||||
| - findstr /b /e BUILD_PYTHON:BOOL=ON CMakeCache.txt | ||||
| # - findstr /b /e BUILD_C_GLIB:BOOL=ON CMakeCache.txt | ||||
| # - findstr /b /e BUILD_HASKELL:BOOL=ON CMakeCache.txt | ||||
| - findstr /b /e BUILD_TESTING:BOOL=ON CMakeCache.txt | ||||
| # - cmake --build . | ||||
| - cmake --build . --config Release | ||||
| # TODO: Fix cpack | ||||
| # - cpack | ||||
| # TODO: Run more tests | ||||
| # CTest fails to invoke ant seemingly due to "ant.bat" v.s. "ant" (shell script) conflict. | ||||
| # Currently, everything that involves OpenSSL seems to hang forever on our Appveyor setup. | ||||
| # Also a few C++ tests hang (on Appveyor or on Windows in general). | ||||
| - ctest -C Release --timeout 600 -VV -E "(StressTestNonBlocking|PythonTestSSLSocket|python_test$|^Java)" | ||||
| # TODO make it perfect ;-r | ||||
|   - cd %APPVEYOR_BUILD_FOLDER% | ||||
|   - call build\appveyor\%PROFILE:~0,4%-appveyor-build.bat | ||||
|  | ||||
| test_script: | ||||
|   - cd %APPVEYOR_BUILD_FOLDER% | ||||
|   - call build\appveyor\%PROFILE:~0,4%-appveyor-test.bat | ||||
|  | ||||
|  | ||||
| # artifact capture disabled as it might increase service cost for little gain: | ||||
| # | ||||
| # artifacts: | ||||
| #  - path: local-thrift-inst | ||||
| #    name: cmake installed content | ||||
| #    type: zip | ||||
| # | ||||
| #  - path: local-thrift-build\Testing | ||||
| #    name: ctest output | ||||
| #    type: zip | ||||
|  | ||||
| # RDP support: use one or the other... | ||||
| # | ||||
| # enables RDP for each build job so you can inspect the environment at the beginning of the job: | ||||
| # init: | ||||
| #  - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) | ||||
| # | ||||
| # enables RDP at the end of the build job so you can login and re-run | ||||
| # commands to see why something failed... | ||||
| #on_finish: | ||||
| #  - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) | ||||
| # | ||||
| # also need: | ||||
| # environment: | ||||
| #   APPVEYOR_RDP_PASSWORD: thr1FT2345$xyzZ | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/github.com/apache/thrift/bootstrap.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/apache/thrift/bootstrap.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -46,9 +46,12 @@ if [ "$AUTOMAKE_VERSION" \< "1.13" ]; then | ||||
|   exit 1 | ||||
| fi | ||||
|  | ||||
| set -e | ||||
| autoscan | ||||
| $LIBTOOLIZE --copy --automake | ||||
| aclocal -I ./aclocal | ||||
| autoheader | ||||
| sed '/undef VERSION/d' config.hin > config.hin2 | ||||
| mv config.hin2 config.hin | ||||
| autoconf | ||||
| automake --copy --add-missing --foreign | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/apache/thrift/bower.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/apache/thrift/bower.json
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,6 +1,5 @@ | ||||
| { | ||||
|   "name": "thrift", | ||||
|   "version": "0.10.0", | ||||
|   "homepage": "https://git-wip-us.apache.org/repos/asf/thrift.git", | ||||
|   "authors": [ | ||||
|     "Apache Thrift <dev@thrift.apache.org>" | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/apache/thrift/composer.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/apache/thrift/composer.json
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -24,7 +24,7 @@ | ||||
|     "minimum-stability": "dev", | ||||
|     "extra": { | ||||
|         "branch-alias": { | ||||
|             "dev-master": "0.10.0" | ||||
|             "dev-master": "1.0.x-dev" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										284
									
								
								vendor/github.com/apache/thrift/configure.ac
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										284
									
								
								vendor/github.com/apache/thrift/configure.ac
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -20,7 +20,7 @@ | ||||
| AC_PREREQ(2.65) | ||||
| AC_CONFIG_MACRO_DIR([./aclocal]) | ||||
|  | ||||
| AC_INIT([thrift], [0.10.0]) | ||||
| AC_INIT([thrift], [1.0.0-dev]) | ||||
|  | ||||
| AC_CONFIG_AUX_DIR([.]) | ||||
|  | ||||
| @@ -83,6 +83,9 @@ AS_IF([test "x$D_IMPORT_PREFIX" = x], [D_IMPORT_PREFIX="${includedir}/d2"]) | ||||
| AC_ARG_VAR([DMD_LIBEVENT_FLAGS], [DMD flags for linking libevent (auto-detected if not set).]) | ||||
| AC_ARG_VAR([DMD_OPENSSL_FLAGS], [DMD flags for linking OpenSSL (auto-detected if not set).]) | ||||
|  | ||||
| AC_ARG_VAR([THRIFT], [Path to the thrift tool (needed for cross-compilation).]) | ||||
| AS_IF([test "x$THRIFT" = x], [THRIFT=`pwd`/compiler/cpp/thrift]) | ||||
|  | ||||
| AC_PROG_CC | ||||
| AC_PROG_CPP | ||||
| AC_PROG_CXX | ||||
| @@ -100,6 +103,9 @@ AC_PROG_RANLIB | ||||
|  | ||||
| AC_LANG([C++]) | ||||
| AX_CXX_COMPILE_STDCXX_11([noext], [optional]) | ||||
| if test "$ac_success" = "no"; then | ||||
|   CXXFLAGS="$CXXFLAGS -Wno-variadic-macros -Wno-long-long -Wno-c++11-long-long" | ||||
| fi | ||||
|  | ||||
| AM_EXTRA_RECURSIVE_TARGETS([style]) | ||||
| AC_SUBST(CPPSTYLE_CMD, 'find . -type f \( -iname "*.h" -or -iname "*.cpp" -or -iname "*.cc" -or -iname "*.tcc" \) -printf "Reformatting: %h/%f\n" -exec clang-format -i {} \;') | ||||
| @@ -116,9 +122,11 @@ if test "$enable_libs" = "no"; then | ||||
|   with_java="no" | ||||
|   with_csharp="no" | ||||
|   with_python="no" | ||||
|   with_py3="no" | ||||
|   with_ruby="no" | ||||
|   with_haskell="no" | ||||
|   with_haxe="no" | ||||
|   with_dotnetcore="no" | ||||
|   with_perl="no" | ||||
|   with_php="no" | ||||
|   with_php_extension="no" | ||||
| @@ -128,9 +136,9 @@ if test "$enable_libs" = "no"; then | ||||
|   with_d="no" | ||||
|   with_nodejs="no" | ||||
|   with_lua="no" | ||||
|   with_rs="no" | ||||
| fi | ||||
|  | ||||
|  | ||||
| AX_THRIFT_LIB(cpp, [C++], yes) | ||||
| have_cpp=no | ||||
| if test "$with_cpp" = "yes";  then | ||||
| @@ -145,8 +153,6 @@ if test "$with_cpp" = "yes";  then | ||||
|     have_cpp="yes" | ||||
|   fi | ||||
|  | ||||
|   AX_CHECK_OPENSSL() | ||||
|  | ||||
|   AX_LIB_EVENT([1.0]) | ||||
|   have_libevent=$success | ||||
|  | ||||
| @@ -197,6 +203,12 @@ if test "$with_c_glib" = "yes"; then | ||||
| fi | ||||
| AM_CONDITIONAL(WITH_C_GLIB, [test "$have_glib2" = "yes" -a "$have_gobject2" = "yes"]) | ||||
|  | ||||
| echo "OpenSSL check" | ||||
| if test "$have_cpp" = "yes" -o "$have_c_glib" = "yes";  then | ||||
|   echo "Have cpp or c so we check for OpenSSL" | ||||
|   AX_CHECK_OPENSSL() | ||||
| fi | ||||
|  | ||||
| AX_THRIFT_LIB(csharp, [C#], yes) | ||||
| if test "$with_csharp" = "yes";  then | ||||
|   PKG_CHECK_MODULES(MONO, mono >= 2.11.0, mono_2_11=yes, mono_2_11=no) | ||||
| @@ -294,6 +306,7 @@ AM_CONDITIONAL(WITH_TWISTED_TEST, [test "$have_trial" = "yes"]) | ||||
| # Find "python3" executable. | ||||
| # It's distro specific and far from ideal but needed to cross test py2-3 at once. | ||||
| # TODO: find "python2" if it's 3.x | ||||
| have_py3="no" | ||||
| if python --version 2>&1 | grep -q "Python 2"; then | ||||
|   AC_PATH_PROGS([PYTHON3], [python3 python3.5 python35 python3.4 python34]) | ||||
|   if test -n "$PYTHON3"; then | ||||
| @@ -389,6 +402,7 @@ if test "$with_go" = "yes";  then | ||||
|   if [[ -x "$GO" ]] ; then | ||||
|     AS_IF([test -n "$GO"],[ | ||||
|       ax_go_version="1.4" | ||||
|       ax_go17_version="1.7" | ||||
|  | ||||
|       AC_MSG_CHECKING([for Go version]) | ||||
|       golang_version=`$GO version 2>&1 | $SED -e 's/\(go \)\(version \)\(go\)\(@<:@0-9@:>@.@<:@0-9@:>@.@<:@0-9@:>@\)\(@<:@\*@:>@*\).*/\4/'` | ||||
| @@ -401,6 +415,13 @@ if test "$with_go" = "yes";  then | ||||
|       : | ||||
|         have_go="no" | ||||
|       ]) | ||||
|       AX_COMPARE_VERSION([$golang_version],[lt],[$ax_go17_version],[ | ||||
|       : | ||||
|         go_version_lt_17="yes" | ||||
|       ],[ | ||||
|       : | ||||
|         go_version_lt_17="no" | ||||
|       ]) | ||||
|     ],[ | ||||
|       AC_MSG_WARN([could not find Go ]) | ||||
|       have_go="no" | ||||
| @@ -408,7 +429,31 @@ if test "$with_go" = "yes";  then | ||||
|   fi | ||||
| fi | ||||
| AM_CONDITIONAL(WITH_GO, [test "$have_go" = "yes"]) | ||||
| AM_CONDITIONAL([GOVERSION_LT_17], [test "$go_version_lt_17" = "yes"]) | ||||
|  | ||||
| AX_THRIFT_LIB(rs, [Rust], yes) | ||||
| have_rs="no" | ||||
| if test "$with_rs" = "yes";  then | ||||
|   AC_PATH_PROG([CARGO], [cargo]) | ||||
|   AC_PATH_PROG([RUSTC], [rustc]) | ||||
|   if [[ -x "$CARGO" ]] && [[ -x "$RUSTC" ]]; then | ||||
|       min_rustc_version="1.13" | ||||
|  | ||||
|       AC_MSG_CHECKING([for rustc version]) | ||||
|       rustc_version=`$RUSTC --version 2>&1 | $SED -e 's/\(rustc \)\([0-9]\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\2.\3/'` | ||||
|       AC_MSG_RESULT($rustc_version) | ||||
|       AC_SUBST([rustc_version],[$rustc_version]) | ||||
|  | ||||
|       AX_COMPARE_VERSION([$min_rustc_version],[le],[$rustc_version],[ | ||||
|       : | ||||
|         have_rs="yes" | ||||
|       ],[ | ||||
|       : | ||||
|         have_rs="no" | ||||
|       ]) | ||||
|   fi | ||||
| fi | ||||
| AM_CONDITIONAL(WITH_RS, [test "$have_rs" = "yes"]) | ||||
|  | ||||
| AX_THRIFT_LIB(haxe, [Haxe], yes) | ||||
| if test "$with_haxe" = "yes";  then | ||||
| @@ -420,6 +465,16 @@ fi | ||||
| AM_CONDITIONAL(WITH_HAXE, [test "$have_haxe" = "yes"]) | ||||
|  | ||||
|  | ||||
| AX_THRIFT_LIB(dotnetcore, [.NET Core], yes) | ||||
| if test "$with_dotnetcore" = "yes";  then | ||||
|   AC_PATH_PROG([DOTNETCORE], [dotnet]) | ||||
|   if [[ -x "$DOTNETCORE" ]] ; then | ||||
|     AX_PROG_DOTNETCORE_VERSION( [2.0.0], have_dotnetcore="yes", have_dotnetcore="no") | ||||
|   fi | ||||
| fi | ||||
| AM_CONDITIONAL(WITH_DOTNETCORE, [test "$have_dotnetcore" = "yes"]) | ||||
|  | ||||
|  | ||||
| AX_THRIFT_LIB(d, [D], yes) | ||||
| if test "$with_d" = "yes";  then | ||||
|   AX_DMD | ||||
| @@ -517,8 +572,8 @@ fi | ||||
| AM_CONDITIONAL(WITH_TESTS, [test "$have_tests" = "yes"]) | ||||
|  | ||||
| AC_ARG_ENABLE([plugin], | ||||
|   AS_HELP_STRING([--enable-plugin], [build compiler plugin support [default=yes]]), | ||||
|   [], enable_plugin=yes | ||||
|   AS_HELP_STRING([--enable-plugin], [build compiler plugin support [default=no]]), | ||||
|   [], enable_plugin=no | ||||
| ) | ||||
| have_plugin=yes | ||||
| if test "$have_cpp" = "no" ; then | ||||
| @@ -527,9 +582,7 @@ fi | ||||
| if test "$enable_plugin" = "no"; then | ||||
|   have_plugin="no" | ||||
| fi | ||||
| if test "$have_plugin" = "yes" ; then | ||||
|   AC_CONFIG_LINKS([compiler/cpp/test/plugin/t_cpp_generator.cc:compiler/cpp/src/thrift/generate/t_cpp_generator.cc]) | ||||
| fi | ||||
| AC_CONFIG_LINKS([compiler/cpp/test/plugin/t_cpp_generator.cc:compiler/cpp/src/thrift/generate/t_cpp_generator.cc]) | ||||
| AM_CONDITIONAL(WITH_PLUGIN, [test "$have_plugin" = "yes"]) | ||||
|  | ||||
| AC_ARG_ENABLE([tutorial], | ||||
| @@ -608,7 +661,7 @@ AC_TYPE_UINT16_T | ||||
| AC_TYPE_UINT32_T | ||||
| AC_TYPE_UINT64_T | ||||
| AC_TYPE_UINT8_T | ||||
| AC_CHECK_TYPES([ptrdiff_t], [], [exit 1]) | ||||
| AC_CHECK_TYPES([ptrdiff_t], [], [echo "ptrdiff_t not found or g++ not installed - cannot continue" && exit 1]) | ||||
|  | ||||
| AC_STRUCT_TM | ||||
|  | ||||
| @@ -757,6 +810,7 @@ AC_CONFIG_FILES([ | ||||
|   lib/js/test/Makefile | ||||
|   lib/json/Makefile | ||||
|   lib/json/test/Makefile | ||||
|   lib/netcore/Makefile | ||||
|   lib/nodejs/Makefile | ||||
|   lib/perl/Makefile | ||||
|   lib/perl/test/Makefile | ||||
| @@ -765,6 +819,8 @@ AC_CONFIG_FILES([ | ||||
|   lib/dart/Makefile | ||||
|   lib/py/Makefile | ||||
|   lib/rb/Makefile | ||||
|   lib/rs/Makefile | ||||
|   lib/rs/test/Makefile | ||||
|   lib/lua/Makefile | ||||
|   lib/xml/Makefile | ||||
|   lib/xml/test/Makefile | ||||
| @@ -778,6 +834,7 @@ AC_CONFIG_FILES([ | ||||
|   test/haxe/Makefile | ||||
|   test/hs/Makefile | ||||
|   test/lua/Makefile | ||||
|   test/netcore/Makefile | ||||
|   test/php/Makefile | ||||
|   test/dart/Makefile | ||||
|   test/perl/Makefile | ||||
| @@ -785,6 +842,7 @@ AC_CONFIG_FILES([ | ||||
|   test/py.twisted/Makefile | ||||
|   test/py.tornado/Makefile | ||||
|   test/rb/Makefile | ||||
|   test/rs/Makefile | ||||
|   tutorial/Makefile | ||||
|   tutorial/c_glib/Makefile | ||||
|   tutorial/cpp/Makefile | ||||
| @@ -794,12 +852,14 @@ AC_CONFIG_FILES([ | ||||
|   tutorial/hs/Makefile | ||||
|   tutorial/java/Makefile | ||||
|   tutorial/js/Makefile | ||||
|   tutorial/netcore/Makefile | ||||
|   tutorial/nodejs/Makefile | ||||
|   tutorial/dart/Makefile | ||||
|   tutorial/py/Makefile | ||||
|   tutorial/py.twisted/Makefile | ||||
|   tutorial/py.tornado/Makefile | ||||
|   tutorial/rb/Makefile | ||||
|   tutorial/rs/Makefile | ||||
| ]) | ||||
|  | ||||
| if test "$have_cpp" = "yes" ; then MAYBE_CPP="cpp" ; else MAYBE_CPP="" ; fi | ||||
| @@ -834,6 +894,10 @@ if test "$have_erlang" = "yes" ; then MAYBE_ERLANG="erl" ; else MAYBE_ERLANG="" | ||||
| AC_SUBST([MAYBE_ERLANG]) | ||||
| if test "$have_lua" = "yes" ; then MAYBE_LUA="lua" ; else MAYBE_LUA="" ; fi | ||||
| AC_SUBST([MAYBE_LUA]) | ||||
| if test "$have_rs" = "yes" ; then MAYBE_RS="rs" ; else MAYBE_RS="" ; fi | ||||
| AC_SUBST([MAYBE_RS]) | ||||
| if test "$have_dotnetcore" = "yes" ; then MAYBE_DOTNETCORE="netcore" ; else MAYBE_DOTNETCORE="" ; fi | ||||
| AC_SUBST([MAYBE_DOTNETCORE]) | ||||
|  | ||||
| AC_OUTPUT | ||||
|  | ||||
| @@ -841,99 +905,42 @@ AC_OUTPUT | ||||
| echo | ||||
| echo "$PACKAGE $VERSION" | ||||
| echo | ||||
| echo "Building Plugin Support ...... : $have_plugin" | ||||
| echo "Building C++ Library ......... : $have_cpp" | ||||
| echo "Building C (GLib) Library .... : $have_c_glib" | ||||
| echo "Building Java Library ........ : $have_java" | ||||
| echo "Building C# Library .......... : $have_csharp" | ||||
| echo "Building Python Library ...... : $have_python" | ||||
| echo "Building Ruby Library ........ : $have_ruby" | ||||
| echo "Building Haxe Library ........ : $have_haxe" | ||||
| echo "Building Haskell Library ..... : $have_haskell" | ||||
| echo "Building Perl Library ........ : $have_perl" | ||||
| echo "Building PHP Library ......... : $have_php" | ||||
| echo "Building C# (Mono) Library ... : $have_csharp" | ||||
| echo "Building C++ Library ......... : $have_cpp" | ||||
| echo "Building D Library ........... : $have_d" | ||||
| echo "Building Dart Library ........ : $have_dart" | ||||
| echo "Building dotnetcore Library .. : $have_dotnetcore" | ||||
| echo "Building Erlang Library ...... : $have_erlang" | ||||
| echo "Building Go Library .......... : $have_go" | ||||
| echo "Building D Library ........... : $have_d" | ||||
| echo "Building NodeJS Library ...... : $have_nodejs" | ||||
| echo "Building Haskell Library ..... : $have_haskell" | ||||
| echo "Building Haxe Library ........ : $have_haxe" | ||||
| echo "Building Java Library ........ : $have_java" | ||||
| echo "Building Lua Library ......... : $have_lua" | ||||
| echo "Building NodeJS Library ...... : $have_nodejs" | ||||
| echo "Building Perl Library ........ : $have_perl" | ||||
| echo "Building PHP Library ......... : $have_php" | ||||
| echo "Building Plugin Support ...... : $have_plugin" | ||||
| echo "Building Python Library ...... : $have_python" | ||||
| echo "Building Py3 Library ......... : $have_py3" | ||||
| echo "Building Ruby Library ........ : $have_ruby" | ||||
| echo "Building Rust Library ........ : $have_rs" | ||||
|  | ||||
| if test "$have_cpp" = "yes" ; then | ||||
|   echo | ||||
|   echo "C++ Library:" | ||||
|   echo "   Build TZlibTransport ...... : $have_zlib" | ||||
|   echo "   Build TNonblockingServer .. : $have_libevent" | ||||
|   echo "   Build TQTcpServer (Qt4) .... : $have_qt" | ||||
|   echo "   Build TQTcpServer (Qt5) .... : $have_qt5" | ||||
| fi | ||||
| if test "$have_java" = "yes" ; then | ||||
|   echo | ||||
|   echo "Java Library:" | ||||
|   echo "   Using javac ............... : $JAVAC" | ||||
|   echo "   Using java ................ : $JAVA" | ||||
|   echo "   Using ant ................. : $ANT" | ||||
| fi | ||||
| if test "$have_csharp" = "yes" ; then | ||||
|   echo | ||||
|   echo "C# Library:" | ||||
|   echo "   Using .NET 3.5 ............ : $net_3_5" | ||||
|   echo "   Using mono version ........ : $($MCS --version | head -1)" | ||||
| fi | ||||
| if test "$have_python" = "yes" ; then | ||||
| if test "$have_cpp" = "yes" ; then | ||||
|   echo | ||||
|   echo "Python Library:" | ||||
|   echo "   Using Python .............. : $PYTHON" | ||||
|   if test "$have_py3" = "yes" ; then | ||||
|   echo "   Using Python3 ............. : $PYTHON3" | ||||
|   fi | ||||
|   if test "$have_trial" = "yes"; then | ||||
|   echo "   Using trial ............... : $TRIAL" | ||||
|   fi | ||||
| fi | ||||
| if test "$have_php" = "yes" ; then | ||||
|   echo | ||||
|   echo "PHP Library:" | ||||
|   echo "   Using php-config .......... : $PHP_CONFIG" | ||||
| fi | ||||
| if test "$have_dart" = "yes" ; then | ||||
|   echo | ||||
|   echo "Dart Library:" | ||||
|   echo "   Using Dart ................ : $DART" | ||||
|   echo "   Using Pub ................. : $DARTPUB" | ||||
| fi | ||||
| if test "$have_ruby" = "yes" ; then | ||||
|   echo | ||||
|   echo "Ruby Library:" | ||||
|   echo "   Using Ruby ................ : $RUBY" | ||||
| fi | ||||
| if test "$have_haskell" = "yes" ; then | ||||
|   echo | ||||
|   echo "Haskell Library:" | ||||
|   echo "   Using Haskell ............. : $RUNHASKELL" | ||||
|   echo "   Using Cabal ............... : $CABAL" | ||||
| fi | ||||
| if test "$have_haxe" = "yes" ; then | ||||
|   echo | ||||
|   echo "Haxe Library:" | ||||
|   echo "   Using Haxe ................ : $HAXE" | ||||
|   echo "   Using Haxe version ........ : $HAXE_VERSION" | ||||
| fi | ||||
| if test "$have_perl" = "yes" ; then | ||||
|   echo | ||||
|   echo "Perl Library:" | ||||
|   echo "   Using Perl ................ : $PERL" | ||||
| fi | ||||
| if test "$have_erlang" = "yes" ; then | ||||
|   echo | ||||
|   echo "Erlang Library:" | ||||
|   echo "   Using erlc ................ : $ERLC" | ||||
|   echo "   Using rebar ............... : $REBAR" | ||||
| fi | ||||
| if test "$have_go" = "yes" ; then | ||||
|   echo | ||||
|   echo "Go Library:" | ||||
|   echo "   Using Go................... : $GO" | ||||
|   echo "   Using Go version........... : $($GO version)" | ||||
|   echo "C++ Library:" | ||||
|   echo "   C++ compiler .............. : $CXX" | ||||
|   echo "   Build TZlibTransport ...... : $have_zlib" | ||||
|   echo "   Build TNonblockingServer .. : $have_libevent" | ||||
|   echo "   Build TQTcpServer (Qt4) ... : $have_qt" | ||||
|   echo "   Build TQTcpServer (Qt5) ... : $have_qt5" | ||||
|   echo "   C++ compiler version ...... : $($CXX --version | head -1)" | ||||
| fi | ||||
| if test "$have_d" = "yes" ; then | ||||
|   echo | ||||
| @@ -941,6 +948,61 @@ if test "$have_d" = "yes" ; then | ||||
|   echo "   Using D Compiler .......... : $DMD" | ||||
|   echo "   Building D libevent tests . : $with_d_event_tests" | ||||
|   echo "   Building D SSL tests ...... : $with_d_ssl_tests" | ||||
|   echo "   Using D version ........... : $($DMD --version | head -1)" | ||||
| fi | ||||
| if test "$have_dart" = "yes" ; then | ||||
|   echo | ||||
|   echo "Dart Library:" | ||||
|   echo "   Using Dart ................ : $DART" | ||||
|   echo "   Using Pub ................. : $DARTPUB" | ||||
|   echo "   Using Dart version ........ : $($DART --version 2>&1)" | ||||
| fi | ||||
| if test "$have_dotnetcore" = "yes" ; then | ||||
|   echo | ||||
|   echo ".NET Core Library:" | ||||
|   echo "   Using .NET Core ........... : $DOTNETCORE" | ||||
|   echo "   Using .NET Core version ... : $DOTNETCORE_VERSION" | ||||
| fi | ||||
| if test "$have_erlang" = "yes" ; then | ||||
|   echo | ||||
|   echo "Erlang Library:" | ||||
|   echo "   Using erlc ................ : $ERLC" | ||||
|   echo "   Using rebar ............... : $REBAR" | ||||
|   echo "   Using erlc version ........ : $($ERL -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell | tr -d '\"')" | ||||
| fi | ||||
| if test "$have_go" = "yes" ; then | ||||
|   echo | ||||
|   echo "Go Library:" | ||||
|   echo "   Using Go................... : $GO" | ||||
|   echo "   Using Go version........... : $($GO version)" | ||||
| fi | ||||
| if test "$have_haskell" = "yes" ; then | ||||
|   echo | ||||
|   echo "Haskell Library:" | ||||
|   echo "   Using Cabal ............... : $CABAL" | ||||
|   echo "   Using Haskell ............. : $RUNHASKELL" | ||||
|   echo "   Using Haskell version ..... : $($RUNHASKELL --version)" | ||||
| fi | ||||
| if test "$have_haxe" = "yes" ; then | ||||
|   echo | ||||
|   echo "Haxe Library:" | ||||
|   echo "   Using Haxe ................ : $HAXE" | ||||
|   echo "   Using Haxe version ........ : $HAXE_VERSION" | ||||
| fi | ||||
| if test "$have_java" = "yes" ; then | ||||
|   echo | ||||
|   echo "Java Library:" | ||||
|   echo "   Using ant ................. : $ANT" | ||||
|   echo "   Using java ................ : $JAVA" | ||||
|   echo "   Using javac ............... : $JAVAC" | ||||
|   echo "   Using ant version ......... : $($ANT -version 2>&1)" | ||||
|   echo "   Using java version ........ : $($JAVA -version 2>&1 | grep 'version ')" | ||||
| fi | ||||
| if test "$have_lua" = "yes" ; then | ||||
|   echo | ||||
|   echo "Lua Library:" | ||||
|   echo "   Using Lua ................. : $LUA" | ||||
|   echo "   Using Lua version.......... : $($LUA -v)" | ||||
| fi | ||||
| if test "$have_nodejs" = "yes" ; then | ||||
|   echo | ||||
| @@ -948,12 +1010,46 @@ if test "$have_nodejs" = "yes" ; then | ||||
|   echo "   Using NodeJS .............. : $NODEJS" | ||||
|   echo "   Using NodeJS version....... : $($NODEJS --version)" | ||||
| fi | ||||
| if test "$have_lua" = "yes" ; then | ||||
| if test "$have_perl" = "yes" ; then | ||||
|   echo | ||||
|   echo "Lua Library:" | ||||
|   echo "   Using Lua .............. : $LUA" | ||||
|   echo "Perl Library:" | ||||
|   echo "   Using Perl ................ : $PERL" | ||||
|   echo "   Using Perl version ........ : $($PERL -v | grep 'version ')" | ||||
| fi | ||||
| if test "$have_php" = "yes" ; then | ||||
|   echo | ||||
|   echo "PHP Library:" | ||||
|   echo "   Using php-config .......... : $PHP_CONFIG" | ||||
|   echo "   Using php version ......... : $($PHP --version | head -1)" | ||||
| fi | ||||
| if test "$have_python" = "yes" ; then | ||||
|   echo | ||||
|   echo "Python Library:" | ||||
|   echo "   Using Python .............. : $PYTHON" | ||||
|   echo "   Using Python version ...... : $($PYTHON --version 2>&1)" | ||||
|   if test "$have_py3" = "yes" ; then | ||||
|   echo "   Using Python3 ............. : $PYTHON3" | ||||
|   echo "   Using Python3 version ..... : $($PYTHON3 --version)" | ||||
|   fi | ||||
|   if test "$have_trial" = "yes"; then | ||||
|   echo "   Using trial ............... : $TRIAL" | ||||
|   fi | ||||
| fi | ||||
| if test "$have_ruby" = "yes" ; then | ||||
|   echo | ||||
|   echo "Ruby Library:" | ||||
|   echo "   Using Ruby ................ : $RUBY" | ||||
|   echo "   Using Ruby version ........ : $($RUBY --version)" | ||||
| fi | ||||
| if test "$have_rs" = "yes" ; then | ||||
|   echo | ||||
|   echo "Rust Library:" | ||||
|   echo "   Using Cargo................ : $CARGO" | ||||
|   echo "   Using rustc................ : $RUSTC" | ||||
|   echo "   Using Rust version......... : $($RUSTC --version)" | ||||
| fi | ||||
| echo | ||||
| echo "If something is missing that you think should be present," | ||||
| echo "please skim the output of configure to find the missing" | ||||
| echo "component.  Details are present in config.log." | ||||
| echo | ||||
|   | ||||
							
								
								
									
										8
									
								
								vendor/github.com/apache/thrift/doap.rdf
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/apache/thrift/doap.rdf
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,8 +1,8 @@ | ||||
| <?xml version="1.0"?> | ||||
| <?xml-stylesheet type="text/xsl"?> | ||||
| <rdf:RDF xml:lang="en" | ||||
|          xmlns="http://usefulinc.com/ns/doap#" | ||||
|          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|          xmlns="http://usefulinc.com/ns/doap#"  | ||||
|          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  | ||||
|          xmlns:asfext="http://projects.apache.org/ns/asfext#" | ||||
|          xmlns:foaf="http://xmlns.com/foaf/0.1/"> | ||||
| <!-- | ||||
| @@ -12,9 +12,9 @@ | ||||
|     The ASF licenses this file to You under the Apache License, Version 2.0 | ||||
|     (the "License"); you may not use this file except in compliance with | ||||
|     the License.  You may obtain a copy of the License at | ||||
|  | ||||
|     | ||||
|          http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|     | ||||
|     Unless required by applicable law or agreed to in writing, software | ||||
|     distributed under the License is distributed on an "AS IS" BASIS, | ||||
|     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|   | ||||
							
								
								
									
										8
									
								
								vendor/github.com/apache/thrift/lib/Makefile.am
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/apache/thrift/lib/Makefile.am
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -71,6 +71,10 @@ if WITH_DART | ||||
| SUBDIRS += dart | ||||
| endif | ||||
|  | ||||
| if WITH_DOTNETCORE | ||||
| SUBDIRS += netcore | ||||
| endif | ||||
|  | ||||
| if WITH_GO | ||||
| SUBDIRS += go | ||||
| endif | ||||
| @@ -89,6 +93,10 @@ if WITH_LUA | ||||
| SUBDIRS += lua | ||||
| endif | ||||
|  | ||||
| if WITH_RS | ||||
| SUBDIRS += rs | ||||
| endif | ||||
|  | ||||
| # All of the libs that don't use Automake need to go in here | ||||
| # so they will end up in our release tarballs. | ||||
| EXTRA_DIST = \ | ||||
|   | ||||
							
								
								
									
										9
									
								
								vendor/github.com/apache/thrift/lib/go/Makefile.am
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/apache/thrift/lib/go/Makefile.am
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -31,10 +31,15 @@ install: | ||||
| 	@echo '##############################################################' | ||||
|  | ||||
| check-local: | ||||
| 	$(GO) test ./thrift | ||||
| 	GOPATH=`pwd` $(GO) get golang.org/x/net/context | ||||
| 	GOPATH=`pwd` $(GO) test -race ./thrift | ||||
|  | ||||
| clean-local: | ||||
| 	$(RM) -rf pkg | ||||
|  | ||||
| all-local: | ||||
| 	$(GO) build ./thrift | ||||
| 	GOPATH=`pwd` $(GO) get golang.org/x/net/context | ||||
| 	GOPATH=`pwd` $(GO) build ./thrift | ||||
|  | ||||
| EXTRA_DIST = \ | ||||
| 	thrift \ | ||||
|   | ||||
							
								
								
									
										46
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/application_exception.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/application_exception.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -30,11 +30,22 @@ const ( | ||||
| 	PROTOCOL_ERROR                 = 7 | ||||
| ) | ||||
|  | ||||
| var defaultApplicationExceptionMessage = map[int32]string{ | ||||
| 	UNKNOWN_APPLICATION_EXCEPTION:  "unknown application exception", | ||||
| 	UNKNOWN_METHOD:                 "unknown method", | ||||
| 	INVALID_MESSAGE_TYPE_EXCEPTION: "invalid message type", | ||||
| 	WRONG_METHOD_NAME:              "wrong method name", | ||||
| 	BAD_SEQUENCE_ID:                "bad sequence ID", | ||||
| 	MISSING_RESULT:                 "missing result", | ||||
| 	INTERNAL_ERROR:                 "unknown internal error", | ||||
| 	PROTOCOL_ERROR:                 "unknown protocol error", | ||||
| } | ||||
|  | ||||
| // Application level Thrift exception | ||||
| type TApplicationException interface { | ||||
| 	TException | ||||
| 	TypeId() int32 | ||||
| 	Read(iprot TProtocol) (TApplicationException, error) | ||||
| 	Read(iprot TProtocol) error | ||||
| 	Write(oprot TProtocol) error | ||||
| } | ||||
|  | ||||
| @@ -44,7 +55,10 @@ type tApplicationException struct { | ||||
| } | ||||
|  | ||||
| func (e tApplicationException) Error() string { | ||||
| 	return e.message | ||||
| 	if e.message != "" { | ||||
| 		return e.message | ||||
| 	} | ||||
| 	return defaultApplicationExceptionMessage[e.type_] | ||||
| } | ||||
|  | ||||
| func NewTApplicationException(type_ int32, message string) TApplicationException { | ||||
| @@ -55,10 +69,11 @@ func (p *tApplicationException) TypeId() int32 { | ||||
| 	return p.type_ | ||||
| } | ||||
|  | ||||
| func (p *tApplicationException) Read(iprot TProtocol) (TApplicationException, error) { | ||||
| func (p *tApplicationException) Read(iprot TProtocol) error { | ||||
| 	// TODO: this should really be generated by the compiler | ||||
| 	_, err := iprot.ReadStructBegin() | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	message := "" | ||||
| @@ -67,7 +82,7 @@ func (p *tApplicationException) Read(iprot TProtocol) (TApplicationException, er | ||||
| 	for { | ||||
| 		_, ttype, id, err := iprot.ReadFieldBegin() | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 			return err | ||||
| 		} | ||||
| 		if ttype == STOP { | ||||
| 			break | ||||
| @@ -76,33 +91,40 @@ func (p *tApplicationException) Read(iprot TProtocol) (TApplicationException, er | ||||
| 		case 1: | ||||
| 			if ttype == STRING { | ||||
| 				if message, err = iprot.ReadString(); err != nil { | ||||
| 					return nil, err | ||||
| 					return err | ||||
| 				} | ||||
| 			} else { | ||||
| 				if err = SkipDefaultDepth(iprot, ttype); err != nil { | ||||
| 					return nil, err | ||||
| 					return err | ||||
| 				} | ||||
| 			} | ||||
| 		case 2: | ||||
| 			if ttype == I32 { | ||||
| 				if type_, err = iprot.ReadI32(); err != nil { | ||||
| 					return nil, err | ||||
| 					return err | ||||
| 				} | ||||
| 			} else { | ||||
| 				if err = SkipDefaultDepth(iprot, ttype); err != nil { | ||||
| 					return nil, err | ||||
| 					return err | ||||
| 				} | ||||
| 			} | ||||
| 		default: | ||||
| 			if err = SkipDefaultDepth(iprot, ttype); err != nil { | ||||
| 				return nil, err | ||||
| 				return err | ||||
| 			} | ||||
| 		} | ||||
| 		if err = iprot.ReadFieldEnd(); err != nil { | ||||
| 			return nil, err | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 	return NewTApplicationException(type_, message), iprot.ReadStructEnd() | ||||
| 	if err := iprot.ReadStructEnd(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	p.message = message | ||||
| 	p.type_ = type_ | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (p *tApplicationException) Write(oprot TProtocol) (err error) { | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/application_exception_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/application_exception_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -25,7 +25,7 @@ import ( | ||||
|  | ||||
| func TestTApplicationException(t *testing.T) { | ||||
| 	exc := NewTApplicationException(UNKNOWN_APPLICATION_EXCEPTION, "") | ||||
| 	if exc.Error() != "" { | ||||
| 	if exc.Error() != defaultApplicationExceptionMessage[UNKNOWN_APPLICATION_EXCEPTION] { | ||||
| 		t.Fatalf("Expected empty string for exception but found '%s'", exc.Error()) | ||||
| 	} | ||||
| 	if exc.TypeId() != UNKNOWN_APPLICATION_EXCEPTION { | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/buffered_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/buffered_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -32,8 +32,8 @@ type TBufferedTransport struct { | ||||
| 	tp TTransport | ||||
| } | ||||
|  | ||||
| func (p *TBufferedTransportFactory) GetTransport(trans TTransport) TTransport { | ||||
| 	return NewTBufferedTransport(trans, p.size) | ||||
| func (p *TBufferedTransportFactory) GetTransport(trans TTransport) (TTransport, error) { | ||||
| 	return NewTBufferedTransport(trans, p.size), nil | ||||
| } | ||||
|  | ||||
| func NewTBufferedTransportFactory(bufferSize int) *TBufferedTransportFactory { | ||||
|   | ||||
							
								
								
									
										78
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/client.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/client.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| package thrift | ||||
|  | ||||
| import "fmt" | ||||
|  | ||||
| type TStandardClient struct { | ||||
| 	seqId        int32 | ||||
| 	iprot, oprot TProtocol | ||||
| } | ||||
|  | ||||
| // TStandardClient implements TClient, and uses the standard message format for Thrift. | ||||
| // It is not safe for concurrent use. | ||||
| func NewTStandardClient(inputProtocol, outputProtocol TProtocol) *TStandardClient { | ||||
| 	return &TStandardClient{ | ||||
| 		iprot: inputProtocol, | ||||
| 		oprot: outputProtocol, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (p *TStandardClient) Send(oprot TProtocol, seqId int32, method string, args TStruct) error { | ||||
| 	if err := oprot.WriteMessageBegin(method, CALL, seqId); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err := args.Write(oprot); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err := oprot.WriteMessageEnd(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	return oprot.Flush() | ||||
| } | ||||
|  | ||||
| func (p *TStandardClient) Recv(iprot TProtocol, seqId int32, method string, result TStruct) error { | ||||
| 	rMethod, rTypeId, rSeqId, err := iprot.ReadMessageBegin() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if method != rMethod { | ||||
| 		return NewTApplicationException(WRONG_METHOD_NAME, fmt.Sprintf("%s: wrong method name", method)) | ||||
| 	} else if seqId != rSeqId { | ||||
| 		return NewTApplicationException(BAD_SEQUENCE_ID, fmt.Sprintf("%s: out of order sequence response", method)) | ||||
| 	} else if rTypeId == EXCEPTION { | ||||
| 		var exception tApplicationException | ||||
| 		if err := exception.Read(iprot); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
|  | ||||
| 		if err := iprot.ReadMessageEnd(); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
|  | ||||
| 		return &exception | ||||
| 	} else if rTypeId != REPLY { | ||||
| 		return NewTApplicationException(INVALID_MESSAGE_TYPE_EXCEPTION, fmt.Sprintf("%s: invalid message type", method)) | ||||
| 	} | ||||
|  | ||||
| 	if err := result.Read(iprot); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	return iprot.ReadMessageEnd() | ||||
| } | ||||
|  | ||||
| func (p *TStandardClient) call(method string, args, result TStruct) error { | ||||
| 	p.seqId++ | ||||
| 	seqId := p.seqId | ||||
|  | ||||
| 	if err := p.Send(p.oprot, seqId, method, args); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// method is oneway | ||||
| 	if result == nil { | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	return p.Recv(p.iprot, seqId, method, result) | ||||
| } | ||||
							
								
								
									
										13
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/client_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/client_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| // +build go1.7 | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "context" | ||||
|  | ||||
| type TClient interface { | ||||
| 	Call(ctx context.Context, method string, args, result TStruct) error | ||||
| } | ||||
|  | ||||
| func (p *TStandardClient) Call(ctx context.Context, method string, args, result TStruct) error { | ||||
| 	return p.call(method, args, result) | ||||
| } | ||||
							
								
								
									
										13
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/client_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/client_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| // +build !go1.7 | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "golang.org/x/net/context" | ||||
|  | ||||
| type TClient interface { | ||||
| 	Call(ctx context.Context, method string, args, result TStruct) error | ||||
| } | ||||
|  | ||||
| func (p *TStandardClient) Call(ctx context.Context, method string, args, result TStruct) error { | ||||
| 	return p.call(method, args, result) | ||||
| } | ||||
							
								
								
									
										32
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/common_test_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/common_test_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| // +build go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "context" | ||||
|  | ||||
| type mockProcessor struct { | ||||
| 	ProcessFunc func(in, out TProtocol) (bool, TException) | ||||
| } | ||||
|  | ||||
| func (m *mockProcessor) Process(ctx context.Context, in, out TProtocol) (bool, TException) { | ||||
| 	return m.ProcessFunc(in, out) | ||||
| } | ||||
							
								
								
									
										32
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/common_test_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/common_test_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| // +build !go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "golang.org/x/net/context" | ||||
|  | ||||
| type mockProcessor struct { | ||||
| 	ProcessFunc func(in, out TProtocol) (bool, TException) | ||||
| } | ||||
|  | ||||
| func (m *mockProcessor) Process(ctx context.Context, in, out TProtocol) (bool, TException) { | ||||
| 	return m.ProcessFunc(in, out) | ||||
| } | ||||
							
								
								
									
										48
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/compact_protocol_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/compact_protocol_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,28 +26,28 @@ import ( | ||||
|  | ||||
| func TestReadWriteCompactProtocol(t *testing.T) { | ||||
| 	ReadWriteProtocolTest(t, NewTCompactProtocolFactory()) | ||||
| 	   transports := []TTransport{ | ||||
| 	     NewTMemoryBuffer(), | ||||
| 	     NewStreamTransportRW(bytes.NewBuffer(make([]byte, 0, 16384))), | ||||
| 	     NewTFramedTransport(NewTMemoryBuffer()), | ||||
| 	   } | ||||
| 	   for _, trans := range transports { | ||||
| 	     p := NewTCompactProtocol(trans); | ||||
| 	     ReadWriteBool(t, p, trans); | ||||
| 	     p = NewTCompactProtocol(trans); | ||||
| 	     ReadWriteByte(t, p, trans); | ||||
| 	     p = NewTCompactProtocol(trans); | ||||
| 	     ReadWriteI16(t, p, trans); | ||||
| 	     p = NewTCompactProtocol(trans); | ||||
| 	     ReadWriteI32(t, p, trans); | ||||
| 	     p = NewTCompactProtocol(trans); | ||||
| 	     ReadWriteI64(t, p, trans); | ||||
| 	     p = NewTCompactProtocol(trans); | ||||
| 	     ReadWriteDouble(t, p, trans); | ||||
| 	     p = NewTCompactProtocol(trans); | ||||
| 	     ReadWriteString(t, p, trans); | ||||
| 	     p = NewTCompactProtocol(trans); | ||||
| 	     ReadWriteBinary(t, p, trans); | ||||
| 	     trans.Close(); | ||||
| 	   } | ||||
| 	transports := []TTransport{ | ||||
| 		NewTMemoryBuffer(), | ||||
| 		NewStreamTransportRW(bytes.NewBuffer(make([]byte, 0, 16384))), | ||||
| 		NewTFramedTransport(NewTMemoryBuffer()), | ||||
| 	} | ||||
| 	for _, trans := range transports { | ||||
| 		p := NewTCompactProtocol(trans) | ||||
| 		ReadWriteBool(t, p, trans) | ||||
| 		p = NewTCompactProtocol(trans) | ||||
| 		ReadWriteByte(t, p, trans) | ||||
| 		p = NewTCompactProtocol(trans) | ||||
| 		ReadWriteI16(t, p, trans) | ||||
| 		p = NewTCompactProtocol(trans) | ||||
| 		ReadWriteI32(t, p, trans) | ||||
| 		p = NewTCompactProtocol(trans) | ||||
| 		ReadWriteI64(t, p, trans) | ||||
| 		p = NewTCompactProtocol(trans) | ||||
| 		ReadWriteDouble(t, p, trans) | ||||
| 		p = NewTCompactProtocol(trans) | ||||
| 		ReadWriteString(t, p, trans) | ||||
| 		p = NewTCompactProtocol(trans) | ||||
| 		ReadWriteBinary(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| } | ||||
|   | ||||
							
								
								
									
										13
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/framed_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/framed_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -48,11 +48,15 @@ func NewTFramedTransportFactory(factory TTransportFactory) TTransportFactory { | ||||
| } | ||||
|  | ||||
| func NewTFramedTransportFactoryMaxLength(factory TTransportFactory, maxLength uint32) TTransportFactory { | ||||
|         return &tFramedTransportFactory{factory: factory, maxLength: maxLength} | ||||
| 	return &tFramedTransportFactory{factory: factory, maxLength: maxLength} | ||||
| } | ||||
|  | ||||
| func (p *tFramedTransportFactory) GetTransport(base TTransport) TTransport { | ||||
| 	return NewTFramedTransportMaxLength(p.factory.GetTransport(base), p.maxLength) | ||||
| func (p *tFramedTransportFactory) GetTransport(base TTransport) (TTransport, error) { | ||||
| 	tt, err := p.factory.GetTransport(base) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return NewTFramedTransportMaxLength(tt, p.maxLength), nil | ||||
| } | ||||
|  | ||||
| func NewTFramedTransport(transport TTransport) *TFramedTransport { | ||||
| @@ -137,11 +141,13 @@ func (p *TFramedTransport) Flush() error { | ||||
| 	binary.BigEndian.PutUint32(buf, uint32(size)) | ||||
| 	_, err := p.transport.Write(buf) | ||||
| 	if err != nil { | ||||
| 		p.buf.Truncate(0) | ||||
| 		return NewTTransportExceptionFromError(err) | ||||
| 	} | ||||
| 	if size > 0 { | ||||
| 		if n, err := p.buf.WriteTo(p.transport); err != nil { | ||||
| 			print("Error while flushing write buffer of size ", size, " to transport, only wrote ", n, " bytes: ", err.Error(), "\n") | ||||
| 			p.buf.Truncate(0) | ||||
| 			return NewTTransportExceptionFromError(err) | ||||
| 		} | ||||
| 	} | ||||
| @@ -164,4 +170,3 @@ func (p *TFramedTransport) readFrameHeader() (uint32, error) { | ||||
| func (p *TFramedTransport) RemainingBytes() (num_bytes uint64) { | ||||
| 	return uint64(p.frameSize) | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										26
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| // +build go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "context" | ||||
|  | ||||
| var defaultCtx = context.Background() | ||||
							
								
								
									
										74
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -46,27 +46,16 @@ type THttpClient struct { | ||||
| type THttpClientTransportFactory struct { | ||||
| 	options THttpClientOptions | ||||
| 	url     string | ||||
| 	isPost  bool | ||||
| } | ||||
|  | ||||
| func (p *THttpClientTransportFactory) GetTransport(trans TTransport) TTransport { | ||||
| func (p *THttpClientTransportFactory) GetTransport(trans TTransport) (TTransport, error) { | ||||
| 	if trans != nil { | ||||
| 		t, ok := trans.(*THttpClient) | ||||
| 		if ok && t.url != nil { | ||||
| 			if t.requestBuffer != nil { | ||||
| 				t2, _ := NewTHttpPostClientWithOptions(t.url.String(), p.options) | ||||
| 				return t2 | ||||
| 			} | ||||
| 			t2, _ := NewTHttpClientWithOptions(t.url.String(), p.options) | ||||
| 			return t2 | ||||
| 			return NewTHttpClientWithOptions(t.url.String(), p.options) | ||||
| 		} | ||||
| 	} | ||||
| 	if p.isPost { | ||||
| 		s, _ := NewTHttpPostClientWithOptions(p.url, p.options) | ||||
| 		return s | ||||
| 	} | ||||
| 	s, _ := NewTHttpClientWithOptions(p.url, p.options) | ||||
| 	return s | ||||
| 	return NewTHttpClientWithOptions(p.url, p.options) | ||||
| } | ||||
|  | ||||
| type THttpClientOptions struct { | ||||
| @@ -79,39 +68,10 @@ func NewTHttpClientTransportFactory(url string) *THttpClientTransportFactory { | ||||
| } | ||||
|  | ||||
| func NewTHttpClientTransportFactoryWithOptions(url string, options THttpClientOptions) *THttpClientTransportFactory { | ||||
| 	return &THttpClientTransportFactory{url: url, isPost: false, options: options} | ||||
| } | ||||
|  | ||||
| func NewTHttpPostClientTransportFactory(url string) *THttpClientTransportFactory { | ||||
| 	return NewTHttpPostClientTransportFactoryWithOptions(url, THttpClientOptions{}) | ||||
| } | ||||
|  | ||||
| func NewTHttpPostClientTransportFactoryWithOptions(url string, options THttpClientOptions) *THttpClientTransportFactory { | ||||
| 	return &THttpClientTransportFactory{url: url, isPost: true, options: options} | ||||
| 	return &THttpClientTransportFactory{url: url, options: options} | ||||
| } | ||||
|  | ||||
| func NewTHttpClientWithOptions(urlstr string, options THttpClientOptions) (TTransport, error) { | ||||
| 	parsedURL, err := url.Parse(urlstr) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	response, err := http.Get(urlstr) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	client := options.Client | ||||
| 	if client == nil { | ||||
| 		client = DefaultHttpClient | ||||
| 	} | ||||
| 	httpHeader := map[string][]string{"Content-Type": []string{"application/x-thrift"}} | ||||
| 	return &THttpClient{client: client, response: response, url: parsedURL, header: httpHeader}, nil | ||||
| } | ||||
|  | ||||
| func NewTHttpClient(urlstr string) (TTransport, error) { | ||||
| 	return NewTHttpClientWithOptions(urlstr, THttpClientOptions{}) | ||||
| } | ||||
|  | ||||
| func NewTHttpPostClientWithOptions(urlstr string, options THttpClientOptions) (TTransport, error) { | ||||
| 	parsedURL, err := url.Parse(urlstr) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| @@ -121,12 +81,12 @@ func NewTHttpPostClientWithOptions(urlstr string, options THttpClientOptions) (T | ||||
| 	if client == nil { | ||||
| 		client = DefaultHttpClient | ||||
| 	} | ||||
| 	httpHeader := map[string][]string{"Content-Type": []string{"application/x-thrift"}} | ||||
| 	httpHeader := map[string][]string{"Content-Type": {"application/x-thrift"}} | ||||
| 	return &THttpClient{client: client, url: parsedURL, requestBuffer: bytes.NewBuffer(buf), header: httpHeader}, nil | ||||
| } | ||||
|  | ||||
| func NewTHttpPostClient(urlstr string) (TTransport, error) { | ||||
| 	return NewTHttpPostClientWithOptions(urlstr, THttpClientOptions{}) | ||||
| func NewTHttpClient(urlstr string) (TTransport, error) { | ||||
| 	return NewTHttpClientWithOptions(urlstr, THttpClientOptions{}) | ||||
| } | ||||
|  | ||||
| // Set the HTTP Header for this specific Thrift Transport | ||||
| @@ -256,3 +216,23 @@ func (p *THttpClient) RemainingBytes() (num_bytes uint64) { | ||||
| 	const maxSize = ^uint64(0) | ||||
| 	return maxSize // the thruth is, we just don't know unless framed is used | ||||
| } | ||||
|  | ||||
| // Deprecated: Use NewTHttpClientTransportFactory instead. | ||||
| func NewTHttpPostClientTransportFactory(url string) *THttpClientTransportFactory { | ||||
| 	return NewTHttpClientTransportFactoryWithOptions(url, THttpClientOptions{}) | ||||
| } | ||||
|  | ||||
| // Deprecated: Use NewTHttpClientTransportFactoryWithOptions instead. | ||||
| func NewTHttpPostClientTransportFactoryWithOptions(url string, options THttpClientOptions) *THttpClientTransportFactory { | ||||
| 	return NewTHttpClientTransportFactoryWithOptions(url, options) | ||||
| } | ||||
|  | ||||
| // Deprecated: Use NewTHttpClientWithOptions instead. | ||||
| func NewTHttpPostClientWithOptions(urlstr string, options THttpClientOptions) (TTransport, error) { | ||||
| 	return NewTHttpClientWithOptions(urlstr, options) | ||||
| } | ||||
|  | ||||
| // Deprecated: Use NewTHttpClient instead. | ||||
| func NewTHttpPostClient(urlstr string) (TTransport, error) { | ||||
| 	return NewTHttpClientWithOptions(urlstr, THttpClientOptions{}) | ||||
| } | ||||
|   | ||||
							
								
								
									
										35
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,16 +19,33 @@ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "net/http" | ||||
|  | ||||
| // NewThriftHandlerFunc is a function that create a ready to use Apache Thrift Handler function | ||||
| func NewThriftHandlerFunc(processor TProcessor, | ||||
| 	inPfactory, outPfactory TProtocolFactory) func(w http.ResponseWriter, r *http.Request) { | ||||
| import ( | ||||
| 	"compress/gzip" | ||||
| 	"io" | ||||
| 	"net/http" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| // gz transparently compresses the HTTP response if the client supports it. | ||||
| func gz(handler http.HandlerFunc) http.HandlerFunc { | ||||
| 	return func(w http.ResponseWriter, r *http.Request) { | ||||
| 		w.Header().Add("Content-Type", "application/x-thrift") | ||||
|  | ||||
| 		transport := NewStreamTransport(r.Body, w) | ||||
| 		processor.Process(inPfactory.GetProtocol(transport), outPfactory.GetProtocol(transport)) | ||||
| 		if !strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") { | ||||
| 			handler(w, r) | ||||
| 			return | ||||
| 		} | ||||
| 		w.Header().Set("Content-Encoding", "gzip") | ||||
| 		gz := gzip.NewWriter(w) | ||||
| 		defer gz.Close() | ||||
| 		gzw := gzipResponseWriter{Writer: gz, ResponseWriter: w} | ||||
| 		handler(gzw, r) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| type gzipResponseWriter struct { | ||||
| 	io.Writer | ||||
| 	http.ResponseWriter | ||||
| } | ||||
|  | ||||
| func (w gzipResponseWriter) Write(b []byte) (int, error) { | ||||
| 	return w.Writer.Write(b) | ||||
| } | ||||
|   | ||||
							
								
								
									
										38
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_transport_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_transport_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| // +build go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import ( | ||||
| 	"net/http" | ||||
| ) | ||||
|  | ||||
| // NewThriftHandlerFunc is a function that create a ready to use Apache Thrift Handler function | ||||
| func NewThriftHandlerFunc(processor TProcessor, | ||||
| 	inPfactory, outPfactory TProtocolFactory) func(w http.ResponseWriter, r *http.Request) { | ||||
|  | ||||
| 	return gz(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		w.Header().Add("Content-Type", "application/x-thrift") | ||||
|  | ||||
| 		transport := NewStreamTransport(r.Body, w) | ||||
| 		processor.Process(r.Context(), inPfactory.GetProtocol(transport), outPfactory.GetProtocol(transport)) | ||||
| 	}) | ||||
| } | ||||
							
								
								
									
										40
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_transport_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/http_transport_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| // +build !go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import ( | ||||
| 	"net/http" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
| ) | ||||
|  | ||||
| // NewThriftHandlerFunc is a function that create a ready to use Apache Thrift Handler function | ||||
| func NewThriftHandlerFunc(processor TProcessor, | ||||
| 	inPfactory, outPfactory TProtocolFactory) func(w http.ResponseWriter, r *http.Request) { | ||||
|  | ||||
| 	return gz(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		w.Header().Add("Content-Type", "application/x-thrift") | ||||
|  | ||||
| 		transport := NewStreamTransport(r.Body, w) | ||||
| 		processor.Process(context.Background(), inPfactory.GetProtocol(transport), outPfactory.GetProtocol(transport)) | ||||
| 	}) | ||||
| } | ||||
							
								
								
									
										25
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/iostream_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/iostream_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -38,38 +38,38 @@ type StreamTransportFactory struct { | ||||
| 	isReadWriter bool | ||||
| } | ||||
|  | ||||
| func (p *StreamTransportFactory) GetTransport(trans TTransport) TTransport { | ||||
| func (p *StreamTransportFactory) GetTransport(trans TTransport) (TTransport, error) { | ||||
| 	if trans != nil { | ||||
| 		t, ok := trans.(*StreamTransport) | ||||
| 		if ok { | ||||
| 			if t.isReadWriter { | ||||
| 				return NewStreamTransportRW(t.Reader.(io.ReadWriter)) | ||||
| 				return NewStreamTransportRW(t.Reader.(io.ReadWriter)), nil | ||||
| 			} | ||||
| 			if t.Reader != nil && t.Writer != nil { | ||||
| 				return NewStreamTransport(t.Reader, t.Writer) | ||||
| 				return NewStreamTransport(t.Reader, t.Writer), nil | ||||
| 			} | ||||
| 			if t.Reader != nil && t.Writer == nil { | ||||
| 				return NewStreamTransportR(t.Reader) | ||||
| 				return NewStreamTransportR(t.Reader), nil | ||||
| 			} | ||||
| 			if t.Reader == nil && t.Writer != nil { | ||||
| 				return NewStreamTransportW(t.Writer) | ||||
| 				return NewStreamTransportW(t.Writer), nil | ||||
| 			} | ||||
| 			return &StreamTransport{} | ||||
| 			return &StreamTransport{}, nil | ||||
| 		} | ||||
| 	} | ||||
| 	if p.isReadWriter { | ||||
| 		return NewStreamTransportRW(p.Reader.(io.ReadWriter)) | ||||
| 		return NewStreamTransportRW(p.Reader.(io.ReadWriter)), nil | ||||
| 	} | ||||
| 	if p.Reader != nil && p.Writer != nil { | ||||
| 		return NewStreamTransport(p.Reader, p.Writer) | ||||
| 		return NewStreamTransport(p.Reader, p.Writer), nil | ||||
| 	} | ||||
| 	if p.Reader != nil && p.Writer == nil { | ||||
| 		return NewStreamTransportR(p.Reader) | ||||
| 		return NewStreamTransportR(p.Reader), nil | ||||
| 	} | ||||
| 	if p.Reader == nil && p.Writer != nil { | ||||
| 		return NewStreamTransportW(p.Writer) | ||||
| 		return NewStreamTransportW(p.Writer), nil | ||||
| 	} | ||||
| 	return &StreamTransport{} | ||||
| 	return &StreamTransport{}, nil | ||||
| } | ||||
|  | ||||
| func NewStreamTransportFactory(reader io.Reader, writer io.Writer, isReadWriter bool) *StreamTransportFactory { | ||||
| @@ -209,6 +209,5 @@ func (p *StreamTransport) WriteString(s string) (n int, err error) { | ||||
|  | ||||
| func (p *StreamTransport) RemainingBytes() (num_bytes uint64) { | ||||
| 	const maxSize = ^uint64(0) | ||||
| 	return maxSize  // the thruth is, we just don't know unless framed is used | ||||
| 	return maxSize // the thruth is, we just don't know unless framed is used | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										240
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/lowlevel_benchmarks_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										240
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/lowlevel_benchmarks_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -36,7 +36,10 @@ var tfv = []TTransportFactory{ | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryBool_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBool(b, p, trans) | ||||
| @@ -44,7 +47,10 @@ func BenchmarkBinaryBool_0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryByte_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteByte(b, p, trans) | ||||
| @@ -52,7 +58,10 @@ func BenchmarkBinaryByte_0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryI16_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI16(b, p, trans) | ||||
| @@ -60,35 +69,50 @@ func BenchmarkBinaryI16_0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryI32_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI32(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryI64_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI64(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryDouble_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteDouble(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryString_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteString(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryBinary_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBinary(b, p, trans) | ||||
| @@ -96,7 +120,10 @@ func BenchmarkBinaryBinary_0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryBool_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBool(b, p, trans) | ||||
| @@ -104,7 +131,10 @@ func BenchmarkBinaryBool_1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryByte_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteByte(b, p, trans) | ||||
| @@ -112,7 +142,10 @@ func BenchmarkBinaryByte_1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryI16_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI16(b, p, trans) | ||||
| @@ -120,35 +153,50 @@ func BenchmarkBinaryI16_1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryI32_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI32(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryI64_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI64(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryDouble_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteDouble(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryString_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteString(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryBinary_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBinary(b, p, trans) | ||||
| @@ -156,7 +204,10 @@ func BenchmarkBinaryBinary_1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryBool_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBool(b, p, trans) | ||||
| @@ -164,7 +215,10 @@ func BenchmarkBinaryBool_2(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryByte_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteByte(b, p, trans) | ||||
| @@ -172,7 +226,10 @@ func BenchmarkBinaryByte_2(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryI16_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI16(b, p, trans) | ||||
| @@ -180,35 +237,50 @@ func BenchmarkBinaryI16_2(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkBinaryI32_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI32(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryI64_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI64(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryDouble_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteDouble(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryString_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteString(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkBinaryBinary_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := binaryProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBinary(b, p, trans) | ||||
| @@ -216,7 +288,10 @@ func BenchmarkBinaryBinary_2(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactBool_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBool(b, p, trans) | ||||
| @@ -224,7 +299,10 @@ func BenchmarkCompactBool_0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactByte_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteByte(b, p, trans) | ||||
| @@ -232,7 +310,10 @@ func BenchmarkCompactByte_0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactI16_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI16(b, p, trans) | ||||
| @@ -240,35 +321,50 @@ func BenchmarkCompactI16_0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactI32_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI32(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactI64_0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI64(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactDouble0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteDouble(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactString0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteString(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactBinary0(b *testing.B) { | ||||
| 	trans := tfv[0].GetTransport(nil) | ||||
| 	trans, err := tfv[0].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBinary(b, p, trans) | ||||
| @@ -276,7 +372,10 @@ func BenchmarkCompactBinary0(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactBool_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBool(b, p, trans) | ||||
| @@ -284,7 +383,10 @@ func BenchmarkCompactBool_1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactByte_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteByte(b, p, trans) | ||||
| @@ -292,7 +394,10 @@ func BenchmarkCompactByte_1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactI16_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI16(b, p, trans) | ||||
| @@ -300,35 +405,50 @@ func BenchmarkCompactI16_1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactI32_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI32(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactI64_1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI64(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactDouble1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteDouble(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactString1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteString(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactBinary1(b *testing.B) { | ||||
| 	trans := tfv[1].GetTransport(nil) | ||||
| 	trans, err := tfv[1].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBinary(b, p, trans) | ||||
| @@ -336,7 +456,10 @@ func BenchmarkCompactBinary1(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactBool_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBool(b, p, trans) | ||||
| @@ -344,7 +467,10 @@ func BenchmarkCompactBool_2(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactByte_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteByte(b, p, trans) | ||||
| @@ -352,7 +478,10 @@ func BenchmarkCompactByte_2(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactI16_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI16(b, p, trans) | ||||
| @@ -360,35 +489,50 @@ func BenchmarkCompactI16_2(b *testing.B) { | ||||
| } | ||||
|  | ||||
| func BenchmarkCompactI32_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI32(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactI64_2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteI64(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactDouble2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteDouble(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactString2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteString(b, p, trans) | ||||
| 	} | ||||
| } | ||||
| func BenchmarkCompactBinary2(b *testing.B) { | ||||
| 	trans := tfv[2].GetTransport(nil) | ||||
| 	trans, err := tfv[2].GetTransport(nil) | ||||
| 	if err != nil { | ||||
| 		b.Fatal(err) | ||||
| 	} | ||||
| 	p := compactProtoF.GetProtocol(trans) | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		ReadWriteBinary(b, p, trans) | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/memory_buffer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/memory_buffer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -33,14 +33,14 @@ type TMemoryBufferTransportFactory struct { | ||||
| 	size int | ||||
| } | ||||
|  | ||||
| func (p *TMemoryBufferTransportFactory) GetTransport(trans TTransport) TTransport { | ||||
| func (p *TMemoryBufferTransportFactory) GetTransport(trans TTransport) (TTransport, error) { | ||||
| 	if trans != nil { | ||||
| 		t, ok := trans.(*TMemoryBuffer) | ||||
| 		if ok && t.size > 0 { | ||||
| 			return NewTMemoryBufferLen(t.size) | ||||
| 			return NewTMemoryBufferLen(t.size), nil | ||||
| 		} | ||||
| 	} | ||||
| 	return NewTMemoryBufferLen(p.size) | ||||
| 	return NewTMemoryBufferLen(p.size), nil | ||||
| } | ||||
|  | ||||
| func NewTMemoryBufferTransportFactory(size int) *TMemoryBufferTransportFactory { | ||||
|   | ||||
							
								
								
									
										30
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/multiplexed_protocol.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/multiplexed_protocol.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,11 +19,6 @@ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| /* | ||||
| TMultiplexedProtocol is a protocol-independent concrete decorator | ||||
| that allows a Thrift client to communicate with a multiplexing Thrift server, | ||||
| @@ -127,31 +122,6 @@ func (t *TMultiplexedProcessor) RegisterProcessor(name string, processor TProces | ||||
| 	t.serviceProcessorMap[name] = processor | ||||
| } | ||||
|  | ||||
| func (t *TMultiplexedProcessor) Process(in, out TProtocol) (bool, TException) { | ||||
| 	name, typeId, seqid, err := in.ReadMessageBegin() | ||||
| 	if err != nil { | ||||
| 		return false, err | ||||
| 	} | ||||
| 	if typeId != CALL && typeId != ONEWAY { | ||||
| 		return false, fmt.Errorf("Unexpected message type %v", typeId) | ||||
| 	} | ||||
| 	//extract the service name | ||||
| 	v := strings.SplitN(name, MULTIPLEXED_SEPARATOR, 2) | ||||
| 	if len(v) != 2 { | ||||
| 		if t.DefaultProcessor != nil { | ||||
| 			smb := NewStoredMessageProtocol(in, name, typeId, seqid) | ||||
| 			return t.DefaultProcessor.Process(smb, out) | ||||
| 		} | ||||
| 		return false, fmt.Errorf("Service name not found in message name: %s.  Did you forget to use a TMultiplexProtocol in your client?", name) | ||||
| 	} | ||||
| 	actualProcessor, ok := t.serviceProcessorMap[v[0]] | ||||
| 	if !ok { | ||||
| 		return false, fmt.Errorf("Service name not found: %s.  Did you forget to call registerProcessor()?", v[0]) | ||||
| 	} | ||||
| 	smb := NewStoredMessageProtocol(in, v[1], typeId, seqid) | ||||
| 	return actualProcessor.Process(smb, out) | ||||
| } | ||||
|  | ||||
| //Protocol that use stored message for ReadMessageBegin | ||||
| type storedMessageProtocol struct { | ||||
| 	TProtocol | ||||
|   | ||||
							
								
								
									
										53
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/multiplexed_protocol_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/multiplexed_protocol_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| // +build go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| func (t *TMultiplexedProcessor) Process(ctx context.Context, in, out TProtocol) (bool, TException) { | ||||
| 	name, typeId, seqid, err := in.ReadMessageBegin() | ||||
| 	if err != nil { | ||||
| 		return false, err | ||||
| 	} | ||||
| 	if typeId != CALL && typeId != ONEWAY { | ||||
| 		return false, fmt.Errorf("Unexpected message type %v", typeId) | ||||
| 	} | ||||
| 	//extract the service name | ||||
| 	v := strings.SplitN(name, MULTIPLEXED_SEPARATOR, 2) | ||||
| 	if len(v) != 2 { | ||||
| 		if t.DefaultProcessor != nil { | ||||
| 			smb := NewStoredMessageProtocol(in, name, typeId, seqid) | ||||
| 			return t.DefaultProcessor.Process(ctx, smb, out) | ||||
| 		} | ||||
| 		return false, fmt.Errorf("Service name not found in message name: %s.  Did you forget to use a TMultiplexProtocol in your client?", name) | ||||
| 	} | ||||
| 	actualProcessor, ok := t.serviceProcessorMap[v[0]] | ||||
| 	if !ok { | ||||
| 		return false, fmt.Errorf("Service name not found: %s.  Did you forget to call registerProcessor()?", v[0]) | ||||
| 	} | ||||
| 	smb := NewStoredMessageProtocol(in, v[1], typeId, seqid) | ||||
| 	return actualProcessor.Process(ctx, smb, out) | ||||
| } | ||||
							
								
								
									
										54
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/multiplexed_protocol_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/multiplexed_protocol_pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| // +build !go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"strings" | ||||
|  | ||||
| 	"golang.org/x/net/context" | ||||
| ) | ||||
|  | ||||
| func (t *TMultiplexedProcessor) Process(ctx context.Context, in, out TProtocol) (bool, TException) { | ||||
| 	name, typeId, seqid, err := in.ReadMessageBegin() | ||||
| 	if err != nil { | ||||
| 		return false, err | ||||
| 	} | ||||
| 	if typeId != CALL && typeId != ONEWAY { | ||||
| 		return false, fmt.Errorf("Unexpected message type %v", typeId) | ||||
| 	} | ||||
| 	//extract the service name | ||||
| 	v := strings.SplitN(name, MULTIPLEXED_SEPARATOR, 2) | ||||
| 	if len(v) != 2 { | ||||
| 		if t.DefaultProcessor != nil { | ||||
| 			smb := NewStoredMessageProtocol(in, name, typeId, seqid) | ||||
| 			return t.DefaultProcessor.Process(ctx, smb, out) | ||||
| 		} | ||||
| 		return false, fmt.Errorf("Service name not found in message name: %s.  Did you forget to use a TMultiplexProtocol in your client?", name) | ||||
| 	} | ||||
| 	actualProcessor, ok := t.serviceProcessorMap[v[0]] | ||||
| 	if !ok { | ||||
| 		return false, fmt.Errorf("Service name not found: %s.  Did you forget to call registerProcessor()?", v[0]) | ||||
| 	} | ||||
| 	smb := NewStoredMessageProtocol(in, v[1], typeId, seqid) | ||||
| 	return actualProcessor.Process(ctx, smb, out) | ||||
| } | ||||
							
								
								
									
										26
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/pre_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| // +build !go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "golang.org/x/net/context" | ||||
|  | ||||
| var defaultCtx = context.Background() | ||||
							
								
								
									
										8
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/processor.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/processor.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,3 +1,5 @@ | ||||
| // +build !go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
| @@ -19,12 +21,14 @@ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "golang.org/x/net/context" | ||||
|  | ||||
| // A processor is a generic object which operates upon an input stream and | ||||
| // writes to some output stream. | ||||
| type TProcessor interface { | ||||
| 	Process(in, out TProtocol) (bool, TException) | ||||
| 	Process(ctx context.Context, in, out TProtocol) (bool, TException) | ||||
| } | ||||
|  | ||||
| type TProcessorFunction interface { | ||||
| 	Process(seqId int32, in, out TProtocol) (bool, TException) | ||||
| 	Process(ctx context.Context, seqId int32, in, out TProtocol) (bool, TException) | ||||
| } | ||||
|   | ||||
							
								
								
									
										34
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/processor_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/processor_go17.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| // +build go1.7 | ||||
|  | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import "context" | ||||
|  | ||||
| // A processor is a generic object which operates upon an input stream and | ||||
| // writes to some output stream. | ||||
| type TProcessor interface { | ||||
| 	Process(ctx context.Context, in, out TProtocol) (bool, TException) | ||||
| } | ||||
|  | ||||
| type TProcessorFunction interface { | ||||
| 	Process(ctx context.Context, seqId int32, in, out TProtocol) (bool, TException) | ||||
| } | ||||
							
								
								
									
										9
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/protocol.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/protocol.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -21,6 +21,7 @@ package thrift | ||||
|  | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -88,9 +89,9 @@ func SkipDefaultDepth(prot TProtocol, typeId TType) (err error) { | ||||
|  | ||||
| // Skips over the next data element from the provided input TProtocol object. | ||||
| func Skip(self TProtocol, fieldType TType, maxDepth int) (err error) { | ||||
| 	 | ||||
|     if maxDepth <= 0 { | ||||
| 		return NewTProtocolExceptionWithType( DEPTH_LIMIT, errors.New("Depth limit exceeded")) | ||||
|  | ||||
| 	if maxDepth <= 0 { | ||||
| 		return NewTProtocolExceptionWithType(DEPTH_LIMIT, errors.New("Depth limit exceeded")) | ||||
| 	} | ||||
|  | ||||
| 	switch fieldType { | ||||
| @@ -170,6 +171,8 @@ func Skip(self TProtocol, fieldType TType, maxDepth int) (err error) { | ||||
| 			} | ||||
| 		} | ||||
| 		return self.ReadListEnd() | ||||
| 	default: | ||||
| 		return NewTProtocolExceptionWithType(INVALID_DATA, errors.New(fmt.Sprintf("Unknown data type %d", fieldType))) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/protocol_exception.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/protocol_exception.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -60,7 +60,7 @@ func NewTProtocolException(err error) TProtocolException { | ||||
| 	if err == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	if e,ok := err.(TProtocolException); ok { | ||||
| 	if e, ok := err.(TProtocolException); ok { | ||||
| 		return e | ||||
| 	} | ||||
| 	if _, ok := err.(base64.CorruptInputError); ok { | ||||
| @@ -75,4 +75,3 @@ func NewTProtocolExceptionWithType(errType int, err error) TProtocolException { | ||||
| 	} | ||||
| 	return &tProtocolException{errType, err.Error()} | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										54
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/protocol_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/protocol_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -123,55 +123,91 @@ func ReadWriteProtocolTest(t *testing.T, protocolFactory TProtocolFactory) { | ||||
| 		NewTHttpPostClientTransportFactory("http://" + addr.String()), | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteBool(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteByte(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteI16(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteI32(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteI64(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteDouble(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteString(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteBinary(t, p, trans) | ||||
| 		trans.Close() | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		p := protocolFactory.GetProtocol(trans) | ||||
| 		ReadWriteI64(t, p, trans) | ||||
| 		ReadWriteDouble(t, p, trans) | ||||
|   | ||||
							
								
								
									
										1
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/rich_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/rich_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -66,4 +66,3 @@ func writeByte(w io.Writer, c byte) error { | ||||
| 	_, err := w.Write(v[0:1]) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/rich_transport_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/rich_transport_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -37,7 +37,11 @@ func TestEnsureTransportsAreRich(t *testing.T) { | ||||
| 		NewTHttpPostClientTransportFactory("http://127.0.0.1"), | ||||
| 	} | ||||
| 	for _, tf := range transports { | ||||
| 		trans := tf.GetTransport(nil) | ||||
| 		trans, err := tf.GetTransport(nil) | ||||
| 		if err != nil { | ||||
| 			t.Error(err) | ||||
| 			continue | ||||
| 		} | ||||
| 		_, ok := trans.(TRichTransport) | ||||
| 		if !ok { | ||||
| 			t.Errorf("Transport %s does not implement TRichTransport interface", reflect.ValueOf(trans)) | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/serializer_types_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/serializer_types_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -598,7 +598,7 @@ func (p *MyTestStruct) writeField11(oprot TProtocol) (err error) { | ||||
| 	if err := oprot.WriteSetBegin(STRING, len(p.StringSet)); err != nil { | ||||
| 		return PrependError("error writing set begin: ", err) | ||||
| 	} | ||||
| 	for v, _ := range p.StringSet { | ||||
| 	for v := range p.StringSet { | ||||
| 		if err := oprot.WriteString(string(v)); err != nil { | ||||
| 			return PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err) | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										18
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/server_socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/server_socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -47,7 +47,14 @@ func NewTServerSocketTimeout(listenAddr string, clientTimeout time.Duration) (*T | ||||
| 	return &TServerSocket{addr: addr, clientTimeout: clientTimeout}, nil | ||||
| } | ||||
|  | ||||
| // Creates a TServerSocket from a net.Addr | ||||
| func NewTServerSocketFromAddrTimeout(addr net.Addr, clientTimeout time.Duration) *TServerSocket { | ||||
| 	return &TServerSocket{addr: addr, clientTimeout: clientTimeout} | ||||
| } | ||||
|  | ||||
| func (p *TServerSocket) Listen() error { | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	if p.IsListening() { | ||||
| 		return nil | ||||
| 	} | ||||
| @@ -67,10 +74,13 @@ func (p *TServerSocket) Accept() (TTransport, error) { | ||||
| 	if interrupted { | ||||
| 		return nil, errTransportInterrupted | ||||
| 	} | ||||
| 	if p.listener == nil { | ||||
|  | ||||
| 	listener := p.listener | ||||
| 	if listener == nil { | ||||
| 		return nil, NewTTransportException(NOT_OPEN, "No underlying server socket") | ||||
| 	} | ||||
| 	conn, err := p.listener.Accept() | ||||
|  | ||||
| 	conn, err := listener.Accept() | ||||
| 	if err != nil { | ||||
| 		return nil, NewTTransportExceptionFromError(err) | ||||
| 	} | ||||
| @@ -84,6 +94,8 @@ func (p *TServerSocket) IsListening() bool { | ||||
|  | ||||
| // Connects the socket, creating a new socket object if necessary. | ||||
| func (p *TServerSocket) Open() error { | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	if p.IsListening() { | ||||
| 		return NewTTransportException(ALREADY_OPEN, "Server socket already open") | ||||
| 	} | ||||
| @@ -114,9 +126,9 @@ func (p *TServerSocket) Close() error { | ||||
|  | ||||
| func (p *TServerSocket) Interrupt() error { | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	p.interrupted = true | ||||
| 	p.Close() | ||||
| 	p.mu.Unlock() | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										10
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/server_socket_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/server_socket_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -41,6 +41,16 @@ func TestSocketIsntListeningAfterInterrupt(t *testing.T) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestSocketConcurrency(t *testing.T) { | ||||
| 	host := "127.0.0.1" | ||||
| 	port := 9090 | ||||
| 	addr := fmt.Sprintf("%s:%d", host, port) | ||||
|  | ||||
| 	socket := CreateServerSocket(t, addr) | ||||
| 	go func() { socket.Listen() }() | ||||
| 	go func() { socket.Interrupt() }() | ||||
| } | ||||
|  | ||||
| func CreateServerSocket(t *testing.T, addr string) *TServerSocket { | ||||
| 	socket, err := NewTServerSocket(addr) | ||||
| 	if err != nil { | ||||
|   | ||||
							
								
								
									
										57
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/simple_server.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										57
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/simple_server.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,11 +23,18 @@ import ( | ||||
| 	"log" | ||||
| 	"runtime/debug" | ||||
| 	"sync" | ||||
| 	"sync/atomic" | ||||
| ) | ||||
|  | ||||
| // Simple, non-concurrent server for testing. | ||||
| /* | ||||
|  * This is not a typical TSimpleServer as it is not blocked after accept a socket. | ||||
|  * It is more like a TThreadedServer that can handle different connections in different goroutines. | ||||
|  * This will work if golang user implements a conn-pool like thing in client side. | ||||
|  */ | ||||
| type TSimpleServer struct { | ||||
| 	quit chan struct{} | ||||
| 	closed int32 | ||||
| 	wg     sync.WaitGroup | ||||
| 	mu     sync.Mutex | ||||
|  | ||||
| 	processorFactory       TProcessorFactory | ||||
| 	serverTransport        TServerTransport | ||||
| @@ -87,7 +94,6 @@ func NewTSimpleServerFactory6(processorFactory TProcessorFactory, serverTranspor | ||||
| 		outputTransportFactory: outputTransportFactory, | ||||
| 		inputProtocolFactory:   inputProtocolFactory, | ||||
| 		outputProtocolFactory:  outputProtocolFactory, | ||||
| 		quit: make(chan struct{}, 1), | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @@ -122,21 +128,23 @@ func (p *TSimpleServer) Listen() error { | ||||
| func (p *TSimpleServer) AcceptLoop() error { | ||||
| 	for { | ||||
| 		client, err := p.serverTransport.Accept() | ||||
| 		p.mu.Lock() | ||||
| 		if atomic.LoadInt32(&p.closed) != 0 { | ||||
| 			return nil | ||||
| 		} | ||||
| 		if err != nil { | ||||
| 			select { | ||||
| 			case <-p.quit: | ||||
| 				return nil | ||||
| 			default: | ||||
| 			} | ||||
| 			return err | ||||
| 		} | ||||
| 		if client != nil { | ||||
| 			p.wg.Add(1) | ||||
| 			go func() { | ||||
| 				defer p.wg.Done() | ||||
| 				if err := p.processRequests(client); err != nil { | ||||
| 					log.Println("error processing request:", err) | ||||
| 				} | ||||
| 			}() | ||||
| 		} | ||||
| 		p.mu.Unlock() | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @@ -149,21 +157,28 @@ func (p *TSimpleServer) Serve() error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| var once sync.Once | ||||
|  | ||||
| func (p *TSimpleServer) Stop() error { | ||||
| 	q := func() { | ||||
| 		p.quit <- struct{}{} | ||||
| 		p.serverTransport.Interrupt() | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	if atomic.LoadInt32(&p.closed) != 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 	once.Do(q) | ||||
| 	atomic.StoreInt32(&p.closed, 1) | ||||
| 	p.serverTransport.Interrupt() | ||||
| 	p.wg.Wait() | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (p *TSimpleServer) processRequests(client TTransport) error { | ||||
| 	processor := p.processorFactory.GetProcessor(client) | ||||
| 	inputTransport := p.inputTransportFactory.GetTransport(client) | ||||
| 	outputTransport := p.outputTransportFactory.GetTransport(client) | ||||
| 	inputTransport, err := p.inputTransportFactory.GetTransport(client) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	outputTransport, err := p.outputTransportFactory.GetTransport(client) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	inputProtocol := p.inputProtocolFactory.GetProtocol(inputTransport) | ||||
| 	outputProtocol := p.outputProtocolFactory.GetProtocol(outputTransport) | ||||
| 	defer func() { | ||||
| @@ -171,6 +186,7 @@ func (p *TSimpleServer) processRequests(client TTransport) error { | ||||
| 			log.Printf("panic in processor: %s: %s", e, debug.Stack()) | ||||
| 		} | ||||
| 	}() | ||||
|  | ||||
| 	if inputTransport != nil { | ||||
| 		defer inputTransport.Close() | ||||
| 	} | ||||
| @@ -178,17 +194,20 @@ func (p *TSimpleServer) processRequests(client TTransport) error { | ||||
| 		defer outputTransport.Close() | ||||
| 	} | ||||
| 	for { | ||||
| 		ok, err := processor.Process(inputProtocol, outputProtocol) | ||||
| 		if atomic.LoadInt32(&p.closed) != 0 { | ||||
| 			return nil | ||||
| 		} | ||||
|  | ||||
| 		ok, err := processor.Process(defaultCtx, inputProtocol, outputProtocol) | ||||
| 		if err, ok := err.(TTransportException); ok && err.TypeId() == END_OF_FILE { | ||||
| 			return nil | ||||
| 		} else if err != nil { | ||||
| 			log.Printf("error processing request: %s", err) | ||||
| 			return err | ||||
| 		} | ||||
| 		if err, ok := err.(TApplicationException); ok && err.TypeId() == UNKNOWN_METHOD { | ||||
| 			continue | ||||
| 		} | ||||
|  		if !ok { | ||||
| 		if !ok { | ||||
| 			break | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										127
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/simple_server_test.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/simple_server_test.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,127 @@ | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements. See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership. The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License. You may obtain a copy of the License at | ||||
|  * | ||||
|  *   http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied. See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| package thrift | ||||
|  | ||||
| import ( | ||||
| 	"testing" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| type mockServerTransport struct { | ||||
| 	ListenFunc    func() error | ||||
| 	AcceptFunc    func() (TTransport, error) | ||||
| 	CloseFunc     func() error | ||||
| 	InterruptFunc func() error | ||||
| } | ||||
|  | ||||
| func (m *mockServerTransport) Listen() error { | ||||
| 	return m.ListenFunc() | ||||
| } | ||||
|  | ||||
| func (m *mockServerTransport) Accept() (TTransport, error) { | ||||
| 	return m.AcceptFunc() | ||||
| } | ||||
|  | ||||
| func (m *mockServerTransport) Close() error { | ||||
| 	return m.CloseFunc() | ||||
| } | ||||
|  | ||||
| func (m *mockServerTransport) Interrupt() error { | ||||
| 	return m.InterruptFunc() | ||||
| } | ||||
|  | ||||
| type mockTTransport struct { | ||||
| 	TTransport | ||||
| } | ||||
|  | ||||
| func (m *mockTTransport) Close() error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func TestMultipleStop(t *testing.T) { | ||||
| 	proc := &mockProcessor{ | ||||
| 		ProcessFunc: func(in, out TProtocol) (bool, TException) { | ||||
| 			return false, nil | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	var interruptCalled bool | ||||
| 	c := make(chan struct{}) | ||||
| 	trans := &mockServerTransport{ | ||||
| 		ListenFunc: func() error { | ||||
| 			return nil | ||||
| 		}, | ||||
| 		AcceptFunc: func() (TTransport, error) { | ||||
| 			<-c | ||||
| 			return nil, nil | ||||
| 		}, | ||||
| 		CloseFunc: func() error { | ||||
| 			c <- struct{}{} | ||||
| 			return nil | ||||
| 		}, | ||||
| 		InterruptFunc: func() error { | ||||
| 			interruptCalled = true | ||||
| 			return nil | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	serv := NewTSimpleServer2(proc, trans) | ||||
| 	go serv.Serve() | ||||
| 	serv.Stop() | ||||
| 	if !interruptCalled { | ||||
| 		t.Error("first server transport should have been interrupted") | ||||
| 	} | ||||
|  | ||||
| 	serv = NewTSimpleServer2(proc, trans) | ||||
| 	interruptCalled = false | ||||
| 	go serv.Serve() | ||||
| 	serv.Stop() | ||||
| 	if !interruptCalled { | ||||
| 		t.Error("second server transport should have been interrupted") | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func TestWaitRace(t *testing.T) { | ||||
| 	proc := &mockProcessor{ | ||||
| 		ProcessFunc: func(in, out TProtocol) (bool, TException) { | ||||
| 			return false, nil | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	trans := &mockServerTransport{ | ||||
| 		ListenFunc: func() error { | ||||
| 			return nil | ||||
| 		}, | ||||
| 		AcceptFunc: func() (TTransport, error) { | ||||
| 			return &mockTTransport{}, nil | ||||
| 		}, | ||||
| 		CloseFunc: func() error { | ||||
| 			return nil | ||||
| 		}, | ||||
| 		InterruptFunc: func() error { | ||||
| 			return nil | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	serv := NewTSimpleServer2(proc, trans) | ||||
| 	go serv.Serve() | ||||
| 	time.Sleep(1) | ||||
| 	serv.Stop() | ||||
| } | ||||
							
								
								
									
										3
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -161,6 +161,5 @@ func (p *TSocket) Interrupt() error { | ||||
|  | ||||
| func (p *TSocket) RemainingBytes() (num_bytes uint64) { | ||||
| 	const maxSize = ^uint64(0) | ||||
| 	return maxSize  // the thruth is, we just don't know unless framed is used | ||||
| 	return maxSize // the thruth is, we just don't know unless framed is used | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										5
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/ssl_server_socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/ssl_server_socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -20,9 +20,9 @@ | ||||
| package thrift | ||||
|  | ||||
| import ( | ||||
| 	"crypto/tls" | ||||
| 	"net" | ||||
| 	"time" | ||||
| 	"crypto/tls" | ||||
| ) | ||||
|  | ||||
| type TSSLServerSocket struct { | ||||
| @@ -38,6 +38,9 @@ func NewTSSLServerSocket(listenAddr string, cfg *tls.Config) (*TSSLServerSocket, | ||||
| } | ||||
|  | ||||
| func NewTSSLServerSocketTimeout(listenAddr string, cfg *tls.Config, clientTimeout time.Duration) (*TSSLServerSocket, error) { | ||||
| 	if cfg.MinVersion == 0 { | ||||
| 		cfg.MinVersion = tls.VersionTLS10 | ||||
| 	} | ||||
| 	addr, err := net.ResolveTCPAddr("tcp", listenAddr) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
|   | ||||
							
								
								
									
										12
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/ssl_socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/ssl_socket.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -48,6 +48,9 @@ func NewTSSLSocket(hostPort string, cfg *tls.Config) (*TSSLSocket, error) { | ||||
| // NewTSSLSocketTimeout creates a net.Conn-backed TTransport, given a host and port | ||||
| // it also accepts a tls Configuration and a timeout as a time.Duration | ||||
| func NewTSSLSocketTimeout(hostPort string, cfg *tls.Config, timeout time.Duration) (*TSSLSocket, error) { | ||||
| 	if cfg.MinVersion == 0 { | ||||
| 		cfg.MinVersion = tls.VersionTLS10 | ||||
| 	} | ||||
| 	return &TSSLSocket{hostPort: hostPort, timeout: timeout, cfg: cfg}, nil | ||||
| } | ||||
|  | ||||
| @@ -87,7 +90,8 @@ func (p *TSSLSocket) Open() error { | ||||
| 	// If we have a hostname, we need to pass the hostname to tls.Dial for | ||||
| 	// certificate hostname checks. | ||||
| 	if p.hostPort != "" { | ||||
| 		if p.conn, err = tls.Dial("tcp", p.hostPort, p.cfg); err != nil { | ||||
| 		if p.conn, err = tls.DialWithDialer(&net.Dialer{ | ||||
| 			Timeout: p.timeout}, "tcp", p.hostPort, p.cfg); err != nil { | ||||
| 			return NewTTransportException(NOT_OPEN, err.Error()) | ||||
| 		} | ||||
| 	} else { | ||||
| @@ -103,7 +107,8 @@ func (p *TSSLSocket) Open() error { | ||||
| 		if len(p.addr.String()) == 0 { | ||||
| 			return NewTTransportException(NOT_OPEN, "Cannot open bad address.") | ||||
| 		} | ||||
| 		if p.conn, err = tls.Dial(p.addr.Network(), p.addr.String(), p.cfg); err != nil { | ||||
| 		if p.conn, err = tls.DialWithDialer(&net.Dialer{ | ||||
| 			Timeout: p.timeout}, p.addr.Network(), p.addr.String(), p.cfg); err != nil { | ||||
| 			return NewTTransportException(NOT_OPEN, err.Error()) | ||||
| 		} | ||||
| 	} | ||||
| @@ -166,6 +171,5 @@ func (p *TSSLSocket) Interrupt() error { | ||||
|  | ||||
| func (p *TSSLSocket) RemainingBytes() (num_bytes uint64) { | ||||
| 	const maxSize = ^uint64(0) | ||||
| 	return maxSize  // the thruth is, we just don't know unless framed is used | ||||
| 	return maxSize // the thruth is, we just don't know unless framed is used | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -34,7 +34,6 @@ type ReadSizeProvider interface { | ||||
| 	RemainingBytes() (num_bytes uint64) | ||||
| } | ||||
|  | ||||
|  | ||||
| // Encapsulates the I/O layer | ||||
| type TTransport interface { | ||||
| 	io.ReadWriteCloser | ||||
| @@ -52,7 +51,6 @@ type stringWriter interface { | ||||
| 	WriteString(s string) (n int, err error) | ||||
| } | ||||
|  | ||||
|  | ||||
| // This is "enchanced" transport with extra capabilities. You need to use one of these | ||||
| // to construct protocol. | ||||
| // Notably, TSocket does not implement this interface, and it is always a mistake to use | ||||
| @@ -65,4 +63,3 @@ type TRichTransport interface { | ||||
| 	Flusher | ||||
| 	ReadSizeProvider | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/transport_factory.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/transport_factory.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -24,14 +24,14 @@ package thrift | ||||
| // a ServerTransport and then may want to mutate them (i.e. create | ||||
| // a BufferedTransport from the underlying base transport) | ||||
| type TTransportFactory interface { | ||||
| 	GetTransport(trans TTransport) TTransport | ||||
| 	GetTransport(trans TTransport) (TTransport, error) | ||||
| } | ||||
|  | ||||
| type tTransportFactory struct{} | ||||
|  | ||||
| // Return a wrapped instance of the base Transport. | ||||
| func (p *tTransportFactory) GetTransport(trans TTransport) TTransport { | ||||
| 	return trans | ||||
| func (p *tTransportFactory) GetTransport(trans TTransport) (TTransport, error) { | ||||
| 	return trans, nil | ||||
| } | ||||
|  | ||||
| func NewTTransportFactory() TTransportFactory { | ||||
|   | ||||
							
								
								
									
										24
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/zlib_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/zlib_transport.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -27,7 +27,8 @@ import ( | ||||
|  | ||||
| // TZlibTransportFactory is a factory for TZlibTransport instances | ||||
| type TZlibTransportFactory struct { | ||||
| 	level int | ||||
| 	level   int | ||||
| 	factory TTransportFactory | ||||
| } | ||||
|  | ||||
| // TZlibTransport is a TTransport implementation that makes use of zlib compression. | ||||
| @@ -38,14 +39,27 @@ type TZlibTransport struct { | ||||
| } | ||||
|  | ||||
| // GetTransport constructs a new instance of NewTZlibTransport | ||||
| func (p *TZlibTransportFactory) GetTransport(trans TTransport) TTransport { | ||||
| 	t, _ := NewTZlibTransport(trans, p.level) | ||||
| 	return t | ||||
| func (p *TZlibTransportFactory) GetTransport(trans TTransport) (TTransport, error) { | ||||
| 	if p.factory != nil { | ||||
| 		// wrap other factory | ||||
| 		var err error | ||||
| 		trans, err = p.factory.GetTransport(trans) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
| 	return NewTZlibTransport(trans, p.level) | ||||
| } | ||||
|  | ||||
| // NewTZlibTransportFactory constructs a new instance of NewTZlibTransportFactory | ||||
| func NewTZlibTransportFactory(level int) *TZlibTransportFactory { | ||||
| 	return &TZlibTransportFactory{level: level} | ||||
| 	return &TZlibTransportFactory{level: level, factory: nil} | ||||
| } | ||||
|  | ||||
| // NewTZlibTransportFactory constructs a new instance of TZlibTransportFactory | ||||
| // as a wrapper over existing transport factory | ||||
| func NewTZlibTransportFactoryWithFactory(level int, factory TTransportFactory) *TZlibTransportFactory { | ||||
| 	return &TZlibTransportFactory{level: level, factory: factory} | ||||
| } | ||||
|  | ||||
| // NewTZlibTransport constructs a new instance of TZlibTransport | ||||
|   | ||||
							
								
								
									
										29
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/zlib_transport_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/apache/thrift/lib/go/thrift/zlib_transport_test.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -31,3 +31,32 @@ func TestZlibTransport(t *testing.T) { | ||||
| 	} | ||||
| 	TransportTest(t, trans, trans) | ||||
| } | ||||
|  | ||||
| type DummyTransportFactory struct{} | ||||
|  | ||||
| func (p *DummyTransportFactory) GetTransport(trans TTransport) (TTransport, error) { | ||||
| 	return NewTMemoryBuffer(), nil | ||||
| } | ||||
|  | ||||
| func TestZlibFactoryTransportWithFactory(t *testing.T) { | ||||
| 	factory := NewTZlibTransportFactoryWithFactory( | ||||
| 		zlib.BestCompression, | ||||
| 		&DummyTransportFactory{}, | ||||
| 	) | ||||
| 	buffer := NewTMemoryBuffer() | ||||
| 	trans, err := factory.GetTransport(buffer) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	TransportTest(t, trans, trans) | ||||
| } | ||||
|  | ||||
| func TestZlibFactoryTransportWithoutFactory(t *testing.T) { | ||||
| 	factory := NewTZlibTransportFactoryWithFactory(zlib.BestCompression, nil) | ||||
| 	buffer := NewTMemoryBuffer() | ||||
| 	trans, err := factory.GetTransport(buffer) | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	TransportTest(t, trans, trans) | ||||
| } | ||||
|   | ||||
							
								
								
									
										26
									
								
								vendor/github.com/apache/thrift/package.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/apache/thrift/package.json
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,7 +6,7 @@ | ||||
|     "type": "git", | ||||
|     "url": "https://git-wip-us.apache.org/repos/asf/thrift.git" | ||||
|   }, | ||||
|   "version": "0.10.0", | ||||
|   "version": "1.0.0-dev", | ||||
|   "author": { | ||||
|     "name": "Apache Thrift Developers", | ||||
|     "email": "dev@thrift.apache.org", | ||||
| @@ -32,20 +32,24 @@ | ||||
|   }, | ||||
|   "main": "./lib/nodejs/lib/thrift", | ||||
|   "engines": { | ||||
|     "node": ">= 0.2.4" | ||||
|     "node": ">= 4.1.0" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "node-int64": "~0.3.0", | ||||
|     "q": "1.0.x", | ||||
|     "ws": "~0.4.32" | ||||
|     "node-int64": "^0.4.0", | ||||
|     "q": "^1.5.0", | ||||
|     "ws": ">= 2.2.3" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "buffer-equals": "^1.0.3", | ||||
|     "commander": "2.1.x", | ||||
|     "connect": "2.7.x", | ||||
|     "istanbul": "^0.3.5", | ||||
|     "run-browser": "^2.0.1", | ||||
|     "tape": "~3.5.0" | ||||
|     "buffer-equals": "^1.0.4", | ||||
|     "commander": "^2.11.0", | ||||
|     "connect": "^3.6.4", | ||||
|     "istanbul": "^0.4.5", | ||||
|     "jsdoc": ">=3.5.5", | ||||
|     "minimatch": "^3.0.4", | ||||
|     "phantomjs-prebuilt": "^2.1.7", | ||||
|     "run-browser": "^2.0.2", | ||||
|     "tape": "^4.8.0", | ||||
|     "utf-8-validate": "^3.0.0" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "cover": "lib/nodejs/test/testAll.sh COVER", | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/apache/thrift/sonar-project.properties
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/apache/thrift/sonar-project.properties
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -16,7 +16,7 @@ development, combines a software stack with a code generation engine to build | ||||
| services that work efficiently and seamlessly between all major languages. | ||||
|  | ||||
| # Apache Thrift Version | ||||
| sonar.projectVersion=0.10.0 | ||||
| sonar.projectVersion=1.0.0-dev | ||||
| # use this to set another version string | ||||
| # $ sonar-runner -D sonar.projectVersion=`git rev-parse HEAD` | ||||
| # set projectDate in combination with projectVersion for imports of old releases | ||||
| @@ -54,7 +54,7 @@ module1.sonar.projectName=Apache Thrift - Java Library | ||||
| module1.sonar.projectBaseDir=lib/java | ||||
| module1.sonar.sources=src | ||||
| module1.sonar.tests=test | ||||
| module1.sonar.binaries=build/libthrift-0.10.0.jar | ||||
| module1.sonar.binaries=build/libthrift-1.0.0.jar | ||||
| module1.sonar.libraries=build/lib/*.jar | ||||
| module1.sonar.language=java | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user