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
data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
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
|
+
|
|
21
|
+
package org.apache.thrift.transport;
|
|
22
|
+
|
|
23
|
+
import java.io.IOException;
|
|
24
|
+
import java.net.InetSocketAddress;
|
|
25
|
+
import java.net.ServerSocket;
|
|
26
|
+
import java.net.SocketException;
|
|
27
|
+
import java.nio.channels.ClosedChannelException;
|
|
28
|
+
import java.nio.channels.SelectionKey;
|
|
29
|
+
import java.nio.channels.Selector;
|
|
30
|
+
import java.nio.channels.ServerSocketChannel;
|
|
31
|
+
import java.nio.channels.SocketChannel;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Wrapper around ServerSocketChannel
|
|
35
|
+
*/
|
|
36
|
+
public class TNonblockingServerSocket extends TNonblockingServerTransport {
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* This channel is where all the nonblocking magic happens.
|
|
40
|
+
*/
|
|
41
|
+
private ServerSocketChannel serverSocketChannel = null;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Underlying serversocket object
|
|
45
|
+
*/
|
|
46
|
+
private ServerSocket serverSocket_ = null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Port to listen on
|
|
50
|
+
*/
|
|
51
|
+
private int port_ = 0;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Timeout for client sockets from accept
|
|
55
|
+
*/
|
|
56
|
+
private int clientTimeout_ = 0;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Creates a server socket from underlying socket object
|
|
60
|
+
*/
|
|
61
|
+
// public TNonblockingServerSocket(ServerSocket serverSocket) {
|
|
62
|
+
// this(serverSocket, 0);
|
|
63
|
+
// }
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Creates a server socket from underlying socket object
|
|
67
|
+
*/
|
|
68
|
+
// public TNonblockingServerSocket(ServerSocket serverSocket, int clientTimeout) {
|
|
69
|
+
// serverSocket_ = serverSocket;
|
|
70
|
+
// clientTimeout_ = clientTimeout;
|
|
71
|
+
// }
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Creates just a port listening server socket
|
|
75
|
+
*/
|
|
76
|
+
public TNonblockingServerSocket(int port) throws TTransportException {
|
|
77
|
+
this(port, 0);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Creates just a port listening server socket
|
|
82
|
+
*/
|
|
83
|
+
public TNonblockingServerSocket(int port, int clientTimeout) throws TTransportException {
|
|
84
|
+
port_ = port;
|
|
85
|
+
clientTimeout_ = clientTimeout;
|
|
86
|
+
try {
|
|
87
|
+
serverSocketChannel = ServerSocketChannel.open();
|
|
88
|
+
serverSocketChannel.configureBlocking(false);
|
|
89
|
+
|
|
90
|
+
// Make server socket
|
|
91
|
+
serverSocket_ = serverSocketChannel.socket();
|
|
92
|
+
// Prevent 2MSL delay problem on server restarts
|
|
93
|
+
serverSocket_.setReuseAddress(true);
|
|
94
|
+
// Bind to listening port
|
|
95
|
+
serverSocket_.bind(new InetSocketAddress(port_));
|
|
96
|
+
} catch (IOException ioe) {
|
|
97
|
+
serverSocket_ = null;
|
|
98
|
+
throw new TTransportException("Could not create ServerSocket on port " + port + ".");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
public void listen() throws TTransportException {
|
|
103
|
+
// Make sure not to block on accept
|
|
104
|
+
if (serverSocket_ != null) {
|
|
105
|
+
try {
|
|
106
|
+
serverSocket_.setSoTimeout(0);
|
|
107
|
+
} catch (SocketException sx) {
|
|
108
|
+
sx.printStackTrace();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
protected TNonblockingSocket acceptImpl() throws TTransportException {
|
|
114
|
+
if (serverSocket_ == null) {
|
|
115
|
+
throw new TTransportException(TTransportException.NOT_OPEN, "No underlying server socket.");
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
SocketChannel socketChannel = serverSocketChannel.accept();
|
|
119
|
+
if (socketChannel == null) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
TNonblockingSocket tsocket = new TNonblockingSocket(socketChannel);
|
|
124
|
+
tsocket.setTimeout(clientTimeout_);
|
|
125
|
+
return tsocket;
|
|
126
|
+
} catch (IOException iox) {
|
|
127
|
+
throw new TTransportException(iox);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
public void registerSelector(Selector selector) {
|
|
132
|
+
try {
|
|
133
|
+
// Register the server socket channel, indicating an interest in
|
|
134
|
+
// accepting new connections
|
|
135
|
+
serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);
|
|
136
|
+
} catch (ClosedChannelException e) {
|
|
137
|
+
// this shouldn't happen, ideally...
|
|
138
|
+
// TODO: decide what to do with this.
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
public void close() {
|
|
143
|
+
if (serverSocket_ != null) {
|
|
144
|
+
try {
|
|
145
|
+
serverSocket_.close();
|
|
146
|
+
} catch (IOException iox) {
|
|
147
|
+
System.err.println("WARNING: Could not close server socket: " +
|
|
148
|
+
iox.getMessage());
|
|
149
|
+
}
|
|
150
|
+
serverSocket_ = null;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
public void interrupt() {
|
|
155
|
+
// The thread-safeness of this is dubious, but Java documentation suggests
|
|
156
|
+
// that it is safe to do this from a different thread context
|
|
157
|
+
close();
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
}
|
data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
|
|
21
|
+
package org.apache.thrift.transport;
|
|
22
|
+
|
|
23
|
+
import java.nio.channels.Selector;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Server transport that can be operated in a nonblocking fashion.
|
|
27
|
+
*/
|
|
28
|
+
public abstract class TNonblockingServerTransport extends TServerTransport {
|
|
29
|
+
|
|
30
|
+
public abstract void registerSelector(Selector selector);
|
|
31
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
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
|
+
|
|
21
|
+
package org.apache.thrift.transport;
|
|
22
|
+
|
|
23
|
+
import java.io.IOException;
|
|
24
|
+
import java.net.Socket;
|
|
25
|
+
import java.net.SocketException;
|
|
26
|
+
import java.nio.ByteBuffer;
|
|
27
|
+
import java.nio.channels.SelectionKey;
|
|
28
|
+
import java.nio.channels.Selector;
|
|
29
|
+
import java.nio.channels.SocketChannel;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Socket implementation of the TTransport interface. To be commented soon!
|
|
33
|
+
*/
|
|
34
|
+
public class TNonblockingSocket extends TNonblockingTransport {
|
|
35
|
+
|
|
36
|
+
private SocketChannel socketChannel = null;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Wrapped Socket object
|
|
40
|
+
*/
|
|
41
|
+
private Socket socket_ = null;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Remote host
|
|
45
|
+
*/
|
|
46
|
+
private String host_ = null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Remote port
|
|
50
|
+
*/
|
|
51
|
+
private int port_ = 0;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Socket timeout
|
|
55
|
+
*/
|
|
56
|
+
private int timeout_ = 0;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Constructor that takes an already created socket.
|
|
60
|
+
*
|
|
61
|
+
* @param socketChannel Already created SocketChannel object
|
|
62
|
+
* @throws TTransportException if there is an error setting up the streams
|
|
63
|
+
*/
|
|
64
|
+
public TNonblockingSocket(SocketChannel socketChannel) throws TTransportException {
|
|
65
|
+
try {
|
|
66
|
+
// make it a nonblocking channel
|
|
67
|
+
socketChannel.configureBlocking(false);
|
|
68
|
+
} catch (IOException e) {
|
|
69
|
+
throw new TTransportException(e);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
this.socketChannel = socketChannel;
|
|
73
|
+
this.socket_ = socketChannel.socket();
|
|
74
|
+
try {
|
|
75
|
+
socket_.setSoLinger(false, 0);
|
|
76
|
+
socket_.setTcpNoDelay(true);
|
|
77
|
+
} catch (SocketException sx) {
|
|
78
|
+
sx.printStackTrace();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Register this socket with the specified selector for both read and write
|
|
84
|
+
* operations.
|
|
85
|
+
*
|
|
86
|
+
* @param selector
|
|
87
|
+
* @return the selection key for this socket.
|
|
88
|
+
*/
|
|
89
|
+
public SelectionKey registerSelector(Selector selector, int interests) throws IOException {
|
|
90
|
+
// Register the new SocketChannel with our Selector, indicating
|
|
91
|
+
// we'd like to be notified when there's data waiting to be read
|
|
92
|
+
return socketChannel.register(selector, interests);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Initializes the socket object
|
|
97
|
+
*/
|
|
98
|
+
private void initSocket() {
|
|
99
|
+
socket_ = new Socket();
|
|
100
|
+
try {
|
|
101
|
+
socket_.setSoLinger(false, 0);
|
|
102
|
+
socket_.setTcpNoDelay(true);
|
|
103
|
+
socket_.setSoTimeout(timeout_);
|
|
104
|
+
} catch (SocketException sx) {
|
|
105
|
+
sx.printStackTrace();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Sets the socket timeout
|
|
111
|
+
*
|
|
112
|
+
* @param timeout Milliseconds timeout
|
|
113
|
+
*/
|
|
114
|
+
public void setTimeout(int timeout) {
|
|
115
|
+
timeout_ = timeout;
|
|
116
|
+
try {
|
|
117
|
+
socket_.setSoTimeout(timeout);
|
|
118
|
+
} catch (SocketException sx) {
|
|
119
|
+
sx.printStackTrace();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Returns a reference to the underlying socket.
|
|
125
|
+
*/
|
|
126
|
+
public Socket getSocket() {
|
|
127
|
+
if (socket_ == null) {
|
|
128
|
+
initSocket();
|
|
129
|
+
}
|
|
130
|
+
return socket_;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Checks whether the socket is connected.
|
|
135
|
+
*/
|
|
136
|
+
public boolean isOpen() {
|
|
137
|
+
if (socket_ == null) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
return socket_.isConnected();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Connects the socket, creating a new socket object if necessary.
|
|
145
|
+
*/
|
|
146
|
+
public void open() throws TTransportException {
|
|
147
|
+
throw new RuntimeException("Not implemented yet");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Perform a nonblocking read into buffer.
|
|
152
|
+
*/
|
|
153
|
+
public int read(ByteBuffer buffer) throws IOException {
|
|
154
|
+
return socketChannel.read(buffer);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Reads from the underlying input stream if not null.
|
|
160
|
+
*/
|
|
161
|
+
public int read(byte[] buf, int off, int len) throws TTransportException {
|
|
162
|
+
if ((socketChannel.validOps() & SelectionKey.OP_READ) != SelectionKey.OP_READ) {
|
|
163
|
+
throw new TTransportException(TTransportException.NOT_OPEN,
|
|
164
|
+
"Cannot read from write-only socket channel");
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
return socketChannel.read(ByteBuffer.wrap(buf, off, len));
|
|
168
|
+
} catch (IOException iox) {
|
|
169
|
+
throw new TTransportException(TTransportException.UNKNOWN, iox);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Perform a nonblocking write of the data in buffer;
|
|
175
|
+
*/
|
|
176
|
+
public int write(ByteBuffer buffer) throws IOException {
|
|
177
|
+
return socketChannel.write(buffer);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Writes to the underlying output stream if not null.
|
|
182
|
+
*/
|
|
183
|
+
public void write(byte[] buf, int off, int len) throws TTransportException {
|
|
184
|
+
if ((socketChannel.validOps() & SelectionKey.OP_WRITE) != SelectionKey.OP_WRITE) {
|
|
185
|
+
throw new TTransportException(TTransportException.NOT_OPEN,
|
|
186
|
+
"Cannot write to write-only socket channel");
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
socketChannel.write(ByteBuffer.wrap(buf, off, len));
|
|
190
|
+
} catch (IOException iox) {
|
|
191
|
+
throw new TTransportException(TTransportException.UNKNOWN, iox);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Flushes the underlying output stream if not null.
|
|
197
|
+
*/
|
|
198
|
+
public void flush() throws TTransportException {
|
|
199
|
+
// Not supported by SocketChannel.
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Closes the socket.
|
|
204
|
+
*/
|
|
205
|
+
public void close() {
|
|
206
|
+
try {
|
|
207
|
+
socketChannel.close();
|
|
208
|
+
} catch (IOException e) {
|
|
209
|
+
// silently ignore.
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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.transport;
|
|
21
|
+
|
|
22
|
+
import java.io.IOException;
|
|
23
|
+
import java.nio.channels.Selector;
|
|
24
|
+
import java.nio.channels.SelectionKey;
|
|
25
|
+
import java.nio.ByteBuffer;
|
|
26
|
+
|
|
27
|
+
public abstract class TNonblockingTransport extends TTransport {
|
|
28
|
+
public abstract SelectionKey registerSelector(Selector selector, int interests) throws IOException;
|
|
29
|
+
public abstract int read(ByteBuffer buffer) throws IOException;
|
|
30
|
+
public abstract int write(ByteBuffer buffer) throws IOException;
|
|
31
|
+
}
|
|
@@ -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.transport;
|
|
21
|
+
|
|
22
|
+
import org.slf4j.Logger;
|
|
23
|
+
import org.slf4j.LoggerFactory;
|
|
24
|
+
|
|
25
|
+
import java.io.IOException;
|
|
26
|
+
import java.net.InetSocketAddress;
|
|
27
|
+
import java.net.ServerSocket;
|
|
28
|
+
import java.net.Socket;
|
|
29
|
+
import java.net.SocketException;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Wrapper around ServerSocket for Thrift.
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
public class TServerSocket extends TServerTransport {
|
|
36
|
+
|
|
37
|
+
private static final Logger LOGGER = LoggerFactory.getLogger(TServerSocket.class.getName());
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Underlying serversocket object
|
|
41
|
+
*/
|
|
42
|
+
private ServerSocket serverSocket_ = null;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Port to listen on
|
|
46
|
+
*/
|
|
47
|
+
private int port_ = 0;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Timeout for client sockets from accept
|
|
51
|
+
*/
|
|
52
|
+
private int clientTimeout_ = 0;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Creates a server socket from underlying socket object
|
|
56
|
+
*/
|
|
57
|
+
public TServerSocket(ServerSocket serverSocket) {
|
|
58
|
+
this(serverSocket, 0);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Creates a server socket from underlying socket object
|
|
63
|
+
*/
|
|
64
|
+
public TServerSocket(ServerSocket serverSocket, int clientTimeout) {
|
|
65
|
+
serverSocket_ = serverSocket;
|
|
66
|
+
clientTimeout_ = clientTimeout;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Creates just a port listening server socket
|
|
71
|
+
*/
|
|
72
|
+
public TServerSocket(int port) throws TTransportException {
|
|
73
|
+
this(port, 0);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Creates just a port listening server socket
|
|
78
|
+
*/
|
|
79
|
+
public TServerSocket(int port, int clientTimeout) throws TTransportException {
|
|
80
|
+
this(new InetSocketAddress(port), clientTimeout);
|
|
81
|
+
port_ = port;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public TServerSocket(InetSocketAddress bindAddr) throws TTransportException {
|
|
85
|
+
this(bindAddr, 0);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public TServerSocket(InetSocketAddress bindAddr, int clientTimeout) throws TTransportException {
|
|
89
|
+
clientTimeout_ = clientTimeout;
|
|
90
|
+
try {
|
|
91
|
+
// Make server socket
|
|
92
|
+
serverSocket_ = new ServerSocket();
|
|
93
|
+
// Prevent 2MSL delay problem on server restarts
|
|
94
|
+
serverSocket_.setReuseAddress(true);
|
|
95
|
+
// Bind to listening port
|
|
96
|
+
serverSocket_.bind(bindAddr);
|
|
97
|
+
} catch (IOException ioe) {
|
|
98
|
+
serverSocket_ = null;
|
|
99
|
+
throw new TTransportException("Could not create ServerSocket on address " + bindAddr.toString() + ".");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
public void listen() throws TTransportException {
|
|
104
|
+
// Make sure not to block on accept
|
|
105
|
+
if (serverSocket_ != null) {
|
|
106
|
+
try {
|
|
107
|
+
serverSocket_.setSoTimeout(0);
|
|
108
|
+
} catch (SocketException sx) {
|
|
109
|
+
LOGGER.error("Could not set socket timeout.", sx);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
protected TSocket acceptImpl() throws TTransportException {
|
|
115
|
+
if (serverSocket_ == null) {
|
|
116
|
+
throw new TTransportException(TTransportException.NOT_OPEN, "No underlying server socket.");
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
Socket result = serverSocket_.accept();
|
|
120
|
+
TSocket result2 = new TSocket(result);
|
|
121
|
+
result2.setTimeout(clientTimeout_);
|
|
122
|
+
return result2;
|
|
123
|
+
} catch (IOException iox) {
|
|
124
|
+
throw new TTransportException(iox);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
public void close() {
|
|
129
|
+
if (serverSocket_ != null) {
|
|
130
|
+
try {
|
|
131
|
+
serverSocket_.close();
|
|
132
|
+
} catch (IOException iox) {
|
|
133
|
+
LOGGER.warn("Could not close server socket.", iox);
|
|
134
|
+
}
|
|
135
|
+
serverSocket_ = null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
public void interrupt() {
|
|
140
|
+
// The thread-safeness of this is dubious, but Java documentation suggests
|
|
141
|
+
// that it is safe to do this from a different thread context
|
|
142
|
+
close();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
}
|