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,667 +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_TBUFFERTRANSPORTS_H_
|
|
21
|
-
#define _THRIFT_TRANSPORT_TBUFFERTRANSPORTS_H_ 1
|
|
22
|
-
|
|
23
|
-
#include <cstring>
|
|
24
|
-
#include "boost/scoped_array.hpp"
|
|
25
|
-
|
|
26
|
-
#include <transport/TTransport.h>
|
|
27
|
-
|
|
28
|
-
#ifdef __GNUC__
|
|
29
|
-
#define TDB_LIKELY(val) (__builtin_expect((val), 1))
|
|
30
|
-
#define TDB_UNLIKELY(val) (__builtin_expect((val), 0))
|
|
31
|
-
#else
|
|
32
|
-
#define TDB_LIKELY(val) (val)
|
|
33
|
-
#define TDB_UNLIKELY(val) (val)
|
|
34
|
-
#endif
|
|
35
|
-
|
|
36
|
-
namespace apache { namespace thrift { namespace transport {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Base class for all transports that use read/write buffers for performance.
|
|
41
|
-
*
|
|
42
|
-
* TBufferBase is designed to implement the fast-path "memcpy" style
|
|
43
|
-
* operations that work in the common case. It does so with small and
|
|
44
|
-
* (eventually) nonvirtual, inlinable methods. TBufferBase is an abstract
|
|
45
|
-
* class. Subclasses are expected to define the "slow path" operations
|
|
46
|
-
* that have to be done when the buffers are full or empty.
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
class TBufferBase : public TTransport {
|
|
50
|
-
|
|
51
|
-
public:
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Fast-path read.
|
|
55
|
-
*
|
|
56
|
-
* When we have enough data buffered to fulfill the read, we can satisfy it
|
|
57
|
-
* with a single memcpy, then adjust our internal pointers. If the buffer
|
|
58
|
-
* is empty, we call out to our slow path, implemented by a subclass.
|
|
59
|
-
* This method is meant to eventually be nonvirtual and inlinable.
|
|
60
|
-
*/
|
|
61
|
-
uint32_t read(uint8_t* buf, uint32_t len) {
|
|
62
|
-
uint8_t* new_rBase = rBase_ + len;
|
|
63
|
-
if (TDB_LIKELY(new_rBase <= rBound_)) {
|
|
64
|
-
std::memcpy(buf, rBase_, len);
|
|
65
|
-
rBase_ = new_rBase;
|
|
66
|
-
return len;
|
|
67
|
-
}
|
|
68
|
-
return readSlow(buf, len);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Fast-path write.
|
|
73
|
-
*
|
|
74
|
-
* When we have enough empty space in our buffer to accomodate the write, we
|
|
75
|
-
* can satisfy it with a single memcpy, then adjust our internal pointers.
|
|
76
|
-
* If the buffer is full, we call out to our slow path, implemented by a
|
|
77
|
-
* subclass. This method is meant to eventually be nonvirtual and
|
|
78
|
-
* inlinable.
|
|
79
|
-
*/
|
|
80
|
-
void write(const uint8_t* buf, uint32_t len) {
|
|
81
|
-
uint8_t* new_wBase = wBase_ + len;
|
|
82
|
-
if (TDB_LIKELY(new_wBase <= wBound_)) {
|
|
83
|
-
std::memcpy(wBase_, buf, len);
|
|
84
|
-
wBase_ = new_wBase;
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
writeSlow(buf, len);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Fast-path borrow. A lot like the fast-path read.
|
|
92
|
-
*/
|
|
93
|
-
const uint8_t* borrow(uint8_t* buf, uint32_t* len) {
|
|
94
|
-
if (TDB_LIKELY(static_cast<ptrdiff_t>(*len) <= rBound_ - rBase_)) {
|
|
95
|
-
// With strict aliasing, writing to len shouldn't force us to
|
|
96
|
-
// refetch rBase_ from memory. TODO(dreiss): Verify this.
|
|
97
|
-
*len = rBound_ - rBase_;
|
|
98
|
-
return rBase_;
|
|
99
|
-
}
|
|
100
|
-
return borrowSlow(buf, len);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Consume doesn't require a slow path.
|
|
105
|
-
*/
|
|
106
|
-
void consume(uint32_t len) {
|
|
107
|
-
if (TDB_LIKELY(static_cast<ptrdiff_t>(len) <= rBound_ - rBase_)) {
|
|
108
|
-
rBase_ += len;
|
|
109
|
-
} else {
|
|
110
|
-
throw TTransportException(TTransportException::BAD_ARGS,
|
|
111
|
-
"consume did not follow a borrow.");
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
protected:
|
|
117
|
-
|
|
118
|
-
/// Slow path read.
|
|
119
|
-
virtual uint32_t readSlow(uint8_t* buf, uint32_t len) = 0;
|
|
120
|
-
|
|
121
|
-
/// Slow path write.
|
|
122
|
-
virtual void writeSlow(const uint8_t* buf, uint32_t len) = 0;
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Slow path borrow.
|
|
126
|
-
*
|
|
127
|
-
* POSTCONDITION: return == NULL || rBound_ - rBase_ >= *len
|
|
128
|
-
*/
|
|
129
|
-
virtual const uint8_t* borrowSlow(uint8_t* buf, uint32_t* len) = 0;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Trivial constructor.
|
|
133
|
-
*
|
|
134
|
-
* Initialize pointers safely. Constructing is not a very
|
|
135
|
-
* performance-sensitive operation, so it is okay to just leave it to
|
|
136
|
-
* the concrete class to set up pointers correctly.
|
|
137
|
-
*/
|
|
138
|
-
TBufferBase()
|
|
139
|
-
: rBase_(NULL)
|
|
140
|
-
, rBound_(NULL)
|
|
141
|
-
, wBase_(NULL)
|
|
142
|
-
, wBound_(NULL)
|
|
143
|
-
{}
|
|
144
|
-
|
|
145
|
-
/// Convenience mutator for setting the read buffer.
|
|
146
|
-
void setReadBuffer(uint8_t* buf, uint32_t len) {
|
|
147
|
-
rBase_ = buf;
|
|
148
|
-
rBound_ = buf+len;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/// Convenience mutator for setting the write buffer.
|
|
152
|
-
void setWriteBuffer(uint8_t* buf, uint32_t len) {
|
|
153
|
-
wBase_ = buf;
|
|
154
|
-
wBound_ = buf+len;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
virtual ~TBufferBase() {}
|
|
158
|
-
|
|
159
|
-
/// Reads begin here.
|
|
160
|
-
uint8_t* rBase_;
|
|
161
|
-
/// Reads may extend to just before here.
|
|
162
|
-
uint8_t* rBound_;
|
|
163
|
-
|
|
164
|
-
/// Writes begin here.
|
|
165
|
-
uint8_t* wBase_;
|
|
166
|
-
/// Writes may extend to just before here.
|
|
167
|
-
uint8_t* wBound_;
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Base class for all transport which wraps transport to new one.
|
|
173
|
-
*/
|
|
174
|
-
class TUnderlyingTransport : public TBufferBase {
|
|
175
|
-
public:
|
|
176
|
-
static const int DEFAULT_BUFFER_SIZE = 512;
|
|
177
|
-
|
|
178
|
-
virtual bool peek() {
|
|
179
|
-
return (rBase_ < rBound_) || transport_->peek();
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
void open() {
|
|
183
|
-
transport_->open();
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
bool isOpen() {
|
|
187
|
-
return transport_->isOpen();
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
void close() {
|
|
191
|
-
flush();
|
|
192
|
-
transport_->close();
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
boost::shared_ptr<TTransport> getUnderlyingTransport() {
|
|
196
|
-
return transport_;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
protected:
|
|
200
|
-
boost::shared_ptr<TTransport> transport_;
|
|
201
|
-
|
|
202
|
-
uint32_t rBufSize_;
|
|
203
|
-
uint32_t wBufSize_;
|
|
204
|
-
boost::scoped_array<uint8_t> rBuf_;
|
|
205
|
-
boost::scoped_array<uint8_t> wBuf_;
|
|
206
|
-
|
|
207
|
-
TUnderlyingTransport(boost::shared_ptr<TTransport> transport, uint32_t sz)
|
|
208
|
-
: transport_(transport)
|
|
209
|
-
, rBufSize_(sz)
|
|
210
|
-
, wBufSize_(sz)
|
|
211
|
-
, rBuf_(new uint8_t[rBufSize_])
|
|
212
|
-
, wBuf_(new uint8_t[wBufSize_]) {}
|
|
213
|
-
|
|
214
|
-
TUnderlyingTransport(boost::shared_ptr<TTransport> transport)
|
|
215
|
-
: transport_(transport)
|
|
216
|
-
, rBufSize_(DEFAULT_BUFFER_SIZE)
|
|
217
|
-
, wBufSize_(DEFAULT_BUFFER_SIZE)
|
|
218
|
-
, rBuf_(new uint8_t[rBufSize_])
|
|
219
|
-
, wBuf_(new uint8_t[wBufSize_]) {}
|
|
220
|
-
|
|
221
|
-
TUnderlyingTransport(boost::shared_ptr<TTransport> transport, uint32_t rsz, uint32_t wsz)
|
|
222
|
-
: transport_(transport)
|
|
223
|
-
, rBufSize_(rsz)
|
|
224
|
-
, wBufSize_(wsz)
|
|
225
|
-
, rBuf_(new uint8_t[rBufSize_])
|
|
226
|
-
, wBuf_(new uint8_t[wBufSize_]) {}
|
|
227
|
-
};
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Buffered transport. For reads it will read more data than is requested
|
|
231
|
-
* and will serve future data out of a local buffer. For writes, data is
|
|
232
|
-
* stored to an in memory buffer before being written out.
|
|
233
|
-
*
|
|
234
|
-
*/
|
|
235
|
-
class TBufferedTransport : public TUnderlyingTransport {
|
|
236
|
-
public:
|
|
237
|
-
|
|
238
|
-
/// Use default buffer sizes.
|
|
239
|
-
TBufferedTransport(boost::shared_ptr<TTransport> transport)
|
|
240
|
-
: TUnderlyingTransport(transport)
|
|
241
|
-
{
|
|
242
|
-
initPointers();
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/// Use specified buffer sizes.
|
|
246
|
-
TBufferedTransport(boost::shared_ptr<TTransport> transport, uint32_t sz)
|
|
247
|
-
: TUnderlyingTransport(transport, sz)
|
|
248
|
-
{
|
|
249
|
-
initPointers();
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
/// Use specified read and write buffer sizes.
|
|
253
|
-
TBufferedTransport(boost::shared_ptr<TTransport> transport, uint32_t rsz, uint32_t wsz)
|
|
254
|
-
: TUnderlyingTransport(transport, rsz, wsz)
|
|
255
|
-
{
|
|
256
|
-
initPointers();
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
virtual bool peek() {
|
|
260
|
-
/* shigin: see THRIFT-96 discussion */
|
|
261
|
-
if (rBase_ == rBound_) {
|
|
262
|
-
setReadBuffer(rBuf_.get(), transport_->read(rBuf_.get(), rBufSize_));
|
|
263
|
-
}
|
|
264
|
-
return (rBound_ > rBase_);
|
|
265
|
-
}
|
|
266
|
-
virtual uint32_t readSlow(uint8_t* buf, uint32_t len);
|
|
267
|
-
|
|
268
|
-
virtual void writeSlow(const uint8_t* buf, uint32_t len);
|
|
269
|
-
|
|
270
|
-
void flush();
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* The following behavior is currently implemented by TBufferedTransport,
|
|
275
|
-
* but that may change in a future version:
|
|
276
|
-
* 1/ If len is at most rBufSize_, borrow will never return NULL.
|
|
277
|
-
* Depending on the underlying transport, it could throw an exception
|
|
278
|
-
* or hang forever.
|
|
279
|
-
* 2/ Some borrow requests may copy bytes internally. However,
|
|
280
|
-
* if len is at most rBufSize_/2, none of the copied bytes
|
|
281
|
-
* will ever have to be copied again. For optimial performance,
|
|
282
|
-
* stay under this limit.
|
|
283
|
-
*/
|
|
284
|
-
virtual const uint8_t* borrowSlow(uint8_t* buf, uint32_t* len);
|
|
285
|
-
|
|
286
|
-
protected:
|
|
287
|
-
void initPointers() {
|
|
288
|
-
setReadBuffer(rBuf_.get(), 0);
|
|
289
|
-
setWriteBuffer(wBuf_.get(), wBufSize_);
|
|
290
|
-
// Write size never changes.
|
|
291
|
-
}
|
|
292
|
-
};
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* Wraps a transport into a buffered one.
|
|
297
|
-
*
|
|
298
|
-
*/
|
|
299
|
-
class TBufferedTransportFactory : public TTransportFactory {
|
|
300
|
-
public:
|
|
301
|
-
TBufferedTransportFactory() {}
|
|
302
|
-
|
|
303
|
-
virtual ~TBufferedTransportFactory() {}
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Wraps the transport into a buffered one.
|
|
307
|
-
*/
|
|
308
|
-
virtual boost::shared_ptr<TTransport> getTransport(boost::shared_ptr<TTransport> trans) {
|
|
309
|
-
return boost::shared_ptr<TTransport>(new TBufferedTransport(trans));
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
};
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* Framed transport. All writes go into an in-memory buffer until flush is
|
|
317
|
-
* called, at which point the transport writes the length of the entire
|
|
318
|
-
* binary chunk followed by the data payload. This allows the receiver on the
|
|
319
|
-
* other end to always do fixed-length reads.
|
|
320
|
-
*
|
|
321
|
-
*/
|
|
322
|
-
class TFramedTransport : public TUnderlyingTransport {
|
|
323
|
-
public:
|
|
324
|
-
|
|
325
|
-
/// Use default buffer sizes.
|
|
326
|
-
TFramedTransport(boost::shared_ptr<TTransport> transport)
|
|
327
|
-
: TUnderlyingTransport(transport)
|
|
328
|
-
{
|
|
329
|
-
initPointers();
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
TFramedTransport(boost::shared_ptr<TTransport> transport, uint32_t sz)
|
|
333
|
-
: TUnderlyingTransport(transport, sz)
|
|
334
|
-
{
|
|
335
|
-
initPointers();
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
virtual uint32_t readSlow(uint8_t* buf, uint32_t len);
|
|
339
|
-
|
|
340
|
-
virtual void writeSlow(const uint8_t* buf, uint32_t len);
|
|
341
|
-
|
|
342
|
-
virtual void flush();
|
|
343
|
-
|
|
344
|
-
const uint8_t* borrowSlow(uint8_t* buf, uint32_t* len);
|
|
345
|
-
|
|
346
|
-
protected:
|
|
347
|
-
/**
|
|
348
|
-
* Reads a frame of input from the underlying stream.
|
|
349
|
-
*/
|
|
350
|
-
void readFrame();
|
|
351
|
-
|
|
352
|
-
void initPointers() {
|
|
353
|
-
setReadBuffer(NULL, 0);
|
|
354
|
-
setWriteBuffer(wBuf_.get(), wBufSize_);
|
|
355
|
-
|
|
356
|
-
// Pad the buffer so we can insert the size later.
|
|
357
|
-
int32_t pad = 0;
|
|
358
|
-
this->write((uint8_t*)&pad, sizeof(pad));
|
|
359
|
-
}
|
|
360
|
-
};
|
|
361
|
-
|
|
362
|
-
/**
|
|
363
|
-
* Wraps a transport into a framed one.
|
|
364
|
-
*
|
|
365
|
-
*/
|
|
366
|
-
class TFramedTransportFactory : public TTransportFactory {
|
|
367
|
-
public:
|
|
368
|
-
TFramedTransportFactory() {}
|
|
369
|
-
|
|
370
|
-
virtual ~TFramedTransportFactory() {}
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* Wraps the transport into a framed one.
|
|
374
|
-
*/
|
|
375
|
-
virtual boost::shared_ptr<TTransport> getTransport(boost::shared_ptr<TTransport> trans) {
|
|
376
|
-
return boost::shared_ptr<TTransport>(new TFramedTransport(trans));
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
};
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* A memory buffer is a tranpsort that simply reads from and writes to an
|
|
384
|
-
* in memory buffer. Anytime you call write on it, the data is simply placed
|
|
385
|
-
* into a buffer, and anytime you call read, data is read from that buffer.
|
|
386
|
-
*
|
|
387
|
-
* The buffers are allocated using C constructs malloc,realloc, and the size
|
|
388
|
-
* doubles as necessary. We've considered using scoped
|
|
389
|
-
*
|
|
390
|
-
*/
|
|
391
|
-
class TMemoryBuffer : public TBufferBase {
|
|
392
|
-
private:
|
|
393
|
-
|
|
394
|
-
// Common initialization done by all constructors.
|
|
395
|
-
void initCommon(uint8_t* buf, uint32_t size, bool owner, uint32_t wPos) {
|
|
396
|
-
if (buf == NULL && size != 0) {
|
|
397
|
-
assert(owner);
|
|
398
|
-
buf = (uint8_t*)std::malloc(size);
|
|
399
|
-
if (buf == NULL) {
|
|
400
|
-
throw TTransportException("Out of memory");
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
buffer_ = buf;
|
|
405
|
-
bufferSize_ = size;
|
|
406
|
-
|
|
407
|
-
rBase_ = buffer_;
|
|
408
|
-
rBound_ = buffer_ + wPos;
|
|
409
|
-
// TODO(dreiss): Investigate NULL-ing this if !owner.
|
|
410
|
-
wBase_ = buffer_ + wPos;
|
|
411
|
-
wBound_ = buffer_ + bufferSize_;
|
|
412
|
-
|
|
413
|
-
owner_ = owner;
|
|
414
|
-
|
|
415
|
-
// rBound_ is really an artifact. In principle, it should always be
|
|
416
|
-
// equal to wBase_. We update it in a few places (computeRead, etc.).
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
public:
|
|
420
|
-
static const uint32_t defaultSize = 1024;
|
|
421
|
-
|
|
422
|
-
/**
|
|
423
|
-
* This enum specifies how a TMemoryBuffer should treat
|
|
424
|
-
* memory passed to it via constructors or resetBuffer.
|
|
425
|
-
*
|
|
426
|
-
* OBSERVE:
|
|
427
|
-
* TMemoryBuffer will simply store a pointer to the memory.
|
|
428
|
-
* It is the callers responsibility to ensure that the pointer
|
|
429
|
-
* remains valid for the lifetime of the TMemoryBuffer,
|
|
430
|
-
* and that it is properly cleaned up.
|
|
431
|
-
* Note that no data can be written to observed buffers.
|
|
432
|
-
*
|
|
433
|
-
* COPY:
|
|
434
|
-
* TMemoryBuffer will make an internal copy of the buffer.
|
|
435
|
-
* The caller has no responsibilities.
|
|
436
|
-
*
|
|
437
|
-
* TAKE_OWNERSHIP:
|
|
438
|
-
* TMemoryBuffer will become the "owner" of the buffer,
|
|
439
|
-
* and will be responsible for freeing it.
|
|
440
|
-
* The membory must have been allocated with malloc.
|
|
441
|
-
*/
|
|
442
|
-
enum MemoryPolicy
|
|
443
|
-
{ OBSERVE = 1
|
|
444
|
-
, COPY = 2
|
|
445
|
-
, TAKE_OWNERSHIP = 3
|
|
446
|
-
};
|
|
447
|
-
|
|
448
|
-
/**
|
|
449
|
-
* Construct a TMemoryBuffer with a default-sized buffer,
|
|
450
|
-
* owned by the TMemoryBuffer object.
|
|
451
|
-
*/
|
|
452
|
-
TMemoryBuffer() {
|
|
453
|
-
initCommon(NULL, defaultSize, true, 0);
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
/**
|
|
457
|
-
* Construct a TMemoryBuffer with a buffer of a specified size,
|
|
458
|
-
* owned by the TMemoryBuffer object.
|
|
459
|
-
*
|
|
460
|
-
* @param sz The initial size of the buffer.
|
|
461
|
-
*/
|
|
462
|
-
TMemoryBuffer(uint32_t sz) {
|
|
463
|
-
initCommon(NULL, sz, true, 0);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
/**
|
|
467
|
-
* Construct a TMemoryBuffer with buf as its initial contents.
|
|
468
|
-
*
|
|
469
|
-
* @param buf The initial contents of the buffer.
|
|
470
|
-
* Note that, while buf is a non-const pointer,
|
|
471
|
-
* TMemoryBuffer will not write to it if policy == OBSERVE,
|
|
472
|
-
* so it is safe to const_cast<uint8_t*>(whatever).
|
|
473
|
-
* @param sz The size of @c buf.
|
|
474
|
-
* @param policy See @link MemoryPolicy @endlink .
|
|
475
|
-
*/
|
|
476
|
-
TMemoryBuffer(uint8_t* buf, uint32_t sz, MemoryPolicy policy = OBSERVE) {
|
|
477
|
-
if (buf == NULL && sz != 0) {
|
|
478
|
-
throw TTransportException(TTransportException::BAD_ARGS,
|
|
479
|
-
"TMemoryBuffer given null buffer with non-zero size.");
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
switch (policy) {
|
|
483
|
-
case OBSERVE:
|
|
484
|
-
case TAKE_OWNERSHIP:
|
|
485
|
-
initCommon(buf, sz, policy == TAKE_OWNERSHIP, sz);
|
|
486
|
-
break;
|
|
487
|
-
case COPY:
|
|
488
|
-
initCommon(NULL, sz, true, 0);
|
|
489
|
-
this->write(buf, sz);
|
|
490
|
-
break;
|
|
491
|
-
default:
|
|
492
|
-
throw TTransportException(TTransportException::BAD_ARGS,
|
|
493
|
-
"Invalid MemoryPolicy for TMemoryBuffer");
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
~TMemoryBuffer() {
|
|
498
|
-
if (owner_) {
|
|
499
|
-
std::free(buffer_);
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
bool isOpen() {
|
|
504
|
-
return true;
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
bool peek() {
|
|
508
|
-
return (rBase_ < wBase_);
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
void open() {}
|
|
512
|
-
|
|
513
|
-
void close() {}
|
|
514
|
-
|
|
515
|
-
// TODO(dreiss): Make bufPtr const.
|
|
516
|
-
void getBuffer(uint8_t** bufPtr, uint32_t* sz) {
|
|
517
|
-
*bufPtr = rBase_;
|
|
518
|
-
*sz = wBase_ - rBase_;
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
std::string getBufferAsString() {
|
|
522
|
-
if (buffer_ == NULL) {
|
|
523
|
-
return "";
|
|
524
|
-
}
|
|
525
|
-
uint8_t* buf;
|
|
526
|
-
uint32_t sz;
|
|
527
|
-
getBuffer(&buf, &sz);
|
|
528
|
-
return std::string((char*)buf, (std::string::size_type)sz);
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
void appendBufferToString(std::string& str) {
|
|
532
|
-
if (buffer_ == NULL) {
|
|
533
|
-
return;
|
|
534
|
-
}
|
|
535
|
-
uint8_t* buf;
|
|
536
|
-
uint32_t sz;
|
|
537
|
-
getBuffer(&buf, &sz);
|
|
538
|
-
str.append((char*)buf, sz);
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
void resetBuffer(bool reset_capacity = false) {
|
|
542
|
-
if (reset_capacity)
|
|
543
|
-
{
|
|
544
|
-
assert(owner_);
|
|
545
|
-
|
|
546
|
-
void* new_buffer = std::realloc(buffer_, defaultSize);
|
|
547
|
-
|
|
548
|
-
if (new_buffer == NULL) {
|
|
549
|
-
throw TTransportException("Out of memory.");
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
buffer_ = (uint8_t*) new_buffer;
|
|
553
|
-
bufferSize_ = defaultSize;
|
|
554
|
-
|
|
555
|
-
wBound_ = buffer_ + bufferSize_;
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
rBase_ = buffer_;
|
|
559
|
-
rBound_ = buffer_;
|
|
560
|
-
wBase_ = buffer_;
|
|
561
|
-
// It isn't safe to write into a buffer we don't own.
|
|
562
|
-
if (!owner_) {
|
|
563
|
-
wBound_ = wBase_;
|
|
564
|
-
bufferSize_ = 0;
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
/// See constructor documentation.
|
|
569
|
-
void resetBuffer(uint8_t* buf, uint32_t sz, MemoryPolicy policy = OBSERVE) {
|
|
570
|
-
// Use a variant of the copy-and-swap trick for assignment operators.
|
|
571
|
-
// This is sub-optimal in terms of performance for two reasons:
|
|
572
|
-
// 1/ The constructing and swapping of the (small) values
|
|
573
|
-
// in the temporary object takes some time, and is not necessary.
|
|
574
|
-
// 2/ If policy == COPY, we allocate the new buffer before
|
|
575
|
-
// freeing the old one, precluding the possibility of
|
|
576
|
-
// reusing that memory.
|
|
577
|
-
// I doubt that either of these problems could be optimized away,
|
|
578
|
-
// but the second is probably no a common case, and the first is minor.
|
|
579
|
-
// I don't expect resetBuffer to be a common operation, so I'm willing to
|
|
580
|
-
// bite the performance bullet to make the method this simple.
|
|
581
|
-
|
|
582
|
-
// Construct the new buffer.
|
|
583
|
-
TMemoryBuffer new_buffer(buf, sz, policy);
|
|
584
|
-
// Move it into ourself.
|
|
585
|
-
this->swap(new_buffer);
|
|
586
|
-
// Our old self gets destroyed.
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
std::string readAsString(uint32_t len) {
|
|
590
|
-
std::string str;
|
|
591
|
-
(void)readAppendToString(str, len);
|
|
592
|
-
return str;
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
uint32_t readAppendToString(std::string& str, uint32_t len);
|
|
596
|
-
|
|
597
|
-
void readEnd() {
|
|
598
|
-
if (rBase_ == wBase_) {
|
|
599
|
-
resetBuffer();
|
|
600
|
-
}
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
uint32_t available_read() const {
|
|
604
|
-
// Remember, wBase_ is the real rBound_.
|
|
605
|
-
return wBase_ - rBase_;
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
uint32_t available_write() const {
|
|
609
|
-
return wBound_ - wBase_;
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
// Returns a pointer to where the client can write data to append to
|
|
613
|
-
// the TMemoryBuffer, and ensures the buffer is big enough to accomodate a
|
|
614
|
-
// write of the provided length. The returned pointer is very convenient for
|
|
615
|
-
// passing to read(), recv(), or similar. You must call wroteBytes() as soon
|
|
616
|
-
// as data is written or the buffer will not be aware that data has changed.
|
|
617
|
-
uint8_t* getWritePtr(uint32_t len) {
|
|
618
|
-
ensureCanWrite(len);
|
|
619
|
-
return wBase_;
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
// Informs the buffer that the client has written 'len' bytes into storage
|
|
623
|
-
// that had been provided by getWritePtr().
|
|
624
|
-
void wroteBytes(uint32_t len);
|
|
625
|
-
|
|
626
|
-
protected:
|
|
627
|
-
void swap(TMemoryBuffer& that) {
|
|
628
|
-
using std::swap;
|
|
629
|
-
swap(buffer_, that.buffer_);
|
|
630
|
-
swap(bufferSize_, that.bufferSize_);
|
|
631
|
-
|
|
632
|
-
swap(rBase_, that.rBase_);
|
|
633
|
-
swap(rBound_, that.rBound_);
|
|
634
|
-
swap(wBase_, that.wBase_);
|
|
635
|
-
swap(wBound_, that.wBound_);
|
|
636
|
-
|
|
637
|
-
swap(owner_, that.owner_);
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
// Make sure there's at least 'len' bytes available for writing.
|
|
641
|
-
void ensureCanWrite(uint32_t len);
|
|
642
|
-
|
|
643
|
-
// Compute the position and available data for reading.
|
|
644
|
-
void computeRead(uint32_t len, uint8_t** out_start, uint32_t* out_give);
|
|
645
|
-
|
|
646
|
-
uint32_t readSlow(uint8_t* buf, uint32_t len);
|
|
647
|
-
|
|
648
|
-
void writeSlow(const uint8_t* buf, uint32_t len);
|
|
649
|
-
|
|
650
|
-
const uint8_t* borrowSlow(uint8_t* buf, uint32_t* len);
|
|
651
|
-
|
|
652
|
-
// Data buffer
|
|
653
|
-
uint8_t* buffer_;
|
|
654
|
-
|
|
655
|
-
// Allocated buffer size
|
|
656
|
-
uint32_t bufferSize_;
|
|
657
|
-
|
|
658
|
-
// Is this object the owner of the buffer?
|
|
659
|
-
bool owner_;
|
|
660
|
-
|
|
661
|
-
// Don't forget to update constrctors, initCommon, and swap if
|
|
662
|
-
// you add new members.
|
|
663
|
-
};
|
|
664
|
-
|
|
665
|
-
}}} // apache::thrift::transport
|
|
666
|
-
|
|
667
|
-
#endif // #ifndef _THRIFT_TRANSPORT_TBUFFERTRANSPORTS_H_
|