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,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
|
+
#ifndef _THRIFT_SERVER_TSERVER_H_
|
|
21
|
+
#define _THRIFT_SERVER_TSERVER_H_ 1
|
|
22
|
+
|
|
23
|
+
#include <TProcessor.h>
|
|
24
|
+
#include <transport/TServerTransport.h>
|
|
25
|
+
#include <protocol/TBinaryProtocol.h>
|
|
26
|
+
#include <concurrency/Thread.h>
|
|
27
|
+
|
|
28
|
+
#include <boost/shared_ptr.hpp>
|
|
29
|
+
|
|
30
|
+
namespace apache { namespace thrift { namespace server {
|
|
31
|
+
|
|
32
|
+
using apache::thrift::TProcessor;
|
|
33
|
+
using apache::thrift::protocol::TBinaryProtocolFactory;
|
|
34
|
+
using apache::thrift::protocol::TProtocol;
|
|
35
|
+
using apache::thrift::protocol::TProtocolFactory;
|
|
36
|
+
using apache::thrift::transport::TServerTransport;
|
|
37
|
+
using apache::thrift::transport::TTransport;
|
|
38
|
+
using apache::thrift::transport::TTransportFactory;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Virtual interface class that can handle events from the server core. To
|
|
42
|
+
* use this you should subclass it and implement the methods that you care
|
|
43
|
+
* about. Your subclass can also store local data that you may care about,
|
|
44
|
+
* such as additional "arguments" to these methods (stored in the object
|
|
45
|
+
* instance's state).
|
|
46
|
+
*/
|
|
47
|
+
class TServerEventHandler {
|
|
48
|
+
public:
|
|
49
|
+
|
|
50
|
+
virtual ~TServerEventHandler() {}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Called before the server begins.
|
|
54
|
+
*/
|
|
55
|
+
virtual void preServe() {}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Called when a new client has connected and is about to being processing.
|
|
59
|
+
*/
|
|
60
|
+
virtual void clientBegin(boost::shared_ptr<TProtocol> /* input */,
|
|
61
|
+
boost::shared_ptr<TProtocol> /* output */) {}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Called when a client has finished making requests.
|
|
65
|
+
*/
|
|
66
|
+
virtual void clientEnd(boost::shared_ptr<TProtocol> /* input */,
|
|
67
|
+
boost::shared_ptr<TProtocol> /* output */) {}
|
|
68
|
+
|
|
69
|
+
protected:
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Prevent direct instantiation.
|
|
73
|
+
*/
|
|
74
|
+
TServerEventHandler() {}
|
|
75
|
+
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Thrift server.
|
|
80
|
+
*
|
|
81
|
+
*/
|
|
82
|
+
class TServer : public concurrency::Runnable {
|
|
83
|
+
public:
|
|
84
|
+
|
|
85
|
+
virtual ~TServer() {}
|
|
86
|
+
|
|
87
|
+
virtual void serve() = 0;
|
|
88
|
+
|
|
89
|
+
virtual void stop() {}
|
|
90
|
+
|
|
91
|
+
// Allows running the server as a Runnable thread
|
|
92
|
+
virtual void run() {
|
|
93
|
+
serve();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
boost::shared_ptr<TProcessor> getProcessor() {
|
|
97
|
+
return processor_;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
boost::shared_ptr<TServerTransport> getServerTransport() {
|
|
101
|
+
return serverTransport_;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
boost::shared_ptr<TTransportFactory> getInputTransportFactory() {
|
|
105
|
+
return inputTransportFactory_;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
boost::shared_ptr<TTransportFactory> getOutputTransportFactory() {
|
|
109
|
+
return outputTransportFactory_;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
boost::shared_ptr<TProtocolFactory> getInputProtocolFactory() {
|
|
113
|
+
return inputProtocolFactory_;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
boost::shared_ptr<TProtocolFactory> getOutputProtocolFactory() {
|
|
117
|
+
return outputProtocolFactory_;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
boost::shared_ptr<TServerEventHandler> getEventHandler() {
|
|
121
|
+
return eventHandler_;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
protected:
|
|
125
|
+
TServer(boost::shared_ptr<TProcessor> processor):
|
|
126
|
+
processor_(processor) {
|
|
127
|
+
setInputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
|
|
128
|
+
setOutputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
|
|
129
|
+
setInputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
|
|
130
|
+
setOutputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
TServer(boost::shared_ptr<TProcessor> processor,
|
|
134
|
+
boost::shared_ptr<TServerTransport> serverTransport):
|
|
135
|
+
processor_(processor),
|
|
136
|
+
serverTransport_(serverTransport) {
|
|
137
|
+
setInputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
|
|
138
|
+
setOutputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
|
|
139
|
+
setInputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
|
|
140
|
+
setOutputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
TServer(boost::shared_ptr<TProcessor> processor,
|
|
144
|
+
boost::shared_ptr<TServerTransport> serverTransport,
|
|
145
|
+
boost::shared_ptr<TTransportFactory> transportFactory,
|
|
146
|
+
boost::shared_ptr<TProtocolFactory> protocolFactory):
|
|
147
|
+
processor_(processor),
|
|
148
|
+
serverTransport_(serverTransport),
|
|
149
|
+
inputTransportFactory_(transportFactory),
|
|
150
|
+
outputTransportFactory_(transportFactory),
|
|
151
|
+
inputProtocolFactory_(protocolFactory),
|
|
152
|
+
outputProtocolFactory_(protocolFactory) {}
|
|
153
|
+
|
|
154
|
+
TServer(boost::shared_ptr<TProcessor> processor,
|
|
155
|
+
boost::shared_ptr<TServerTransport> serverTransport,
|
|
156
|
+
boost::shared_ptr<TTransportFactory> inputTransportFactory,
|
|
157
|
+
boost::shared_ptr<TTransportFactory> outputTransportFactory,
|
|
158
|
+
boost::shared_ptr<TProtocolFactory> inputProtocolFactory,
|
|
159
|
+
boost::shared_ptr<TProtocolFactory> outputProtocolFactory):
|
|
160
|
+
processor_(processor),
|
|
161
|
+
serverTransport_(serverTransport),
|
|
162
|
+
inputTransportFactory_(inputTransportFactory),
|
|
163
|
+
outputTransportFactory_(outputTransportFactory),
|
|
164
|
+
inputProtocolFactory_(inputProtocolFactory),
|
|
165
|
+
outputProtocolFactory_(outputProtocolFactory) {}
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
// Class variables
|
|
169
|
+
boost::shared_ptr<TProcessor> processor_;
|
|
170
|
+
boost::shared_ptr<TServerTransport> serverTransport_;
|
|
171
|
+
|
|
172
|
+
boost::shared_ptr<TTransportFactory> inputTransportFactory_;
|
|
173
|
+
boost::shared_ptr<TTransportFactory> outputTransportFactory_;
|
|
174
|
+
|
|
175
|
+
boost::shared_ptr<TProtocolFactory> inputProtocolFactory_;
|
|
176
|
+
boost::shared_ptr<TProtocolFactory> outputProtocolFactory_;
|
|
177
|
+
|
|
178
|
+
boost::shared_ptr<TServerEventHandler> eventHandler_;
|
|
179
|
+
|
|
180
|
+
public:
|
|
181
|
+
void setInputTransportFactory(boost::shared_ptr<TTransportFactory> inputTransportFactory) {
|
|
182
|
+
inputTransportFactory_ = inputTransportFactory;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
void setOutputTransportFactory(boost::shared_ptr<TTransportFactory> outputTransportFactory) {
|
|
186
|
+
outputTransportFactory_ = outputTransportFactory;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
void setInputProtocolFactory(boost::shared_ptr<TProtocolFactory> inputProtocolFactory) {
|
|
190
|
+
inputProtocolFactory_ = inputProtocolFactory;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
void setOutputProtocolFactory(boost::shared_ptr<TProtocolFactory> outputProtocolFactory) {
|
|
194
|
+
outputProtocolFactory_ = outputProtocolFactory;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
void setServerEventHandler(boost::shared_ptr<TServerEventHandler> eventHandler) {
|
|
198
|
+
eventHandler_ = eventHandler;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Helper function to increase the max file descriptors limit
|
|
205
|
+
* for the current process and all of its children.
|
|
206
|
+
* By default, tries to increase it to as much as 2^24.
|
|
207
|
+
*/
|
|
208
|
+
int increase_max_fds(int max_fds=(1<<24));
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
}}} // apache::thrift::server
|
|
212
|
+
|
|
213
|
+
#endif // #ifndef _THRIFT_SERVER_TSERVER_H_
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
#include "server/TSimpleServer.h"
|
|
21
|
+
#include "transport/TTransportException.h"
|
|
22
|
+
#include <string>
|
|
23
|
+
#include <iostream>
|
|
24
|
+
|
|
25
|
+
namespace apache { namespace thrift { namespace server {
|
|
26
|
+
|
|
27
|
+
using namespace std;
|
|
28
|
+
using namespace apache::thrift;
|
|
29
|
+
using namespace apache::thrift::protocol;
|
|
30
|
+
using namespace apache::thrift::transport;
|
|
31
|
+
using boost::shared_ptr;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* A simple single-threaded application server. Perfect for unit tests!
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
void TSimpleServer::serve() {
|
|
38
|
+
|
|
39
|
+
shared_ptr<TTransport> client;
|
|
40
|
+
shared_ptr<TTransport> inputTransport;
|
|
41
|
+
shared_ptr<TTransport> outputTransport;
|
|
42
|
+
shared_ptr<TProtocol> inputProtocol;
|
|
43
|
+
shared_ptr<TProtocol> outputProtocol;
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
// Start the server listening
|
|
47
|
+
serverTransport_->listen();
|
|
48
|
+
} catch (TTransportException& ttx) {
|
|
49
|
+
cerr << "TSimpleServer::run() listen(): " << ttx.what() << endl;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Run the preServe event
|
|
54
|
+
if (eventHandler_ != NULL) {
|
|
55
|
+
eventHandler_->preServe();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Fetch client from server
|
|
59
|
+
while (!stop_) {
|
|
60
|
+
try {
|
|
61
|
+
client = serverTransport_->accept();
|
|
62
|
+
inputTransport = inputTransportFactory_->getTransport(client);
|
|
63
|
+
outputTransport = outputTransportFactory_->getTransport(client);
|
|
64
|
+
inputProtocol = inputProtocolFactory_->getProtocol(inputTransport);
|
|
65
|
+
outputProtocol = outputProtocolFactory_->getProtocol(outputTransport);
|
|
66
|
+
if (eventHandler_ != NULL) {
|
|
67
|
+
eventHandler_->clientBegin(inputProtocol, outputProtocol);
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
while (processor_->process(inputProtocol, outputProtocol)) {
|
|
71
|
+
// Peek ahead, is the remote side closed?
|
|
72
|
+
if (!inputTransport->peek()) {
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
} catch (TTransportException& ttx) {
|
|
77
|
+
cerr << "TSimpleServer client died: " << ttx.what() << endl;
|
|
78
|
+
} catch (TException& tx) {
|
|
79
|
+
cerr << "TSimpleServer exception: " << tx.what() << endl;
|
|
80
|
+
}
|
|
81
|
+
if (eventHandler_ != NULL) {
|
|
82
|
+
eventHandler_->clientEnd(inputProtocol, outputProtocol);
|
|
83
|
+
}
|
|
84
|
+
inputTransport->close();
|
|
85
|
+
outputTransport->close();
|
|
86
|
+
client->close();
|
|
87
|
+
} catch (TTransportException& ttx) {
|
|
88
|
+
if (inputTransport != NULL) { inputTransport->close(); }
|
|
89
|
+
if (outputTransport != NULL) { outputTransport->close(); }
|
|
90
|
+
if (client != NULL) { client->close(); }
|
|
91
|
+
cerr << "TServerTransport died on accept: " << ttx.what() << endl;
|
|
92
|
+
continue;
|
|
93
|
+
} catch (TException& tx) {
|
|
94
|
+
if (inputTransport != NULL) { inputTransport->close(); }
|
|
95
|
+
if (outputTransport != NULL) { outputTransport->close(); }
|
|
96
|
+
if (client != NULL) { client->close(); }
|
|
97
|
+
cerr << "Some kind of accept exception: " << tx.what() << endl;
|
|
98
|
+
continue;
|
|
99
|
+
} catch (string s) {
|
|
100
|
+
if (inputTransport != NULL) { inputTransport->close(); }
|
|
101
|
+
if (outputTransport != NULL) { outputTransport->close(); }
|
|
102
|
+
if (client != NULL) { client->close(); }
|
|
103
|
+
cerr << "TThreadPoolServer: Unknown exception: " << s << endl;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (stop_) {
|
|
109
|
+
try {
|
|
110
|
+
serverTransport_->close();
|
|
111
|
+
} catch (TTransportException &ttx) {
|
|
112
|
+
cerr << "TServerTransport failed on close: " << ttx.what() << endl;
|
|
113
|
+
}
|
|
114
|
+
stop_ = false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
}}} // apache::thrift::server
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
#ifndef _THRIFT_SERVER_TSIMPLESERVER_H_
|
|
21
|
+
#define _THRIFT_SERVER_TSIMPLESERVER_H_ 1
|
|
22
|
+
|
|
23
|
+
#include "server/TServer.h"
|
|
24
|
+
#include "transport/TServerTransport.h"
|
|
25
|
+
|
|
26
|
+
namespace apache { namespace thrift { namespace server {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* This is the most basic simple server. It is single-threaded and runs a
|
|
30
|
+
* continuous loop of accepting a single connection, processing requests on
|
|
31
|
+
* that connection until it closes, and then repeating. It is a good example
|
|
32
|
+
* of how to extend the TServer interface.
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
class TSimpleServer : public TServer {
|
|
36
|
+
public:
|
|
37
|
+
TSimpleServer(boost::shared_ptr<TProcessor> processor,
|
|
38
|
+
boost::shared_ptr<TServerTransport> serverTransport,
|
|
39
|
+
boost::shared_ptr<TTransportFactory> transportFactory,
|
|
40
|
+
boost::shared_ptr<TProtocolFactory> protocolFactory) :
|
|
41
|
+
TServer(processor, serverTransport, transportFactory, protocolFactory),
|
|
42
|
+
stop_(false) {}
|
|
43
|
+
|
|
44
|
+
TSimpleServer(boost::shared_ptr<TProcessor> processor,
|
|
45
|
+
boost::shared_ptr<TServerTransport> serverTransport,
|
|
46
|
+
boost::shared_ptr<TTransportFactory> inputTransportFactory,
|
|
47
|
+
boost::shared_ptr<TTransportFactory> outputTransportFactory,
|
|
48
|
+
boost::shared_ptr<TProtocolFactory> inputProtocolFactory,
|
|
49
|
+
boost::shared_ptr<TProtocolFactory> outputProtocolFactory):
|
|
50
|
+
TServer(processor, serverTransport,
|
|
51
|
+
inputTransportFactory, outputTransportFactory,
|
|
52
|
+
inputProtocolFactory, outputProtocolFactory),
|
|
53
|
+
stop_(false) {}
|
|
54
|
+
|
|
55
|
+
~TSimpleServer() {}
|
|
56
|
+
|
|
57
|
+
void serve();
|
|
58
|
+
|
|
59
|
+
void stop() {
|
|
60
|
+
stop_ = true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
protected:
|
|
64
|
+
bool stop_;
|
|
65
|
+
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
}}} // apache::thrift::server
|
|
69
|
+
|
|
70
|
+
#endif // #ifndef _THRIFT_SERVER_TSIMPLESERVER_H_
|
|
@@ -0,0 +1,217 @@
|
|
|
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
|
+
#include "server/TThreadPoolServer.h"
|
|
21
|
+
#include "transport/TTransportException.h"
|
|
22
|
+
#include "concurrency/Thread.h"
|
|
23
|
+
#include "concurrency/ThreadManager.h"
|
|
24
|
+
#include <string>
|
|
25
|
+
#include <iostream>
|
|
26
|
+
|
|
27
|
+
namespace apache { namespace thrift { namespace server {
|
|
28
|
+
|
|
29
|
+
using boost::shared_ptr;
|
|
30
|
+
using namespace std;
|
|
31
|
+
using namespace apache::thrift;
|
|
32
|
+
using namespace apache::thrift::concurrency;
|
|
33
|
+
using namespace apache::thrift::protocol;;
|
|
34
|
+
using namespace apache::thrift::transport;
|
|
35
|
+
|
|
36
|
+
class TThreadPoolServer::Task : public Runnable {
|
|
37
|
+
|
|
38
|
+
public:
|
|
39
|
+
|
|
40
|
+
Task(TThreadPoolServer &server,
|
|
41
|
+
shared_ptr<TProcessor> processor,
|
|
42
|
+
shared_ptr<TProtocol> input,
|
|
43
|
+
shared_ptr<TProtocol> output) :
|
|
44
|
+
server_(server),
|
|
45
|
+
processor_(processor),
|
|
46
|
+
input_(input),
|
|
47
|
+
output_(output) {
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
~Task() {}
|
|
51
|
+
|
|
52
|
+
void run() {
|
|
53
|
+
boost::shared_ptr<TServerEventHandler> eventHandler =
|
|
54
|
+
server_.getEventHandler();
|
|
55
|
+
if (eventHandler != NULL) {
|
|
56
|
+
eventHandler->clientBegin(input_, output_);
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
while (processor_->process(input_, output_)) {
|
|
60
|
+
if (!input_->getTransport()->peek()) {
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
} catch (TTransportException& ttx) {
|
|
65
|
+
// This is reasonably expected, client didn't send a full request so just
|
|
66
|
+
// ignore him
|
|
67
|
+
// string errStr = string("TThreadPoolServer client died: ") + ttx.what();
|
|
68
|
+
// GlobalOutput(errStr.c_str());
|
|
69
|
+
} catch (TException& x) {
|
|
70
|
+
string errStr = string("TThreadPoolServer exception: ") + x.what();
|
|
71
|
+
GlobalOutput(errStr.c_str());
|
|
72
|
+
} catch (std::exception &x) {
|
|
73
|
+
string errStr = string("TThreadPoolServer, std::exception: ") + x.what();
|
|
74
|
+
GlobalOutput(errStr.c_str());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (eventHandler != NULL) {
|
|
78
|
+
eventHandler->clientEnd(input_, output_);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
input_->getTransport()->close();
|
|
83
|
+
} catch (TTransportException& ttx) {
|
|
84
|
+
string errStr = string("TThreadPoolServer input close failed: ") + ttx.what();
|
|
85
|
+
GlobalOutput(errStr.c_str());
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
output_->getTransport()->close();
|
|
89
|
+
} catch (TTransportException& ttx) {
|
|
90
|
+
string errStr = string("TThreadPoolServer output close failed: ") + ttx.what();
|
|
91
|
+
GlobalOutput(errStr.c_str());
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
private:
|
|
97
|
+
TServer& server_;
|
|
98
|
+
shared_ptr<TProcessor> processor_;
|
|
99
|
+
shared_ptr<TProtocol> input_;
|
|
100
|
+
shared_ptr<TProtocol> output_;
|
|
101
|
+
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
TThreadPoolServer::TThreadPoolServer(shared_ptr<TProcessor> processor,
|
|
105
|
+
shared_ptr<TServerTransport> serverTransport,
|
|
106
|
+
shared_ptr<TTransportFactory> transportFactory,
|
|
107
|
+
shared_ptr<TProtocolFactory> protocolFactory,
|
|
108
|
+
shared_ptr<ThreadManager> threadManager) :
|
|
109
|
+
TServer(processor, serverTransport, transportFactory, protocolFactory),
|
|
110
|
+
threadManager_(threadManager),
|
|
111
|
+
stop_(false), timeout_(0) {}
|
|
112
|
+
|
|
113
|
+
TThreadPoolServer::TThreadPoolServer(shared_ptr<TProcessor> processor,
|
|
114
|
+
shared_ptr<TServerTransport> serverTransport,
|
|
115
|
+
shared_ptr<TTransportFactory> inputTransportFactory,
|
|
116
|
+
shared_ptr<TTransportFactory> outputTransportFactory,
|
|
117
|
+
shared_ptr<TProtocolFactory> inputProtocolFactory,
|
|
118
|
+
shared_ptr<TProtocolFactory> outputProtocolFactory,
|
|
119
|
+
shared_ptr<ThreadManager> threadManager) :
|
|
120
|
+
TServer(processor, serverTransport, inputTransportFactory, outputTransportFactory,
|
|
121
|
+
inputProtocolFactory, outputProtocolFactory),
|
|
122
|
+
threadManager_(threadManager),
|
|
123
|
+
stop_(false), timeout_(0) {}
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
TThreadPoolServer::~TThreadPoolServer() {}
|
|
127
|
+
|
|
128
|
+
void TThreadPoolServer::serve() {
|
|
129
|
+
shared_ptr<TTransport> client;
|
|
130
|
+
shared_ptr<TTransport> inputTransport;
|
|
131
|
+
shared_ptr<TTransport> outputTransport;
|
|
132
|
+
shared_ptr<TProtocol> inputProtocol;
|
|
133
|
+
shared_ptr<TProtocol> outputProtocol;
|
|
134
|
+
|
|
135
|
+
try {
|
|
136
|
+
// Start the server listening
|
|
137
|
+
serverTransport_->listen();
|
|
138
|
+
} catch (TTransportException& ttx) {
|
|
139
|
+
string errStr = string("TThreadPoolServer::run() listen(): ") + ttx.what();
|
|
140
|
+
GlobalOutput(errStr.c_str());
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Run the preServe event
|
|
145
|
+
if (eventHandler_ != NULL) {
|
|
146
|
+
eventHandler_->preServe();
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
while (!stop_) {
|
|
150
|
+
try {
|
|
151
|
+
client.reset();
|
|
152
|
+
inputTransport.reset();
|
|
153
|
+
outputTransport.reset();
|
|
154
|
+
inputProtocol.reset();
|
|
155
|
+
outputProtocol.reset();
|
|
156
|
+
|
|
157
|
+
// Fetch client from server
|
|
158
|
+
client = serverTransport_->accept();
|
|
159
|
+
|
|
160
|
+
// Make IO transports
|
|
161
|
+
inputTransport = inputTransportFactory_->getTransport(client);
|
|
162
|
+
outputTransport = outputTransportFactory_->getTransport(client);
|
|
163
|
+
inputProtocol = inputProtocolFactory_->getProtocol(inputTransport);
|
|
164
|
+
outputProtocol = outputProtocolFactory_->getProtocol(outputTransport);
|
|
165
|
+
|
|
166
|
+
// Add to threadmanager pool
|
|
167
|
+
threadManager_->add(shared_ptr<TThreadPoolServer::Task>(new TThreadPoolServer::Task(*this, processor_, inputProtocol, outputProtocol)), timeout_);
|
|
168
|
+
|
|
169
|
+
} catch (TTransportException& ttx) {
|
|
170
|
+
if (inputTransport != NULL) { inputTransport->close(); }
|
|
171
|
+
if (outputTransport != NULL) { outputTransport->close(); }
|
|
172
|
+
if (client != NULL) { client->close(); }
|
|
173
|
+
if (!stop_ || ttx.getType() != TTransportException::INTERRUPTED) {
|
|
174
|
+
string errStr = string("TThreadPoolServer: TServerTransport died on accept: ") + ttx.what();
|
|
175
|
+
GlobalOutput(errStr.c_str());
|
|
176
|
+
}
|
|
177
|
+
continue;
|
|
178
|
+
} catch (TException& tx) {
|
|
179
|
+
if (inputTransport != NULL) { inputTransport->close(); }
|
|
180
|
+
if (outputTransport != NULL) { outputTransport->close(); }
|
|
181
|
+
if (client != NULL) { client->close(); }
|
|
182
|
+
string errStr = string("TThreadPoolServer: Caught TException: ") + tx.what();
|
|
183
|
+
GlobalOutput(errStr.c_str());
|
|
184
|
+
continue;
|
|
185
|
+
} catch (string s) {
|
|
186
|
+
if (inputTransport != NULL) { inputTransport->close(); }
|
|
187
|
+
if (outputTransport != NULL) { outputTransport->close(); }
|
|
188
|
+
if (client != NULL) { client->close(); }
|
|
189
|
+
string errStr = "TThreadPoolServer: Unknown exception: " + s;
|
|
190
|
+
GlobalOutput(errStr.c_str());
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// If stopped manually, join the existing threads
|
|
196
|
+
if (stop_) {
|
|
197
|
+
try {
|
|
198
|
+
serverTransport_->close();
|
|
199
|
+
threadManager_->join();
|
|
200
|
+
} catch (TException &tx) {
|
|
201
|
+
string errStr = string("TThreadPoolServer: Exception shutting down: ") + tx.what();
|
|
202
|
+
GlobalOutput(errStr.c_str());
|
|
203
|
+
}
|
|
204
|
+
stop_ = false;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
int64_t TThreadPoolServer::getTimeout() const {
|
|
210
|
+
return timeout_;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
void TThreadPoolServer::setTimeout(int64_t value) {
|
|
214
|
+
timeout_ = value;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
}}} // apache::thrift::server
|