auser-poolparty 1.3.1 → 1.3.2
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/bin/cloud-compile +6 -1
- data/config/jeweler.rb +1 -3
- data/lib/cloud_providers/cloud_provider_instance.rb +11 -1
- data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +51 -0
- data/lib/dependency_resolvers/chef.rb +12 -3
- data/lib/mixins/callbacks.rb +6 -2
- data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
- data/test/fixtures/chef/recipes/sudo/attributes/sudoers.rb +30 -0
- data/test/fixtures/chef/recipes/sudo/recipes/default.rb +33 -0
- data/test/fixtures/chef/recipes/sudo/templates/default/sudoers.erb +22 -0
- data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +21 -0
- data/test/lib/dependency_resolvers/chef_test.rb +8 -1
- data/vendor/gems/thrift/CHANGELOG +1 -0
- data/vendor/gems/thrift/Makefile.am +25 -6
- data/vendor/gems/thrift/Manifest +81 -0
- data/vendor/gems/thrift/README +17 -111
- data/vendor/gems/thrift/Rakefile +104 -0
- data/vendor/gems/thrift/{lib/hs/Setup.lhs → benchmark/Benchmark.thrift} +5 -4
- data/vendor/gems/thrift/benchmark/benchmark.rb +271 -0
- data/vendor/gems/thrift/benchmark/client.rb +74 -0
- data/vendor/gems/thrift/benchmark/server.rb +82 -0
- data/vendor/gems/thrift/benchmark/thin_server.rb +44 -0
- data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +474 -0
- data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.m → ext/binary_protocol_accelerated.h} +1 -4
- data/vendor/gems/thrift/ext/compact_protocol.c +665 -0
- data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.h → ext/compact_protocol.h} +1 -6
- data/vendor/gems/thrift/ext/constants.h +95 -0
- data/vendor/gems/thrift/{contrib/fb303/Makefile.am → ext/extconf.rb} +8 -13
- data/vendor/gems/thrift/{compiler/cpp/src/platform.h → ext/macros.h} +18 -13
- data/vendor/gems/thrift/ext/memory_buffer.c +76 -0
- data/vendor/gems/thrift/{lib/csharp/src/Protocol/TMessageType.cs → ext/memory_buffer.h} +2 -13
- data/vendor/gems/thrift/ext/protocol.c +185 -0
- data/vendor/gems/thrift/{lib/csharp/src/TProcessor.cs → ext/protocol.h} +2 -11
- data/vendor/gems/thrift/ext/struct.c +606 -0
- data/vendor/gems/thrift/ext/struct.h +67 -0
- data/vendor/gems/thrift/ext/thrift_native.c +194 -0
- data/vendor/gems/thrift/lib/thrift/client.rb +62 -0
- data/vendor/gems/thrift/{contrib/fb303/py/fb303_scripts/__init__.py → lib/thrift/core_ext/fixnum.rb} +13 -4
- data/vendor/gems/thrift/{contrib/fb303/global_footer.mk → lib/thrift/core_ext.rb} +4 -2
- data/vendor/gems/thrift/lib/thrift/exceptions.rb +82 -0
- data/vendor/gems/thrift/lib/thrift/processor.rb +57 -0
- data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +290 -0
- data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +225 -0
- data/vendor/gems/thrift/{cleanup.sh → lib/thrift/protocol/binary_protocol_accelerated.rb} +19 -42
- data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +422 -0
- data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +33 -0
- data/vendor/gems/thrift/{bootstrap.sh → lib/thrift/serializer/serializer.rb} +17 -18
- data/vendor/gems/thrift/lib/thrift/server/base_server.rb +31 -0
- data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +58 -0
- data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +296 -0
- data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +43 -0
- data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +75 -0
- data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +47 -0
- data/vendor/gems/thrift/lib/thrift/struct.rb +298 -0
- data/vendor/gems/thrift/{contrib/fb303/bootstrap.sh → lib/thrift/thrift_native.rb} +5 -7
- data/vendor/gems/thrift/lib/{erl/Makefile → thrift/transport/base_server_transport.rb} +20 -20
- data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +70 -0
- data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +77 -0
- data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +90 -0
- data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +45 -0
- data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +39 -0
- data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +96 -0
- data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +63 -0
- data/vendor/gems/thrift/lib/thrift/transport/socket.rb +136 -0
- data/vendor/gems/thrift/lib/{java/Makefile.am → thrift/transport/unix_server_socket.rb} +39 -17
- data/vendor/gems/thrift/{contrib/fb303/global_header.mk → lib/thrift/transport/unix_socket.rb} +23 -21
- data/vendor/gems/thrift/lib/thrift/types.rb +101 -0
- data/vendor/gems/thrift/lib/thrift.rb +59 -0
- data/vendor/gems/thrift/script/proto_benchmark.rb +121 -0
- data/vendor/gems/thrift/{lib/Makefile.am → script/read_struct.rb} +24 -36
- data/vendor/gems/thrift/{contrib/fb303/py/setup.py → script/write_struct.rb} +8 -5
- data/vendor/gems/thrift/setup.rb +1585 -0
- data/vendor/gems/thrift/spec/ThriftSpec.thrift +84 -0
- data/vendor/gems/thrift/spec/base_protocol_spec.rb +160 -0
- data/vendor/gems/thrift/spec/base_transport_spec.rb +351 -0
- data/vendor/gems/thrift/{contrib/fb303/py/Makefile.am → spec/binary_protocol_accelerated_spec.rb} +22 -25
- data/vendor/gems/thrift/spec/binary_protocol_spec.rb +63 -0
- data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +375 -0
- data/vendor/gems/thrift/spec/client_spec.rb +100 -0
- data/vendor/gems/thrift/spec/compact_protocol_spec.rb +117 -0
- data/vendor/gems/thrift/spec/exception_spec.rb +142 -0
- data/vendor/gems/thrift/spec/http_client_spec.rb +49 -0
- data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +117 -0
- data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +265 -0
- data/vendor/gems/thrift/spec/processor_spec.rb +83 -0
- data/vendor/gems/thrift/spec/serializer_spec.rb +69 -0
- data/vendor/gems/thrift/spec/server_socket_spec.rb +80 -0
- data/vendor/gems/thrift/spec/server_spec.rb +160 -0
- data/vendor/gems/thrift/spec/socket_spec.rb +61 -0
- data/vendor/gems/thrift/spec/socket_spec_shared.rb +104 -0
- data/vendor/gems/thrift/spec/spec_helper.rb +60 -0
- data/vendor/gems/thrift/spec/struct_spec.rb +252 -0
- data/vendor/gems/thrift/spec/types_spec.rb +116 -0
- data/vendor/gems/thrift/spec/unix_socket_spec.rb +108 -0
- data/vendor/gems/trollop/FAQ.txt +84 -0
- data/vendor/gems/trollop/History.txt +101 -0
- data/vendor/gems/trollop/Manifest.txt +7 -0
- data/vendor/gems/trollop/README.txt +40 -0
- data/vendor/gems/trollop/Rakefile +36 -0
- data/vendor/gems/trollop/lib/trollop.rb +739 -0
- data/vendor/gems/trollop/release-script.txt +13 -0
- data/vendor/gems/trollop/test/test_trollop.rb +1048 -0
- data/vendor/gems/trollop/www/index.html +172 -0
- metadata +123 -347
- data/vendor/gems/thrift/CHANGES +0 -35
- data/vendor/gems/thrift/CONTRIBUTORS +0 -77
- data/vendor/gems/thrift/DISCLAIMER +0 -6
- data/vendor/gems/thrift/LICENSE +0 -202
- data/vendor/gems/thrift/NEWS +0 -79
- data/vendor/gems/thrift/NOTICE +0 -26
- data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +0 -198
- data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +0 -107
- data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +0 -194
- data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +0 -173
- data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +0 -127
- data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +0 -39
- data/vendor/gems/thrift/compiler/cpp/Makefile.am +0 -136
- data/vendor/gems/thrift/compiler/cpp/README +0 -39
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +0 -2331
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +0 -3003
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +0 -1700
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +0 -932
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +0 -173
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +0 -321
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +0 -1445
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +0 -637
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +0 -3069
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +0 -1673
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +0 -77
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +0 -1812
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +0 -2281
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +0 -2310
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +0 -1114
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +0 -1071
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +0 -354
- data/vendor/gems/thrift/compiler/cpp/src/globals.h +0 -117
- data/vendor/gems/thrift/compiler/cpp/src/main.cc +0 -1207
- data/vendor/gems/thrift/compiler/cpp/src/main.h +0 -103
- data/vendor/gems/thrift/compiler/cpp/src/md5.c +0 -381
- data/vendor/gems/thrift/compiler/cpp/src/md5.h +0 -91
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +0 -137
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +0 -59
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +0 -121
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +0 -56
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +0 -51
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +0 -59
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +0 -64
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +0 -150
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +0 -93
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +0 -56
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +0 -64
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +0 -223
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +0 -86
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +0 -68
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +0 -55
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +0 -127
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +0 -176
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +0 -70
- data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +0 -303
- data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +0 -1140
- data/vendor/gems/thrift/configure.ac +0 -255
- data/vendor/gems/thrift/contrib/fb303/LICENSE +0 -16
- data/vendor/gems/thrift/contrib/fb303/README +0 -37
- data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +0 -258
- data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +0 -198
- data/vendor/gems/thrift/contrib/fb303/configure.ac +0 -115
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +0 -124
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +0 -103
- data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +0 -84
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +0 -481
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +0 -215
- data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +0 -112
- data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +0 -103
- data/vendor/gems/thrift/contrib/fb303/java/build.xml +0 -84
- data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +0 -89
- data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +0 -82
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +0 -195
- data/vendor/gems/thrift/contrib/thrift.el +0 -126
- data/vendor/gems/thrift/contrib/thrift.spec +0 -206
- data/vendor/gems/thrift/contrib/thrift.vim +0 -91
- data/vendor/gems/thrift/contrib/thrift_dump.cpp +0 -91
- data/vendor/gems/thrift/doc/lgpl-2.1.txt +0 -504
- data/vendor/gems/thrift/doc/otp-base-license.txt +0 -20
- data/vendor/gems/thrift/doc/thrift.bnf +0 -96
- data/vendor/gems/thrift/doc/thrift.tex +0 -1057
- data/vendor/gems/thrift/lib/cocoa/README +0 -21
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +0 -44
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +0 -130
- data/vendor/gems/thrift/lib/cocoa/src/TException.h +0 -34
- data/vendor/gems/thrift/lib/cocoa/src/TException.m +0 -64
- data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +0 -29
- data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +0 -27
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +0 -27
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +0 -51
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +0 -51
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +0 -477
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +0 -148
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +0 -29
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +0 -29
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +0 -104
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +0 -50
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +0 -153
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +0 -42
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +0 -159
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +0 -35
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +0 -91
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +0 -38
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +0 -89
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +0 -32
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +0 -58
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +0 -36
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +0 -30
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +0 -43
- data/vendor/gems/thrift/lib/cpp/Makefile.am +0 -158
- data/vendor/gems/thrift/lib/cpp/README +0 -67
- data/vendor/gems/thrift/lib/cpp/src/TLogging.h +0 -163
- data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +0 -53
- data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +0 -96
- data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +0 -148
- data/vendor/gems/thrift/lib/cpp/src/Thrift.h +0 -191
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +0 -60
- data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +0 -77
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +0 -137
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +0 -84
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +0 -160
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +0 -114
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +0 -314
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +0 -130
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +0 -125
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +0 -493
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +0 -169
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +0 -284
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +0 -122
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +0 -55
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +0 -100
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +0 -155
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +0 -354
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +0 -379
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +0 -155
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +0 -122
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +0 -77
- data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +0 -264
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +0 -79
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +0 -42
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +0 -394
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +0 -254
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +0 -736
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +0 -279
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +0 -346
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +0 -225
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +0 -762
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +0 -253
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +0 -998
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +0 -340
- data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +0 -304
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +0 -438
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +0 -104
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +0 -187
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +0 -750
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +0 -435
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +0 -38
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +0 -213
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +0 -118
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +0 -70
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +0 -217
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +0 -79
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +0 -243
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +0 -74
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +0 -370
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +0 -667
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +0 -77
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +0 -73
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +0 -953
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +0 -442
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +0 -348
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +0 -111
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +0 -368
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +0 -76
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +0 -92
- data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +0 -96
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +0 -54
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +0 -41
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +0 -591
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +0 -242
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +0 -235
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +0 -191
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +0 -224
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +0 -31
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +0 -117
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +0 -178
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +0 -287
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +0 -299
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +0 -219
- data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +0 -30
- data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +0 -30
- data/vendor/gems/thrift/lib/cpp/thrift.pc.in +0 -29
- data/vendor/gems/thrift/lib/csharp/Makefile.am +0 -70
- data/vendor/gems/thrift/lib/csharp/README +0 -26
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +0 -55
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +0 -242
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +0 -62
- data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +0 -142
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +0 -34
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +0 -392
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +0 -58
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +0 -50
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +0 -58
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +0 -58
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +0 -87
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +0 -61
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +0 -29
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +0 -94
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +0 -50
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +0 -42
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +0 -40
- data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +0 -135
- data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +0 -148
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +0 -186
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +0 -234
- data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +0 -131
- data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +0 -73
- data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +0 -35
- data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +0 -100
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +0 -157
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +0 -39
- data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +0 -144
- data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +0 -103
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +0 -66
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +0 -64
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +0 -38
- data/vendor/gems/thrift/lib/erl/README +0 -56
- data/vendor/gems/thrift/lib/erl/build/beamver +0 -59
- data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +0 -15
- data/vendor/gems/thrift/lib/erl/build/colors.mk +0 -24
- data/vendor/gems/thrift/lib/erl/build/docs.mk +0 -12
- data/vendor/gems/thrift/lib/erl/build/mime.types +0 -98
- data/vendor/gems/thrift/lib/erl/build/otp.mk +0 -146
- data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +0 -85
- data/vendor/gems/thrift/lib/erl/build/raw_test.mk +0 -29
- data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +0 -54
- data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +0 -31
- data/vendor/gems/thrift/lib/erl/src/Makefile +0 -116
- data/vendor/gems/thrift/lib/erl/src/test_handler.erl +0 -26
- data/vendor/gems/thrift/lib/erl/src/test_service.erl +0 -29
- data/vendor/gems/thrift/lib/erl/src/thrift.app.src +0 -44
- data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +0 -1
- data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +0 -64
- data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +0 -325
- data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +0 -180
- data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +0 -384
- data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +0 -118
- data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +0 -87
- data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +0 -208
- data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +0 -199
- data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +0 -164
- data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +0 -188
- data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +0 -356
- data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +0 -183
- data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +0 -25
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +0 -249
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +0 -119
- data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +0 -57
- data/vendor/gems/thrift/lib/erl/vsn.mk +0 -1
- data/vendor/gems/thrift/lib/hs/README +0 -82
- data/vendor/gems/thrift/lib/hs/TODO +0 -2
- data/vendor/gems/thrift/lib/hs/Thrift.cabal +0 -20
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +0 -147
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +0 -191
- data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +0 -65
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +0 -58
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +0 -60
- data/vendor/gems/thrift/lib/hs/src/Thrift.hs +0 -111
- data/vendor/gems/thrift/lib/java/README +0 -43
- data/vendor/gems/thrift/lib/java/build.xml +0 -195
- data/vendor/gems/thrift/lib/java/ivy.xml +0 -8
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +0 -171
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +0 -123
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +0 -66
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +0 -102
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +0 -46
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +0 -94
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +0 -45
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +0 -30
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +0 -32
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +0 -39
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +0 -110
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +0 -69
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +0 -42
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +0 -29
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +0 -29
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +0 -128
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +0 -331
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +0 -741
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +0 -48
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +0 -927
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +0 -38
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +0 -40
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +0 -48
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +0 -146
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +0 -81
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +0 -30
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +0 -158
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +0 -42
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +0 -384
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +0 -36
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +0 -40
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +0 -304
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +0 -772
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +0 -126
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +0 -145
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +0 -271
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +0 -126
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +0 -157
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +0 -159
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +0 -98
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +0 -160
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +0 -213
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +0 -145
|
@@ -1,368 +0,0 @@
|
|
|
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 <cstring>
|
|
21
|
-
#include <sys/types.h>
|
|
22
|
-
#include <sys/socket.h>
|
|
23
|
-
#include <sys/poll.h>
|
|
24
|
-
#include <sys/types.h>
|
|
25
|
-
#include <netinet/in.h>
|
|
26
|
-
#include <netinet/tcp.h>
|
|
27
|
-
#include <netdb.h>
|
|
28
|
-
#include <fcntl.h>
|
|
29
|
-
#include <errno.h>
|
|
30
|
-
#include <unistd.h>
|
|
31
|
-
|
|
32
|
-
#include "TSocket.h"
|
|
33
|
-
#include "TServerSocket.h"
|
|
34
|
-
#include <boost/shared_ptr.hpp>
|
|
35
|
-
|
|
36
|
-
namespace apache { namespace thrift { namespace transport {
|
|
37
|
-
|
|
38
|
-
using namespace std;
|
|
39
|
-
using boost::shared_ptr;
|
|
40
|
-
|
|
41
|
-
TServerSocket::TServerSocket(int port) :
|
|
42
|
-
port_(port),
|
|
43
|
-
serverSocket_(-1),
|
|
44
|
-
acceptBacklog_(1024),
|
|
45
|
-
sendTimeout_(0),
|
|
46
|
-
recvTimeout_(0),
|
|
47
|
-
retryLimit_(0),
|
|
48
|
-
retryDelay_(0),
|
|
49
|
-
tcpSendBuffer_(0),
|
|
50
|
-
tcpRecvBuffer_(0),
|
|
51
|
-
intSock1_(-1),
|
|
52
|
-
intSock2_(-1) {}
|
|
53
|
-
|
|
54
|
-
TServerSocket::TServerSocket(int port, int sendTimeout, int recvTimeout) :
|
|
55
|
-
port_(port),
|
|
56
|
-
serverSocket_(-1),
|
|
57
|
-
acceptBacklog_(1024),
|
|
58
|
-
sendTimeout_(sendTimeout),
|
|
59
|
-
recvTimeout_(recvTimeout),
|
|
60
|
-
retryLimit_(0),
|
|
61
|
-
retryDelay_(0),
|
|
62
|
-
tcpSendBuffer_(0),
|
|
63
|
-
tcpRecvBuffer_(0),
|
|
64
|
-
intSock1_(-1),
|
|
65
|
-
intSock2_(-1) {}
|
|
66
|
-
|
|
67
|
-
TServerSocket::~TServerSocket() {
|
|
68
|
-
close();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
void TServerSocket::setSendTimeout(int sendTimeout) {
|
|
72
|
-
sendTimeout_ = sendTimeout;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
void TServerSocket::setRecvTimeout(int recvTimeout) {
|
|
76
|
-
recvTimeout_ = recvTimeout;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
void TServerSocket::setRetryLimit(int retryLimit) {
|
|
80
|
-
retryLimit_ = retryLimit;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
void TServerSocket::setRetryDelay(int retryDelay) {
|
|
84
|
-
retryDelay_ = retryDelay;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
void TServerSocket::setTcpSendBuffer(int tcpSendBuffer) {
|
|
88
|
-
tcpSendBuffer_ = tcpSendBuffer;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
void TServerSocket::setTcpRecvBuffer(int tcpRecvBuffer) {
|
|
92
|
-
tcpRecvBuffer_ = tcpRecvBuffer;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
void TServerSocket::listen() {
|
|
96
|
-
int sv[2];
|
|
97
|
-
if (-1 == socketpair(AF_LOCAL, SOCK_STREAM, 0, sv)) {
|
|
98
|
-
GlobalOutput.perror("TServerSocket::listen() socketpair() ", errno);
|
|
99
|
-
intSock1_ = -1;
|
|
100
|
-
intSock2_ = -1;
|
|
101
|
-
} else {
|
|
102
|
-
intSock1_ = sv[1];
|
|
103
|
-
intSock2_ = sv[0];
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
struct addrinfo hints, *res, *res0;
|
|
107
|
-
int error;
|
|
108
|
-
char port[sizeof("65536") + 1];
|
|
109
|
-
std::memset(&hints, 0, sizeof(hints));
|
|
110
|
-
hints.ai_family = PF_UNSPEC;
|
|
111
|
-
hints.ai_socktype = SOCK_STREAM;
|
|
112
|
-
hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
|
|
113
|
-
sprintf(port, "%d", port_);
|
|
114
|
-
|
|
115
|
-
// Wildcard address
|
|
116
|
-
error = getaddrinfo(NULL, port, &hints, &res0);
|
|
117
|
-
if (error) {
|
|
118
|
-
GlobalOutput.printf("getaddrinfo %d: %s", error, gai_strerror(error));
|
|
119
|
-
close();
|
|
120
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not resolve host for server socket.");
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// Pick the ipv6 address first since ipv4 addresses can be mapped
|
|
124
|
-
// into ipv6 space.
|
|
125
|
-
for (res = res0; res; res = res->ai_next) {
|
|
126
|
-
if (res->ai_family == AF_INET6 || res->ai_next == NULL)
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
serverSocket_ = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
|
|
131
|
-
if (serverSocket_ == -1) {
|
|
132
|
-
int errno_copy = errno;
|
|
133
|
-
GlobalOutput.perror("TServerSocket::listen() socket() ", errno_copy);
|
|
134
|
-
close();
|
|
135
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not create server socket.", errno_copy);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Set reusaddress to prevent 2MSL delay on accept
|
|
139
|
-
int one = 1;
|
|
140
|
-
if (-1 == setsockopt(serverSocket_, SOL_SOCKET, SO_REUSEADDR,
|
|
141
|
-
&one, sizeof(one))) {
|
|
142
|
-
int errno_copy = errno;
|
|
143
|
-
GlobalOutput.perror("TServerSocket::listen() setsockopt() SO_REUSEADDR ", errno_copy);
|
|
144
|
-
close();
|
|
145
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not set SO_REUSEADDR", errno_copy);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Set TCP buffer sizes
|
|
149
|
-
if (tcpSendBuffer_ > 0) {
|
|
150
|
-
if (-1 == setsockopt(serverSocket_, SOL_SOCKET, SO_SNDBUF,
|
|
151
|
-
&tcpSendBuffer_, sizeof(tcpSendBuffer_))) {
|
|
152
|
-
int errno_copy = errno;
|
|
153
|
-
GlobalOutput.perror("TServerSocket::listen() setsockopt() SO_SNDBUF ", errno_copy);
|
|
154
|
-
close();
|
|
155
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not set SO_SNDBUF", errno_copy);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
if (tcpRecvBuffer_ > 0) {
|
|
160
|
-
if (-1 == setsockopt(serverSocket_, SOL_SOCKET, SO_RCVBUF,
|
|
161
|
-
&tcpRecvBuffer_, sizeof(tcpRecvBuffer_))) {
|
|
162
|
-
int errno_copy = errno;
|
|
163
|
-
GlobalOutput.perror("TServerSocket::listen() setsockopt() SO_RCVBUF ", errno_copy);
|
|
164
|
-
close();
|
|
165
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not set SO_RCVBUF", errno_copy);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Defer accept
|
|
170
|
-
#ifdef TCP_DEFER_ACCEPT
|
|
171
|
-
if (-1 == setsockopt(serverSocket_, SOL_SOCKET, TCP_DEFER_ACCEPT,
|
|
172
|
-
&one, sizeof(one))) {
|
|
173
|
-
int errno_copy = errno;
|
|
174
|
-
GlobalOutput.perror("TServerSocket::listen() setsockopt() TCP_DEFER_ACCEPT ", errno_copy);
|
|
175
|
-
close();
|
|
176
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not set TCP_DEFER_ACCEPT", errno_copy);
|
|
177
|
-
}
|
|
178
|
-
#endif // #ifdef TCP_DEFER_ACCEPT
|
|
179
|
-
|
|
180
|
-
#ifdef IPV6_V6ONLY
|
|
181
|
-
int zero = 0;
|
|
182
|
-
if (-1 == setsockopt(serverSocket_, IPPROTO_IPV6, IPV6_V6ONLY,
|
|
183
|
-
&zero, sizeof(zero))) {
|
|
184
|
-
GlobalOutput.perror("TServerSocket::listen() IPV6_V6ONLY ", errno);
|
|
185
|
-
}
|
|
186
|
-
#endif // #ifdef IPV6_V6ONLY
|
|
187
|
-
|
|
188
|
-
// Turn linger off, don't want to block on calls to close
|
|
189
|
-
struct linger ling = {0, 0};
|
|
190
|
-
if (-1 == setsockopt(serverSocket_, SOL_SOCKET, SO_LINGER,
|
|
191
|
-
&ling, sizeof(ling))) {
|
|
192
|
-
int errno_copy = errno;
|
|
193
|
-
GlobalOutput.perror("TServerSocket::listen() setsockopt() SO_LINGER ", errno_copy);
|
|
194
|
-
close();
|
|
195
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not set SO_LINGER", errno_copy);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// TCP Nodelay, speed over bandwidth
|
|
199
|
-
if (-1 == setsockopt(serverSocket_, IPPROTO_TCP, TCP_NODELAY,
|
|
200
|
-
&one, sizeof(one))) {
|
|
201
|
-
int errno_copy = errno;
|
|
202
|
-
GlobalOutput.perror("TServerSocket::listen() setsockopt() TCP_NODELAY ", errno_copy);
|
|
203
|
-
close();
|
|
204
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not set TCP_NODELAY", errno_copy);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Set NONBLOCK on the accept socket
|
|
208
|
-
int flags = fcntl(serverSocket_, F_GETFL, 0);
|
|
209
|
-
if (flags == -1) {
|
|
210
|
-
int errno_copy = errno;
|
|
211
|
-
GlobalOutput.perror("TServerSocket::listen() fcntl() F_GETFL ", errno_copy);
|
|
212
|
-
throw TTransportException(TTransportException::NOT_OPEN, "fcntl() failed", errno_copy);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
if (-1 == fcntl(serverSocket_, F_SETFL, flags | O_NONBLOCK)) {
|
|
216
|
-
int errno_copy = errno;
|
|
217
|
-
GlobalOutput.perror("TServerSocket::listen() fcntl() O_NONBLOCK ", errno_copy);
|
|
218
|
-
throw TTransportException(TTransportException::NOT_OPEN, "fcntl() failed", errno_copy);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// prepare the port information
|
|
222
|
-
// we may want to try to bind more than once, since SO_REUSEADDR doesn't
|
|
223
|
-
// always seem to work. The client can configure the retry variables.
|
|
224
|
-
int retries = 0;
|
|
225
|
-
do {
|
|
226
|
-
if (0 == bind(serverSocket_, res->ai_addr, res->ai_addrlen)) {
|
|
227
|
-
break;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// use short circuit evaluation here to only sleep if we need to
|
|
231
|
-
} while ((retries++ < retryLimit_) && (sleep(retryDelay_) == 0));
|
|
232
|
-
|
|
233
|
-
// free addrinfo
|
|
234
|
-
freeaddrinfo(res0);
|
|
235
|
-
|
|
236
|
-
// throw an error if we failed to bind properly
|
|
237
|
-
if (retries > retryLimit_) {
|
|
238
|
-
char errbuf[1024];
|
|
239
|
-
sprintf(errbuf, "TServerSocket::listen() BIND %d", port_);
|
|
240
|
-
GlobalOutput(errbuf);
|
|
241
|
-
close();
|
|
242
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not bind");
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// Call listen
|
|
246
|
-
if (-1 == ::listen(serverSocket_, acceptBacklog_)) {
|
|
247
|
-
int errno_copy = errno;
|
|
248
|
-
GlobalOutput.perror("TServerSocket::listen() listen() ", errno_copy);
|
|
249
|
-
close();
|
|
250
|
-
throw TTransportException(TTransportException::NOT_OPEN, "Could not listen", errno_copy);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
// The socket is now listening!
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
shared_ptr<TTransport> TServerSocket::acceptImpl() {
|
|
257
|
-
if (serverSocket_ < 0) {
|
|
258
|
-
throw TTransportException(TTransportException::NOT_OPEN, "TServerSocket not listening");
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
struct pollfd fds[2];
|
|
262
|
-
|
|
263
|
-
int maxEintrs = 5;
|
|
264
|
-
int numEintrs = 0;
|
|
265
|
-
|
|
266
|
-
while (true) {
|
|
267
|
-
std::memset(fds, 0 , sizeof(fds));
|
|
268
|
-
fds[0].fd = serverSocket_;
|
|
269
|
-
fds[0].events = POLLIN;
|
|
270
|
-
if (intSock2_ >= 0) {
|
|
271
|
-
fds[1].fd = intSock2_;
|
|
272
|
-
fds[1].events = POLLIN;
|
|
273
|
-
}
|
|
274
|
-
int ret = poll(fds, 2, -1);
|
|
275
|
-
|
|
276
|
-
if (ret < 0) {
|
|
277
|
-
// error cases
|
|
278
|
-
if (errno == EINTR && (numEintrs++ < maxEintrs)) {
|
|
279
|
-
// EINTR needs to be handled manually and we can tolerate
|
|
280
|
-
// a certain number
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
int errno_copy = errno;
|
|
284
|
-
GlobalOutput.perror("TServerSocket::acceptImpl() poll() ", errno_copy);
|
|
285
|
-
throw TTransportException(TTransportException::UNKNOWN, "Unknown", errno_copy);
|
|
286
|
-
} else if (ret > 0) {
|
|
287
|
-
// Check for an interrupt signal
|
|
288
|
-
if (intSock2_ >= 0 && (fds[1].revents & POLLIN)) {
|
|
289
|
-
int8_t buf;
|
|
290
|
-
if (-1 == recv(intSock2_, &buf, sizeof(int8_t), 0)) {
|
|
291
|
-
GlobalOutput.perror("TServerSocket::acceptImpl() recv() interrupt ", errno);
|
|
292
|
-
}
|
|
293
|
-
throw TTransportException(TTransportException::INTERRUPTED);
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
// Check for the actual server socket being ready
|
|
297
|
-
if (fds[0].revents & POLLIN) {
|
|
298
|
-
break;
|
|
299
|
-
}
|
|
300
|
-
} else {
|
|
301
|
-
GlobalOutput("TServerSocket::acceptImpl() poll 0");
|
|
302
|
-
throw TTransportException(TTransportException::UNKNOWN);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
struct sockaddr_storage clientAddress;
|
|
307
|
-
int size = sizeof(clientAddress);
|
|
308
|
-
int clientSocket = ::accept(serverSocket_,
|
|
309
|
-
(struct sockaddr *) &clientAddress,
|
|
310
|
-
(socklen_t *) &size);
|
|
311
|
-
|
|
312
|
-
if (clientSocket < 0) {
|
|
313
|
-
int errno_copy = errno;
|
|
314
|
-
GlobalOutput.perror("TServerSocket::acceptImpl() ::accept() ", errno_copy);
|
|
315
|
-
throw TTransportException(TTransportException::UNKNOWN, "accept()", errno_copy);
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// Make sure client socket is blocking
|
|
319
|
-
int flags = fcntl(clientSocket, F_GETFL, 0);
|
|
320
|
-
if (flags == -1) {
|
|
321
|
-
int errno_copy = errno;
|
|
322
|
-
GlobalOutput.perror("TServerSocket::acceptImpl() fcntl() F_GETFL ", errno_copy);
|
|
323
|
-
throw TTransportException(TTransportException::UNKNOWN, "fcntl(F_GETFL)", errno_copy);
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
if (-1 == fcntl(clientSocket, F_SETFL, flags & ~O_NONBLOCK)) {
|
|
327
|
-
int errno_copy = errno;
|
|
328
|
-
GlobalOutput.perror("TServerSocket::acceptImpl() fcntl() F_SETFL ~O_NONBLOCK ", errno_copy);
|
|
329
|
-
throw TTransportException(TTransportException::UNKNOWN, "fcntl(F_SETFL)", errno_copy);
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
shared_ptr<TSocket> client(new TSocket(clientSocket));
|
|
333
|
-
if (sendTimeout_ > 0) {
|
|
334
|
-
client->setSendTimeout(sendTimeout_);
|
|
335
|
-
}
|
|
336
|
-
if (recvTimeout_ > 0) {
|
|
337
|
-
client->setRecvTimeout(recvTimeout_);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
return client;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
void TServerSocket::interrupt() {
|
|
344
|
-
if (intSock1_ >= 0) {
|
|
345
|
-
int8_t byte = 0;
|
|
346
|
-
if (-1 == send(intSock1_, &byte, sizeof(int8_t), 0)) {
|
|
347
|
-
GlobalOutput.perror("TServerSocket::interrupt() send() ", errno);
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
void TServerSocket::close() {
|
|
353
|
-
if (serverSocket_ >= 0) {
|
|
354
|
-
shutdown(serverSocket_, SHUT_RDWR);
|
|
355
|
-
::close(serverSocket_);
|
|
356
|
-
}
|
|
357
|
-
if (intSock1_ >= 0) {
|
|
358
|
-
::close(intSock1_);
|
|
359
|
-
}
|
|
360
|
-
if (intSock2_ >= 0) {
|
|
361
|
-
::close(intSock2_);
|
|
362
|
-
}
|
|
363
|
-
serverSocket_ = -1;
|
|
364
|
-
intSock1_ = -1;
|
|
365
|
-
intSock2_ = -1;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
}}} // apache::thrift::transport
|
|
@@ -1,76 +0,0 @@
|
|
|
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_TRANSPORT_TSERVERSOCKET_H_
|
|
21
|
-
#define _THRIFT_TRANSPORT_TSERVERSOCKET_H_ 1
|
|
22
|
-
|
|
23
|
-
#include "TServerTransport.h"
|
|
24
|
-
#include <boost/shared_ptr.hpp>
|
|
25
|
-
|
|
26
|
-
namespace apache { namespace thrift { namespace transport {
|
|
27
|
-
|
|
28
|
-
class TSocket;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Server socket implementation of TServerTransport. Wrapper around a unix
|
|
32
|
-
* socket listen and accept calls.
|
|
33
|
-
*
|
|
34
|
-
*/
|
|
35
|
-
class TServerSocket : public TServerTransport {
|
|
36
|
-
public:
|
|
37
|
-
TServerSocket(int port);
|
|
38
|
-
TServerSocket(int port, int sendTimeout, int recvTimeout);
|
|
39
|
-
|
|
40
|
-
~TServerSocket();
|
|
41
|
-
|
|
42
|
-
void setSendTimeout(int sendTimeout);
|
|
43
|
-
void setRecvTimeout(int recvTimeout);
|
|
44
|
-
|
|
45
|
-
void setRetryLimit(int retryLimit);
|
|
46
|
-
void setRetryDelay(int retryDelay);
|
|
47
|
-
|
|
48
|
-
void setTcpSendBuffer(int tcpSendBuffer);
|
|
49
|
-
void setTcpRecvBuffer(int tcpRecvBuffer);
|
|
50
|
-
|
|
51
|
-
void listen();
|
|
52
|
-
void close();
|
|
53
|
-
|
|
54
|
-
void interrupt();
|
|
55
|
-
|
|
56
|
-
protected:
|
|
57
|
-
boost::shared_ptr<TTransport> acceptImpl();
|
|
58
|
-
|
|
59
|
-
private:
|
|
60
|
-
int port_;
|
|
61
|
-
int serverSocket_;
|
|
62
|
-
int acceptBacklog_;
|
|
63
|
-
int sendTimeout_;
|
|
64
|
-
int recvTimeout_;
|
|
65
|
-
int retryLimit_;
|
|
66
|
-
int retryDelay_;
|
|
67
|
-
int tcpSendBuffer_;
|
|
68
|
-
int tcpRecvBuffer_;
|
|
69
|
-
|
|
70
|
-
int intSock1_;
|
|
71
|
-
int intSock2_;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
}}} // apache::thrift::transport
|
|
75
|
-
|
|
76
|
-
#endif // #ifndef _THRIFT_TRANSPORT_TSERVERSOCKET_H_
|
|
@@ -1,92 +0,0 @@
|
|
|
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_TRANSPORT_TSERVERTRANSPORT_H_
|
|
21
|
-
#define _THRIFT_TRANSPORT_TSERVERTRANSPORT_H_ 1
|
|
22
|
-
|
|
23
|
-
#include "TTransport.h"
|
|
24
|
-
#include "TTransportException.h"
|
|
25
|
-
#include <boost/shared_ptr.hpp>
|
|
26
|
-
|
|
27
|
-
namespace apache { namespace thrift { namespace transport {
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Server transport framework. A server needs to have some facility for
|
|
31
|
-
* creating base transports to read/write from.
|
|
32
|
-
*
|
|
33
|
-
*/
|
|
34
|
-
class TServerTransport {
|
|
35
|
-
public:
|
|
36
|
-
virtual ~TServerTransport() {}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Starts the server transport listening for new connections. Prior to this
|
|
40
|
-
* call most transports will not return anything when accept is called.
|
|
41
|
-
*
|
|
42
|
-
* @throws TTransportException if we were unable to listen
|
|
43
|
-
*/
|
|
44
|
-
virtual void listen() {}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Gets a new dynamically allocated transport object and passes it to the
|
|
48
|
-
* caller. Note that it is the explicit duty of the caller to free the
|
|
49
|
-
* allocated object. The returned TTransport object must always be in the
|
|
50
|
-
* opened state. NULL should never be returned, instead an Exception should
|
|
51
|
-
* always be thrown.
|
|
52
|
-
*
|
|
53
|
-
* @return A new TTransport object
|
|
54
|
-
* @throws TTransportException if there is an error
|
|
55
|
-
*/
|
|
56
|
-
boost::shared_ptr<TTransport> accept() {
|
|
57
|
-
boost::shared_ptr<TTransport> result = acceptImpl();
|
|
58
|
-
if (result == NULL) {
|
|
59
|
-
throw TTransportException("accept() may not return NULL");
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* For "smart" TServerTransport implementations that work in a multi
|
|
66
|
-
* threaded context this can be used to break out of an accept() call.
|
|
67
|
-
* It is expected that the transport will throw a TTransportException
|
|
68
|
-
* with the interrupted error code.
|
|
69
|
-
*/
|
|
70
|
-
virtual void interrupt() {}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Closes this transport such that future calls to accept will do nothing.
|
|
74
|
-
*/
|
|
75
|
-
virtual void close() = 0;
|
|
76
|
-
|
|
77
|
-
protected:
|
|
78
|
-
TServerTransport() {}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Subclasses should implement this function for accept.
|
|
82
|
-
*
|
|
83
|
-
* @return A newly allocated TTransport object
|
|
84
|
-
* @throw TTransportException If an error occurs
|
|
85
|
-
*/
|
|
86
|
-
virtual boost::shared_ptr<TTransport> acceptImpl() = 0;
|
|
87
|
-
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
}}} // apache::thrift::transport
|
|
91
|
-
|
|
92
|
-
#endif // #ifndef _THRIFT_TRANSPORT_TSERVERTRANSPORT_H_
|
|
@@ -1,96 +0,0 @@
|
|
|
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_TRANSPORT_TSHORTREADTRANSPORT_H_
|
|
21
|
-
#define _THRIFT_TRANSPORT_TSHORTREADTRANSPORT_H_ 1
|
|
22
|
-
|
|
23
|
-
#include <cstdlib>
|
|
24
|
-
|
|
25
|
-
#include <transport/TTransport.h>
|
|
26
|
-
|
|
27
|
-
namespace apache { namespace thrift { namespace transport { namespace test {
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* This class is only meant for testing. It wraps another transport.
|
|
31
|
-
* Calls to read are passed through with some probability. Otherwise,
|
|
32
|
-
* the read amount is randomly reduced before being passed through.
|
|
33
|
-
*
|
|
34
|
-
*/
|
|
35
|
-
class TShortReadTransport : public TTransport {
|
|
36
|
-
public:
|
|
37
|
-
TShortReadTransport(boost::shared_ptr<TTransport> transport, double full_prob)
|
|
38
|
-
: transport_(transport)
|
|
39
|
-
, fullProb_(full_prob)
|
|
40
|
-
{}
|
|
41
|
-
|
|
42
|
-
bool isOpen() {
|
|
43
|
-
return transport_->isOpen();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
bool peek() {
|
|
47
|
-
return transport_->peek();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
void open() {
|
|
51
|
-
transport_->open();
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
void close() {
|
|
55
|
-
transport_->close();
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
uint32_t read(uint8_t* buf, uint32_t len) {
|
|
59
|
-
if (len == 0) {
|
|
60
|
-
return 0;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (rand()/(double)RAND_MAX >= fullProb_) {
|
|
64
|
-
len = 1 + rand()%len;
|
|
65
|
-
}
|
|
66
|
-
return transport_->read(buf, len);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
void write(const uint8_t* buf, uint32_t len) {
|
|
70
|
-
transport_->write(buf, len);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
void flush() {
|
|
74
|
-
transport_->flush();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const uint8_t* borrow(uint8_t* buf, uint32_t* len) {
|
|
78
|
-
return transport_->borrow(buf, len);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
void consume(uint32_t len) {
|
|
82
|
-
return transport_->consume(len);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
boost::shared_ptr<TTransport> getUnderlyingTransport() {
|
|
86
|
-
return transport_;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
protected:
|
|
90
|
-
boost::shared_ptr<TTransport> transport_;
|
|
91
|
-
double fullProb_;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
}}}} // apache::thrift::transport::test
|
|
95
|
-
|
|
96
|
-
#endif // #ifndef _THRIFT_TRANSPORT_TSHORTREADTRANSPORT_H_
|
|
@@ -1,54 +0,0 @@
|
|
|
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 "TSimpleFileTransport.h"
|
|
21
|
-
|
|
22
|
-
#include <sys/types.h>
|
|
23
|
-
#include <sys/stat.h>
|
|
24
|
-
#include <fcntl.h>
|
|
25
|
-
|
|
26
|
-
namespace apache { namespace thrift { namespace transport {
|
|
27
|
-
|
|
28
|
-
TSimpleFileTransport::
|
|
29
|
-
TSimpleFileTransport(const std::string& path, bool read, bool write)
|
|
30
|
-
: TFDTransport(-1, TFDTransport::CLOSE_ON_DESTROY) {
|
|
31
|
-
int flags = 0;
|
|
32
|
-
if (read && write) {
|
|
33
|
-
flags = O_RDWR;
|
|
34
|
-
} else if (read) {
|
|
35
|
-
flags = O_RDONLY;
|
|
36
|
-
} else if (write) {
|
|
37
|
-
flags = O_WRONLY;
|
|
38
|
-
} else {
|
|
39
|
-
throw TTransportException("Neither READ nor WRITE specified");
|
|
40
|
-
}
|
|
41
|
-
if (write) {
|
|
42
|
-
flags |= O_CREAT | O_APPEND;
|
|
43
|
-
}
|
|
44
|
-
int fd = ::open(path.c_str(),
|
|
45
|
-
flags,
|
|
46
|
-
S_IRUSR | S_IWUSR| S_IRGRP | S_IROTH);
|
|
47
|
-
if (fd < 0) {
|
|
48
|
-
throw TTransportException("failed to open file for writing: " + path);
|
|
49
|
-
}
|
|
50
|
-
setFD(fd);
|
|
51
|
-
open();
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
}}} // apache::thrift::transport
|