auser-poolparty 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION.yml +1 -1
- data/examples/monitored_cloud.rb +1 -1
- data/examples/thrift/thrift_example.rb +1 -1
- data/lib/proto/command_interface_handler.rb +1 -1
- data/vendor/gems/thrift/CHANGES +35 -0
- data/vendor/gems/thrift/CONTRIBUTORS +77 -0
- data/vendor/gems/thrift/DISCLAIMER +6 -0
- data/vendor/gems/thrift/LICENSE +202 -0
- data/vendor/gems/thrift/Makefile.am +28 -0
- data/vendor/gems/thrift/NEWS +79 -0
- data/vendor/gems/thrift/NOTICE +26 -0
- data/vendor/gems/thrift/README +137 -0
- data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +198 -0
- data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +107 -0
- data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +194 -0
- data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +173 -0
- data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +127 -0
- data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +39 -0
- data/vendor/gems/thrift/bootstrap.sh +35 -0
- data/vendor/gems/thrift/cleanup.sh +58 -0
- data/vendor/gems/thrift/compiler/cpp/Makefile.am +136 -0
- data/vendor/gems/thrift/compiler/cpp/README +39 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +2331 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +3003 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +1700 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +932 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +173 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +321 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +1445 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +637 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +3069 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +1673 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +77 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +1812 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +2281 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +2310 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +1114 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +1071 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +354 -0
- data/vendor/gems/thrift/compiler/cpp/src/globals.h +117 -0
- data/vendor/gems/thrift/compiler/cpp/src/main.cc +1207 -0
- data/vendor/gems/thrift/compiler/cpp/src/main.h +103 -0
- data/vendor/gems/thrift/compiler/cpp/src/md5.c +381 -0
- data/vendor/gems/thrift/compiler/cpp/src/md5.h +91 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +137 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +59 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +121 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +56 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +51 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +59 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +64 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +150 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +93 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +56 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +64 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +223 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +86 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +68 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +55 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +127 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +176 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +70 -0
- data/vendor/gems/thrift/compiler/cpp/src/platform.h +36 -0
- data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +303 -0
- data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +1140 -0
- data/vendor/gems/thrift/configure.ac +255 -0
- data/vendor/gems/thrift/contrib/fb303/LICENSE +16 -0
- data/vendor/gems/thrift/contrib/fb303/Makefile.am +31 -0
- data/vendor/gems/thrift/contrib/fb303/README +37 -0
- data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +258 -0
- data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +198 -0
- data/vendor/gems/thrift/contrib/fb303/bootstrap.sh +26 -0
- data/vendor/gems/thrift/contrib/fb303/configure.ac +115 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +124 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +103 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +84 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +481 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +215 -0
- data/vendor/gems/thrift/contrib/fb303/global_footer.mk +21 -0
- data/vendor/gems/thrift/contrib/fb303/global_header.mk +38 -0
- data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +112 -0
- data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +103 -0
- data/vendor/gems/thrift/contrib/fb303/java/build.xml +84 -0
- data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +89 -0
- data/vendor/gems/thrift/contrib/fb303/py/Makefile.am +44 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +82 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/__init__.py +20 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +195 -0
- data/vendor/gems/thrift/contrib/fb303/py/setup.py +27 -0
- data/vendor/gems/thrift/contrib/thrift.el +126 -0
- data/vendor/gems/thrift/contrib/thrift.spec +206 -0
- data/vendor/gems/thrift/contrib/thrift.vim +91 -0
- data/vendor/gems/thrift/contrib/thrift_dump.cpp +91 -0
- data/vendor/gems/thrift/doc/lgpl-2.1.txt +504 -0
- data/vendor/gems/thrift/doc/otp-base-license.txt +20 -0
- data/vendor/gems/thrift/doc/thrift.bnf +96 -0
- data/vendor/gems/thrift/doc/thrift.tex +1057 -0
- data/vendor/gems/thrift/lib/Makefile.am +55 -0
- data/vendor/gems/thrift/lib/cocoa/README +21 -0
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +44 -0
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +130 -0
- data/vendor/gems/thrift/lib/cocoa/src/TException.h +34 -0
- data/vendor/gems/thrift/lib/cocoa/src/TException.m +64 -0
- data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +27 -0
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +27 -0
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +51 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +51 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +477 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +148 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.h +25 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.m +23 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +104 -0
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +50 -0
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +153 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +42 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +159 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +35 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +91 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +38 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +89 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +32 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +58 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +36 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +30 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +43 -0
- data/vendor/gems/thrift/lib/cpp/Makefile.am +158 -0
- data/vendor/gems/thrift/lib/cpp/README +67 -0
- data/vendor/gems/thrift/lib/cpp/src/TLogging.h +163 -0
- data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +53 -0
- data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +96 -0
- data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +148 -0
- data/vendor/gems/thrift/lib/cpp/src/Thrift.h +191 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +60 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +77 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +137 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +84 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +160 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +114 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +314 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +130 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +125 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +493 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +169 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +284 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +122 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +55 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +100 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +155 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +354 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +379 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +155 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +122 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +77 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +264 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +79 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +42 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +394 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +254 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +736 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +279 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +346 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +225 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +762 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +253 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +998 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +340 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +304 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +438 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +104 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +187 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +750 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +435 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +38 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +213 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +118 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +70 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +217 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +79 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +243 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +74 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +370 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +667 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +77 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +73 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +953 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +442 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +348 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +111 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +368 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +76 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +92 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +96 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +54 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +41 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +591 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +242 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +235 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +191 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +224 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +31 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +117 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +178 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +287 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +299 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +219 -0
- data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +30 -0
- data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +30 -0
- data/vendor/gems/thrift/lib/cpp/thrift.pc.in +29 -0
- data/vendor/gems/thrift/lib/csharp/Makefile.am +70 -0
- data/vendor/gems/thrift/lib/csharp/README +26 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +55 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +242 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +62 -0
- data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +142 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +34 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +392 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +50 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessageType.cs +31 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +87 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +61 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +29 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +94 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +50 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +42 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +40 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +135 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +148 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +186 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +234 -0
- data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +131 -0
- data/vendor/gems/thrift/lib/csharp/src/TProcessor.cs +29 -0
- data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +73 -0
- data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +35 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +100 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +157 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +39 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +144 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +103 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +66 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +64 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +38 -0
- data/vendor/gems/thrift/lib/erl/Makefile +37 -0
- data/vendor/gems/thrift/lib/erl/README +56 -0
- data/vendor/gems/thrift/lib/erl/build/beamver +59 -0
- data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +15 -0
- data/vendor/gems/thrift/lib/erl/build/colors.mk +24 -0
- data/vendor/gems/thrift/lib/erl/build/docs.mk +12 -0
- data/vendor/gems/thrift/lib/erl/build/mime.types +98 -0
- data/vendor/gems/thrift/lib/erl/build/otp.mk +146 -0
- data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +85 -0
- data/vendor/gems/thrift/lib/erl/build/raw_test.mk +29 -0
- data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +54 -0
- data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +31 -0
- data/vendor/gems/thrift/lib/erl/src/Makefile +116 -0
- data/vendor/gems/thrift/lib/erl/src/test_handler.erl +26 -0
- data/vendor/gems/thrift/lib/erl/src/test_service.erl +29 -0
- data/vendor/gems/thrift/lib/erl/src/thrift.app.src +44 -0
- data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +1 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +64 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +325 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +180 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +384 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +118 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +87 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +208 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +199 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +164 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +188 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +356 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +183 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +25 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +249 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +119 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +57 -0
- data/vendor/gems/thrift/lib/erl/vsn.mk +1 -0
- data/vendor/gems/thrift/lib/hs/README +82 -0
- data/vendor/gems/thrift/lib/hs/Setup.lhs +23 -0
- data/vendor/gems/thrift/lib/hs/TODO +2 -0
- data/vendor/gems/thrift/lib/hs/Thrift.cabal +20 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift.hs +111 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +191 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +147 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +65 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +60 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +58 -0
- data/vendor/gems/thrift/lib/java/Makefile.am +38 -0
- data/vendor/gems/thrift/lib/java/README +43 -0
- data/vendor/gems/thrift/lib/java/build.xml +195 -0
- data/vendor/gems/thrift/lib/java/ivy.xml +8 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +171 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +123 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +66 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +102 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +46 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +94 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +45 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +30 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +32 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +39 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +110 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +69 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +42 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +29 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +29 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +128 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +331 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +741 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +48 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +927 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +38 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +40 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +48 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +146 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +81 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +30 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +158 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +42 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +384 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +36 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +40 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +304 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +772 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +126 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +145 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +271 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +126 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +157 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +159 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +98 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +160 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +213 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +145 -0
- metadata +348 -37
- data/vendor/gems/trollop/FAQ.txt +0 -35
- data/vendor/gems/trollop/History.txt +0 -84
- data/vendor/gems/trollop/Manifest.txt +0 -7
- data/vendor/gems/trollop/README.txt +0 -38
- data/vendor/gems/trollop/Rakefile +0 -36
- data/vendor/gems/trollop/lib/trollop.rb +0 -695
- data/vendor/gems/trollop/release-script.txt +0 -13
- data/vendor/gems/trollop/test/test_trollop.rb +0 -957
- data/vendor/gems/trollop/www/index.html +0 -167
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
package org.apache.thrift.server;
|
|
21
|
+
|
|
22
|
+
import org.apache.thrift.TProcessorFactory;
|
|
23
|
+
import org.apache.thrift.protocol.TBinaryProtocol;
|
|
24
|
+
import org.apache.thrift.protocol.TProtocolFactory;
|
|
25
|
+
import org.apache.thrift.transport.TServerTransport;
|
|
26
|
+
import org.apache.thrift.transport.TTransportFactory;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Generic interface for a Thrift server.
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
public abstract class TServer {
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Core processor
|
|
36
|
+
*/
|
|
37
|
+
protected TProcessorFactory processorFactory_;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Server transport
|
|
41
|
+
*/
|
|
42
|
+
protected TServerTransport serverTransport_;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Input Transport Factory
|
|
46
|
+
*/
|
|
47
|
+
protected TTransportFactory inputTransportFactory_;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Output Transport Factory
|
|
51
|
+
*/
|
|
52
|
+
protected TTransportFactory outputTransportFactory_;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Input Protocol Factory
|
|
56
|
+
*/
|
|
57
|
+
protected TProtocolFactory inputProtocolFactory_;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Output Protocol Factory
|
|
61
|
+
*/
|
|
62
|
+
protected TProtocolFactory outputProtocolFactory_;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Default constructors.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
protected TServer(TProcessorFactory processorFactory,
|
|
69
|
+
TServerTransport serverTransport) {
|
|
70
|
+
this(processorFactory,
|
|
71
|
+
serverTransport,
|
|
72
|
+
new TTransportFactory(),
|
|
73
|
+
new TTransportFactory(),
|
|
74
|
+
new TBinaryProtocol.Factory(),
|
|
75
|
+
new TBinaryProtocol.Factory());
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
protected TServer(TProcessorFactory processorFactory,
|
|
79
|
+
TServerTransport serverTransport,
|
|
80
|
+
TTransportFactory transportFactory) {
|
|
81
|
+
this(processorFactory,
|
|
82
|
+
serverTransport,
|
|
83
|
+
transportFactory,
|
|
84
|
+
transportFactory,
|
|
85
|
+
new TBinaryProtocol.Factory(),
|
|
86
|
+
new TBinaryProtocol.Factory());
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
protected TServer(TProcessorFactory processorFactory,
|
|
90
|
+
TServerTransport serverTransport,
|
|
91
|
+
TTransportFactory transportFactory,
|
|
92
|
+
TProtocolFactory protocolFactory) {
|
|
93
|
+
this(processorFactory,
|
|
94
|
+
serverTransport,
|
|
95
|
+
transportFactory,
|
|
96
|
+
transportFactory,
|
|
97
|
+
protocolFactory,
|
|
98
|
+
protocolFactory);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
protected TServer(TProcessorFactory processorFactory,
|
|
102
|
+
TServerTransport serverTransport,
|
|
103
|
+
TTransportFactory inputTransportFactory,
|
|
104
|
+
TTransportFactory outputTransportFactory,
|
|
105
|
+
TProtocolFactory inputProtocolFactory,
|
|
106
|
+
TProtocolFactory outputProtocolFactory) {
|
|
107
|
+
processorFactory_ = processorFactory;
|
|
108
|
+
serverTransport_ = serverTransport;
|
|
109
|
+
inputTransportFactory_ = inputTransportFactory;
|
|
110
|
+
outputTransportFactory_ = outputTransportFactory;
|
|
111
|
+
inputProtocolFactory_ = inputProtocolFactory;
|
|
112
|
+
outputProtocolFactory_ = outputProtocolFactory;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The run method fires up the server and gets things going.
|
|
117
|
+
*/
|
|
118
|
+
public abstract void serve();
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Stop the server. This is optional on a per-implementation basis. Not
|
|
122
|
+
* all servers are required to be cleanly stoppable.
|
|
123
|
+
*/
|
|
124
|
+
public void stop() {}
|
|
125
|
+
|
|
126
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
package org.apache.thrift.server;
|
|
21
|
+
|
|
22
|
+
import org.apache.thrift.TException;
|
|
23
|
+
import org.apache.thrift.TProcessor;
|
|
24
|
+
import org.apache.thrift.TProcessorFactory;
|
|
25
|
+
import org.apache.thrift.protocol.TProtocol;
|
|
26
|
+
import org.apache.thrift.protocol.TProtocolFactory;
|
|
27
|
+
import org.apache.thrift.transport.TServerTransport;
|
|
28
|
+
import org.apache.thrift.transport.TTransport;
|
|
29
|
+
import org.apache.thrift.transport.TTransportFactory;
|
|
30
|
+
import org.apache.thrift.transport.TTransportException;
|
|
31
|
+
|
|
32
|
+
import org.slf4j.Logger;
|
|
33
|
+
import org.slf4j.LoggerFactory;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Simple singlethreaded server for testing.
|
|
37
|
+
*
|
|
38
|
+
*/
|
|
39
|
+
public class TSimpleServer extends TServer {
|
|
40
|
+
|
|
41
|
+
private static final Logger LOGGER = LoggerFactory.getLogger(TSimpleServer.class.getName());
|
|
42
|
+
|
|
43
|
+
private boolean stopped_ = false;
|
|
44
|
+
|
|
45
|
+
public TSimpleServer(TProcessor processor,
|
|
46
|
+
TServerTransport serverTransport) {
|
|
47
|
+
super(new TProcessorFactory(processor), serverTransport);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public TSimpleServer(TProcessor processor,
|
|
51
|
+
TServerTransport serverTransport,
|
|
52
|
+
TTransportFactory transportFactory,
|
|
53
|
+
TProtocolFactory protocolFactory) {
|
|
54
|
+
super(new TProcessorFactory(processor), serverTransport, transportFactory, protocolFactory);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public TSimpleServer(TProcessor processor,
|
|
58
|
+
TServerTransport serverTransport,
|
|
59
|
+
TTransportFactory inputTransportFactory,
|
|
60
|
+
TTransportFactory outputTransportFactory,
|
|
61
|
+
TProtocolFactory inputProtocolFactory,
|
|
62
|
+
TProtocolFactory outputProtocolFactory) {
|
|
63
|
+
super(new TProcessorFactory(processor), serverTransport,
|
|
64
|
+
inputTransportFactory, outputTransportFactory,
|
|
65
|
+
inputProtocolFactory, outputProtocolFactory);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public TSimpleServer(TProcessorFactory processorFactory,
|
|
69
|
+
TServerTransport serverTransport) {
|
|
70
|
+
super(processorFactory, serverTransport);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public TSimpleServer(TProcessorFactory processorFactory,
|
|
74
|
+
TServerTransport serverTransport,
|
|
75
|
+
TTransportFactory transportFactory,
|
|
76
|
+
TProtocolFactory protocolFactory) {
|
|
77
|
+
super(processorFactory, serverTransport, transportFactory, protocolFactory);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public TSimpleServer(TProcessorFactory processorFactory,
|
|
81
|
+
TServerTransport serverTransport,
|
|
82
|
+
TTransportFactory inputTransportFactory,
|
|
83
|
+
TTransportFactory outputTransportFactory,
|
|
84
|
+
TProtocolFactory inputProtocolFactory,
|
|
85
|
+
TProtocolFactory outputProtocolFactory) {
|
|
86
|
+
super(processorFactory, serverTransport,
|
|
87
|
+
inputTransportFactory, outputTransportFactory,
|
|
88
|
+
inputProtocolFactory, outputProtocolFactory);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
public void serve() {
|
|
93
|
+
stopped_ = false;
|
|
94
|
+
try {
|
|
95
|
+
serverTransport_.listen();
|
|
96
|
+
} catch (TTransportException ttx) {
|
|
97
|
+
LOGGER.error("Error occurred during listening.", ttx);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
while (!stopped_) {
|
|
102
|
+
TTransport client = null;
|
|
103
|
+
TProcessor processor = null;
|
|
104
|
+
TTransport inputTransport = null;
|
|
105
|
+
TTransport outputTransport = null;
|
|
106
|
+
TProtocol inputProtocol = null;
|
|
107
|
+
TProtocol outputProtocol = null;
|
|
108
|
+
try {
|
|
109
|
+
client = serverTransport_.accept();
|
|
110
|
+
if (client != null) {
|
|
111
|
+
processor = processorFactory_.getProcessor(client);
|
|
112
|
+
inputTransport = inputTransportFactory_.getTransport(client);
|
|
113
|
+
outputTransport = outputTransportFactory_.getTransport(client);
|
|
114
|
+
inputProtocol = inputProtocolFactory_.getProtocol(inputTransport);
|
|
115
|
+
outputProtocol = outputProtocolFactory_.getProtocol(outputTransport);
|
|
116
|
+
while (processor.process(inputProtocol, outputProtocol)) {}
|
|
117
|
+
}
|
|
118
|
+
} catch (TTransportException ttx) {
|
|
119
|
+
// Client died, just move on
|
|
120
|
+
} catch (TException tx) {
|
|
121
|
+
if (!stopped_) {
|
|
122
|
+
LOGGER.error("Thrift error occurred during processing of message.", tx);
|
|
123
|
+
}
|
|
124
|
+
} catch (Exception x) {
|
|
125
|
+
if (!stopped_) {
|
|
126
|
+
LOGGER.error("Error occurred during processing of message.", x);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (inputTransport != null) {
|
|
131
|
+
inputTransport.close();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (outputTransport != null) {
|
|
135
|
+
outputTransport.close();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
public void stop() {
|
|
142
|
+
stopped_ = true;
|
|
143
|
+
serverTransport_.interrupt();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
package org.apache.thrift.server;
|
|
21
|
+
|
|
22
|
+
import org.apache.thrift.TException;
|
|
23
|
+
import org.apache.thrift.TProcessor;
|
|
24
|
+
import org.apache.thrift.TProcessorFactory;
|
|
25
|
+
import org.apache.thrift.protocol.TProtocol;
|
|
26
|
+
import org.apache.thrift.protocol.TProtocolFactory;
|
|
27
|
+
import org.apache.thrift.protocol.TBinaryProtocol;
|
|
28
|
+
import org.apache.thrift.transport.TServerTransport;
|
|
29
|
+
import org.apache.thrift.transport.TTransport;
|
|
30
|
+
import org.apache.thrift.transport.TTransportException;
|
|
31
|
+
import org.apache.thrift.transport.TTransportFactory;
|
|
32
|
+
|
|
33
|
+
import org.slf4j.Logger;
|
|
34
|
+
import org.slf4j.LoggerFactory;
|
|
35
|
+
|
|
36
|
+
import java.util.concurrent.ExecutorService;
|
|
37
|
+
import java.util.concurrent.Executors;
|
|
38
|
+
import java.util.concurrent.SynchronousQueue;
|
|
39
|
+
import java.util.concurrent.ThreadPoolExecutor;
|
|
40
|
+
import java.util.concurrent.TimeUnit;
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Server which uses Java's built in ThreadPool management to spawn off
|
|
45
|
+
* a worker pool that
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
48
|
+
public class TThreadPoolServer extends TServer {
|
|
49
|
+
|
|
50
|
+
private static final Logger LOGGER = LoggerFactory.getLogger(TThreadPoolServer.class.getName());
|
|
51
|
+
|
|
52
|
+
// Executor service for handling client connections
|
|
53
|
+
private ExecutorService executorService_;
|
|
54
|
+
|
|
55
|
+
// Flag for stopping the server
|
|
56
|
+
private volatile boolean stopped_;
|
|
57
|
+
|
|
58
|
+
// Server options
|
|
59
|
+
private Options options_;
|
|
60
|
+
|
|
61
|
+
// Customizable server options
|
|
62
|
+
public static class Options {
|
|
63
|
+
public int minWorkerThreads = 5;
|
|
64
|
+
public int maxWorkerThreads = Integer.MAX_VALUE;
|
|
65
|
+
public int stopTimeoutVal = 60;
|
|
66
|
+
public TimeUnit stopTimeoutUnit = TimeUnit.SECONDS;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
public TThreadPoolServer(TProcessor processor,
|
|
70
|
+
TServerTransport serverTransport) {
|
|
71
|
+
this(processor, serverTransport,
|
|
72
|
+
new TTransportFactory(), new TTransportFactory(),
|
|
73
|
+
new TBinaryProtocol.Factory(), new TBinaryProtocol.Factory());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public TThreadPoolServer(TProcessorFactory processorFactory,
|
|
77
|
+
TServerTransport serverTransport) {
|
|
78
|
+
this(processorFactory, serverTransport,
|
|
79
|
+
new TTransportFactory(), new TTransportFactory(),
|
|
80
|
+
new TBinaryProtocol.Factory(), new TBinaryProtocol.Factory());
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
public TThreadPoolServer(TProcessor processor,
|
|
84
|
+
TServerTransport serverTransport,
|
|
85
|
+
TProtocolFactory protocolFactory) {
|
|
86
|
+
this(processor, serverTransport,
|
|
87
|
+
new TTransportFactory(), new TTransportFactory(),
|
|
88
|
+
protocolFactory, protocolFactory);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
public TThreadPoolServer(TProcessor processor,
|
|
92
|
+
TServerTransport serverTransport,
|
|
93
|
+
TTransportFactory transportFactory,
|
|
94
|
+
TProtocolFactory protocolFactory) {
|
|
95
|
+
this(processor, serverTransport,
|
|
96
|
+
transportFactory, transportFactory,
|
|
97
|
+
protocolFactory, protocolFactory);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public TThreadPoolServer(TProcessorFactory processorFactory,
|
|
101
|
+
TServerTransport serverTransport,
|
|
102
|
+
TTransportFactory transportFactory,
|
|
103
|
+
TProtocolFactory protocolFactory) {
|
|
104
|
+
this(processorFactory, serverTransport,
|
|
105
|
+
transportFactory, transportFactory,
|
|
106
|
+
protocolFactory, protocolFactory);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public TThreadPoolServer(TProcessor processor,
|
|
110
|
+
TServerTransport serverTransport,
|
|
111
|
+
TTransportFactory inputTransportFactory,
|
|
112
|
+
TTransportFactory outputTransportFactory,
|
|
113
|
+
TProtocolFactory inputProtocolFactory,
|
|
114
|
+
TProtocolFactory outputProtocolFactory) {
|
|
115
|
+
this(new TProcessorFactory(processor), serverTransport,
|
|
116
|
+
inputTransportFactory, outputTransportFactory,
|
|
117
|
+
inputProtocolFactory, outputProtocolFactory);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
public TThreadPoolServer(TProcessorFactory processorFactory,
|
|
121
|
+
TServerTransport serverTransport,
|
|
122
|
+
TTransportFactory inputTransportFactory,
|
|
123
|
+
TTransportFactory outputTransportFactory,
|
|
124
|
+
TProtocolFactory inputProtocolFactory,
|
|
125
|
+
TProtocolFactory outputProtocolFactory) {
|
|
126
|
+
super(processorFactory, serverTransport,
|
|
127
|
+
inputTransportFactory, outputTransportFactory,
|
|
128
|
+
inputProtocolFactory, outputProtocolFactory);
|
|
129
|
+
options_ = new Options();
|
|
130
|
+
executorService_ = Executors.newCachedThreadPool();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
public TThreadPoolServer(TProcessor processor,
|
|
134
|
+
TServerTransport serverTransport,
|
|
135
|
+
TTransportFactory inputTransportFactory,
|
|
136
|
+
TTransportFactory outputTransportFactory,
|
|
137
|
+
TProtocolFactory inputProtocolFactory,
|
|
138
|
+
TProtocolFactory outputProtocolFactory,
|
|
139
|
+
Options options) {
|
|
140
|
+
this(new TProcessorFactory(processor), serverTransport,
|
|
141
|
+
inputTransportFactory, outputTransportFactory,
|
|
142
|
+
inputProtocolFactory, outputProtocolFactory,
|
|
143
|
+
options);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
public TThreadPoolServer(TProcessorFactory processorFactory,
|
|
147
|
+
TServerTransport serverTransport,
|
|
148
|
+
TTransportFactory inputTransportFactory,
|
|
149
|
+
TTransportFactory outputTransportFactory,
|
|
150
|
+
TProtocolFactory inputProtocolFactory,
|
|
151
|
+
TProtocolFactory outputProtocolFactory,
|
|
152
|
+
Options options) {
|
|
153
|
+
super(processorFactory, serverTransport,
|
|
154
|
+
inputTransportFactory, outputTransportFactory,
|
|
155
|
+
inputProtocolFactory, outputProtocolFactory);
|
|
156
|
+
|
|
157
|
+
executorService_ = null;
|
|
158
|
+
|
|
159
|
+
SynchronousQueue<Runnable> executorQueue =
|
|
160
|
+
new SynchronousQueue<Runnable>();
|
|
161
|
+
|
|
162
|
+
executorService_ = new ThreadPoolExecutor(options.minWorkerThreads,
|
|
163
|
+
options.maxWorkerThreads,
|
|
164
|
+
60,
|
|
165
|
+
TimeUnit.SECONDS,
|
|
166
|
+
executorQueue);
|
|
167
|
+
|
|
168
|
+
options_ = options;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
public void serve() {
|
|
173
|
+
try {
|
|
174
|
+
serverTransport_.listen();
|
|
175
|
+
} catch (TTransportException ttx) {
|
|
176
|
+
LOGGER.error("Error occurred during listening.", ttx);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
stopped_ = false;
|
|
181
|
+
while (!stopped_) {
|
|
182
|
+
int failureCount = 0;
|
|
183
|
+
try {
|
|
184
|
+
TTransport client = serverTransport_.accept();
|
|
185
|
+
WorkerProcess wp = new WorkerProcess(client);
|
|
186
|
+
executorService_.execute(wp);
|
|
187
|
+
} catch (TTransportException ttx) {
|
|
188
|
+
if (!stopped_) {
|
|
189
|
+
++failureCount;
|
|
190
|
+
LOGGER.warn("Transport error occurred during acceptance of message.", ttx);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
executorService_.shutdown();
|
|
196
|
+
|
|
197
|
+
// Loop until awaitTermination finally does return without a interrupted
|
|
198
|
+
// exception. If we don't do this, then we'll shut down prematurely. We want
|
|
199
|
+
// to let the executorService clear it's task queue, closing client sockets
|
|
200
|
+
// appropriately.
|
|
201
|
+
long timeoutMS = options_.stopTimeoutUnit.toMillis(options_.stopTimeoutVal);
|
|
202
|
+
long now = System.currentTimeMillis();
|
|
203
|
+
while (timeoutMS >= 0) {
|
|
204
|
+
try {
|
|
205
|
+
executorService_.awaitTermination(timeoutMS, TimeUnit.MILLISECONDS);
|
|
206
|
+
break;
|
|
207
|
+
} catch (InterruptedException ix) {
|
|
208
|
+
long newnow = System.currentTimeMillis();
|
|
209
|
+
timeoutMS -= (newnow - now);
|
|
210
|
+
now = newnow;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
public void stop() {
|
|
216
|
+
stopped_ = true;
|
|
217
|
+
serverTransport_.interrupt();
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
private class WorkerProcess implements Runnable {
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Client that this services.
|
|
224
|
+
*/
|
|
225
|
+
private TTransport client_;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Default constructor.
|
|
229
|
+
*
|
|
230
|
+
* @param client Transport to process
|
|
231
|
+
*/
|
|
232
|
+
private WorkerProcess(TTransport client) {
|
|
233
|
+
client_ = client;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Loops on processing a client forever
|
|
238
|
+
*/
|
|
239
|
+
public void run() {
|
|
240
|
+
TProcessor processor = null;
|
|
241
|
+
TTransport inputTransport = null;
|
|
242
|
+
TTransport outputTransport = null;
|
|
243
|
+
TProtocol inputProtocol = null;
|
|
244
|
+
TProtocol outputProtocol = null;
|
|
245
|
+
try {
|
|
246
|
+
processor = processorFactory_.getProcessor(client_);
|
|
247
|
+
inputTransport = inputTransportFactory_.getTransport(client_);
|
|
248
|
+
outputTransport = outputTransportFactory_.getTransport(client_);
|
|
249
|
+
inputProtocol = inputProtocolFactory_.getProtocol(inputTransport);
|
|
250
|
+
outputProtocol = outputProtocolFactory_.getProtocol(outputTransport);
|
|
251
|
+
// we check stopped_ first to make sure we're not supposed to be shutting
|
|
252
|
+
// down. this is necessary for graceful shutdown.
|
|
253
|
+
while (!stopped_ && processor.process(inputProtocol, outputProtocol)) {}
|
|
254
|
+
} catch (TTransportException ttx) {
|
|
255
|
+
// Assume the client died and continue silently
|
|
256
|
+
} catch (TException tx) {
|
|
257
|
+
LOGGER.error("Thrift error occurred during processing of message.", tx);
|
|
258
|
+
} catch (Exception x) {
|
|
259
|
+
LOGGER.error("Error occurred during processing of message.", x);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (inputTransport != null) {
|
|
263
|
+
inputTransport.close();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
if (outputTransport != null) {
|
|
267
|
+
outputTransport.close();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|