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.
Files changed (424) hide show
  1. data/VERSION.yml +1 -1
  2. data/bin/cloud-compile +6 -1
  3. data/config/jeweler.rb +1 -3
  4. data/lib/cloud_providers/cloud_provider_instance.rb +11 -1
  5. data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +51 -0
  6. data/lib/dependency_resolvers/chef.rb +12 -3
  7. data/lib/mixins/callbacks.rb +6 -2
  8. data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
  9. data/test/fixtures/chef/recipes/sudo/attributes/sudoers.rb +30 -0
  10. data/test/fixtures/chef/recipes/sudo/recipes/default.rb +33 -0
  11. data/test/fixtures/chef/recipes/sudo/templates/default/sudoers.erb +22 -0
  12. data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +21 -0
  13. data/test/lib/dependency_resolvers/chef_test.rb +8 -1
  14. data/vendor/gems/thrift/CHANGELOG +1 -0
  15. data/vendor/gems/thrift/Makefile.am +25 -6
  16. data/vendor/gems/thrift/Manifest +81 -0
  17. data/vendor/gems/thrift/README +17 -111
  18. data/vendor/gems/thrift/Rakefile +104 -0
  19. data/vendor/gems/thrift/{lib/hs/Setup.lhs → benchmark/Benchmark.thrift} +5 -4
  20. data/vendor/gems/thrift/benchmark/benchmark.rb +271 -0
  21. data/vendor/gems/thrift/benchmark/client.rb +74 -0
  22. data/vendor/gems/thrift/benchmark/server.rb +82 -0
  23. data/vendor/gems/thrift/benchmark/thin_server.rb +44 -0
  24. data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +474 -0
  25. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.m → ext/binary_protocol_accelerated.h} +1 -4
  26. data/vendor/gems/thrift/ext/compact_protocol.c +665 -0
  27. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.h → ext/compact_protocol.h} +1 -6
  28. data/vendor/gems/thrift/ext/constants.h +95 -0
  29. data/vendor/gems/thrift/{contrib/fb303/Makefile.am → ext/extconf.rb} +8 -13
  30. data/vendor/gems/thrift/{compiler/cpp/src/platform.h → ext/macros.h} +18 -13
  31. data/vendor/gems/thrift/ext/memory_buffer.c +76 -0
  32. data/vendor/gems/thrift/{lib/csharp/src/Protocol/TMessageType.cs → ext/memory_buffer.h} +2 -13
  33. data/vendor/gems/thrift/ext/protocol.c +185 -0
  34. data/vendor/gems/thrift/{lib/csharp/src/TProcessor.cs → ext/protocol.h} +2 -11
  35. data/vendor/gems/thrift/ext/struct.c +606 -0
  36. data/vendor/gems/thrift/ext/struct.h +67 -0
  37. data/vendor/gems/thrift/ext/thrift_native.c +194 -0
  38. data/vendor/gems/thrift/lib/thrift/client.rb +62 -0
  39. data/vendor/gems/thrift/{contrib/fb303/py/fb303_scripts/__init__.py → lib/thrift/core_ext/fixnum.rb} +13 -4
  40. data/vendor/gems/thrift/{contrib/fb303/global_footer.mk → lib/thrift/core_ext.rb} +4 -2
  41. data/vendor/gems/thrift/lib/thrift/exceptions.rb +82 -0
  42. data/vendor/gems/thrift/lib/thrift/processor.rb +57 -0
  43. data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +290 -0
  44. data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +225 -0
  45. data/vendor/gems/thrift/{cleanup.sh → lib/thrift/protocol/binary_protocol_accelerated.rb} +19 -42
  46. data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +422 -0
  47. data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +33 -0
  48. data/vendor/gems/thrift/{bootstrap.sh → lib/thrift/serializer/serializer.rb} +17 -18
  49. data/vendor/gems/thrift/lib/thrift/server/base_server.rb +31 -0
  50. data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +58 -0
  51. data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +296 -0
  52. data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +43 -0
  53. data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +75 -0
  54. data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +47 -0
  55. data/vendor/gems/thrift/lib/thrift/struct.rb +298 -0
  56. data/vendor/gems/thrift/{contrib/fb303/bootstrap.sh → lib/thrift/thrift_native.rb} +5 -7
  57. data/vendor/gems/thrift/lib/{erl/Makefile → thrift/transport/base_server_transport.rb} +20 -20
  58. data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +70 -0
  59. data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +77 -0
  60. data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +90 -0
  61. data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +45 -0
  62. data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +39 -0
  63. data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +96 -0
  64. data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +63 -0
  65. data/vendor/gems/thrift/lib/thrift/transport/socket.rb +136 -0
  66. data/vendor/gems/thrift/lib/{java/Makefile.am → thrift/transport/unix_server_socket.rb} +39 -17
  67. data/vendor/gems/thrift/{contrib/fb303/global_header.mk → lib/thrift/transport/unix_socket.rb} +23 -21
  68. data/vendor/gems/thrift/lib/thrift/types.rb +101 -0
  69. data/vendor/gems/thrift/lib/thrift.rb +59 -0
  70. data/vendor/gems/thrift/script/proto_benchmark.rb +121 -0
  71. data/vendor/gems/thrift/{lib/Makefile.am → script/read_struct.rb} +24 -36
  72. data/vendor/gems/thrift/{contrib/fb303/py/setup.py → script/write_struct.rb} +8 -5
  73. data/vendor/gems/thrift/setup.rb +1585 -0
  74. data/vendor/gems/thrift/spec/ThriftSpec.thrift +84 -0
  75. data/vendor/gems/thrift/spec/base_protocol_spec.rb +160 -0
  76. data/vendor/gems/thrift/spec/base_transport_spec.rb +351 -0
  77. data/vendor/gems/thrift/{contrib/fb303/py/Makefile.am → spec/binary_protocol_accelerated_spec.rb} +22 -25
  78. data/vendor/gems/thrift/spec/binary_protocol_spec.rb +63 -0
  79. data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +375 -0
  80. data/vendor/gems/thrift/spec/client_spec.rb +100 -0
  81. data/vendor/gems/thrift/spec/compact_protocol_spec.rb +117 -0
  82. data/vendor/gems/thrift/spec/exception_spec.rb +142 -0
  83. data/vendor/gems/thrift/spec/http_client_spec.rb +49 -0
  84. data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +117 -0
  85. data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +265 -0
  86. data/vendor/gems/thrift/spec/processor_spec.rb +83 -0
  87. data/vendor/gems/thrift/spec/serializer_spec.rb +69 -0
  88. data/vendor/gems/thrift/spec/server_socket_spec.rb +80 -0
  89. data/vendor/gems/thrift/spec/server_spec.rb +160 -0
  90. data/vendor/gems/thrift/spec/socket_spec.rb +61 -0
  91. data/vendor/gems/thrift/spec/socket_spec_shared.rb +104 -0
  92. data/vendor/gems/thrift/spec/spec_helper.rb +60 -0
  93. data/vendor/gems/thrift/spec/struct_spec.rb +252 -0
  94. data/vendor/gems/thrift/spec/types_spec.rb +116 -0
  95. data/vendor/gems/thrift/spec/unix_socket_spec.rb +108 -0
  96. data/vendor/gems/trollop/FAQ.txt +84 -0
  97. data/vendor/gems/trollop/History.txt +101 -0
  98. data/vendor/gems/trollop/Manifest.txt +7 -0
  99. data/vendor/gems/trollop/README.txt +40 -0
  100. data/vendor/gems/trollop/Rakefile +36 -0
  101. data/vendor/gems/trollop/lib/trollop.rb +739 -0
  102. data/vendor/gems/trollop/release-script.txt +13 -0
  103. data/vendor/gems/trollop/test/test_trollop.rb +1048 -0
  104. data/vendor/gems/trollop/www/index.html +172 -0
  105. metadata +123 -347
  106. data/vendor/gems/thrift/CHANGES +0 -35
  107. data/vendor/gems/thrift/CONTRIBUTORS +0 -77
  108. data/vendor/gems/thrift/DISCLAIMER +0 -6
  109. data/vendor/gems/thrift/LICENSE +0 -202
  110. data/vendor/gems/thrift/NEWS +0 -79
  111. data/vendor/gems/thrift/NOTICE +0 -26
  112. data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +0 -198
  113. data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +0 -107
  114. data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +0 -194
  115. data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +0 -173
  116. data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +0 -127
  117. data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +0 -39
  118. data/vendor/gems/thrift/compiler/cpp/Makefile.am +0 -136
  119. data/vendor/gems/thrift/compiler/cpp/README +0 -39
  120. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +0 -2331
  121. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +0 -3003
  122. data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +0 -1700
  123. data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +0 -932
  124. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +0 -173
  125. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +0 -321
  126. data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +0 -1445
  127. data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +0 -637
  128. data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +0 -3069
  129. data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +0 -1673
  130. data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +0 -77
  131. data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +0 -1812
  132. data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +0 -2281
  133. data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +0 -2310
  134. data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +0 -1114
  135. data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +0 -1071
  136. data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +0 -354
  137. data/vendor/gems/thrift/compiler/cpp/src/globals.h +0 -117
  138. data/vendor/gems/thrift/compiler/cpp/src/main.cc +0 -1207
  139. data/vendor/gems/thrift/compiler/cpp/src/main.h +0 -103
  140. data/vendor/gems/thrift/compiler/cpp/src/md5.c +0 -381
  141. data/vendor/gems/thrift/compiler/cpp/src/md5.h +0 -91
  142. data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +0 -137
  143. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +0 -59
  144. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +0 -121
  145. data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +0 -56
  146. data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +0 -51
  147. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +0 -59
  148. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +0 -64
  149. data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +0 -150
  150. data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +0 -93
  151. data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +0 -56
  152. data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +0 -64
  153. data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +0 -223
  154. data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +0 -86
  155. data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +0 -68
  156. data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +0 -55
  157. data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +0 -127
  158. data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +0 -176
  159. data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +0 -70
  160. data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +0 -303
  161. data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +0 -1140
  162. data/vendor/gems/thrift/configure.ac +0 -255
  163. data/vendor/gems/thrift/contrib/fb303/LICENSE +0 -16
  164. data/vendor/gems/thrift/contrib/fb303/README +0 -37
  165. data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +0 -258
  166. data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +0 -198
  167. data/vendor/gems/thrift/contrib/fb303/configure.ac +0 -115
  168. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +0 -124
  169. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +0 -103
  170. data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +0 -84
  171. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +0 -481
  172. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +0 -215
  173. data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +0 -112
  174. data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +0 -103
  175. data/vendor/gems/thrift/contrib/fb303/java/build.xml +0 -84
  176. data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +0 -89
  177. data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +0 -82
  178. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +0 -195
  179. data/vendor/gems/thrift/contrib/thrift.el +0 -126
  180. data/vendor/gems/thrift/contrib/thrift.spec +0 -206
  181. data/vendor/gems/thrift/contrib/thrift.vim +0 -91
  182. data/vendor/gems/thrift/contrib/thrift_dump.cpp +0 -91
  183. data/vendor/gems/thrift/doc/lgpl-2.1.txt +0 -504
  184. data/vendor/gems/thrift/doc/otp-base-license.txt +0 -20
  185. data/vendor/gems/thrift/doc/thrift.bnf +0 -96
  186. data/vendor/gems/thrift/doc/thrift.tex +0 -1057
  187. data/vendor/gems/thrift/lib/cocoa/README +0 -21
  188. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +0 -44
  189. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +0 -130
  190. data/vendor/gems/thrift/lib/cocoa/src/TException.h +0 -34
  191. data/vendor/gems/thrift/lib/cocoa/src/TException.m +0 -64
  192. data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +0 -29
  193. data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +0 -27
  194. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +0 -27
  195. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +0 -51
  196. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +0 -51
  197. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +0 -477
  198. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +0 -148
  199. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +0 -29
  200. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +0 -29
  201. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +0 -104
  202. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +0 -50
  203. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +0 -153
  204. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +0 -42
  205. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +0 -159
  206. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +0 -35
  207. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +0 -91
  208. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +0 -38
  209. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +0 -89
  210. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +0 -32
  211. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +0 -58
  212. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +0 -36
  213. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +0 -30
  214. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +0 -43
  215. data/vendor/gems/thrift/lib/cpp/Makefile.am +0 -158
  216. data/vendor/gems/thrift/lib/cpp/README +0 -67
  217. data/vendor/gems/thrift/lib/cpp/src/TLogging.h +0 -163
  218. data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +0 -53
  219. data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +0 -96
  220. data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +0 -148
  221. data/vendor/gems/thrift/lib/cpp/src/Thrift.h +0 -191
  222. data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +0 -60
  223. data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +0 -77
  224. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +0 -137
  225. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +0 -84
  226. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +0 -160
  227. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +0 -114
  228. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +0 -314
  229. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +0 -130
  230. data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +0 -125
  231. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +0 -493
  232. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +0 -169
  233. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +0 -284
  234. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +0 -122
  235. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +0 -55
  236. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +0 -100
  237. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +0 -155
  238. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +0 -354
  239. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +0 -379
  240. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +0 -155
  241. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +0 -122
  242. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +0 -77
  243. data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +0 -264
  244. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +0 -79
  245. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +0 -42
  246. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +0 -394
  247. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +0 -254
  248. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +0 -736
  249. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +0 -279
  250. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +0 -346
  251. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +0 -225
  252. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +0 -762
  253. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +0 -253
  254. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +0 -998
  255. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +0 -340
  256. data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +0 -304
  257. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +0 -438
  258. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +0 -104
  259. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +0 -187
  260. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +0 -750
  261. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +0 -435
  262. data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +0 -38
  263. data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +0 -213
  264. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +0 -118
  265. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +0 -70
  266. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +0 -217
  267. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +0 -79
  268. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +0 -243
  269. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +0 -74
  270. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +0 -370
  271. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +0 -667
  272. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +0 -77
  273. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +0 -73
  274. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +0 -953
  275. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +0 -442
  276. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +0 -348
  277. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +0 -111
  278. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +0 -368
  279. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +0 -76
  280. data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +0 -92
  281. data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +0 -96
  282. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +0 -54
  283. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +0 -41
  284. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +0 -591
  285. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +0 -242
  286. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +0 -235
  287. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +0 -191
  288. data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +0 -224
  289. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +0 -31
  290. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +0 -117
  291. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +0 -178
  292. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +0 -287
  293. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +0 -299
  294. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +0 -219
  295. data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +0 -30
  296. data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +0 -30
  297. data/vendor/gems/thrift/lib/cpp/thrift.pc.in +0 -29
  298. data/vendor/gems/thrift/lib/csharp/Makefile.am +0 -70
  299. data/vendor/gems/thrift/lib/csharp/README +0 -26
  300. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +0 -55
  301. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +0 -242
  302. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +0 -62
  303. data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +0 -142
  304. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +0 -34
  305. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +0 -392
  306. data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +0 -58
  307. data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +0 -50
  308. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +0 -58
  309. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +0 -58
  310. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +0 -87
  311. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +0 -61
  312. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +0 -29
  313. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +0 -94
  314. data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +0 -50
  315. data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +0 -42
  316. data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +0 -40
  317. data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +0 -135
  318. data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +0 -148
  319. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +0 -186
  320. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +0 -234
  321. data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +0 -131
  322. data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +0 -73
  323. data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +0 -35
  324. data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +0 -100
  325. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +0 -157
  326. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +0 -39
  327. data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +0 -144
  328. data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +0 -103
  329. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +0 -66
  330. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +0 -64
  331. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +0 -38
  332. data/vendor/gems/thrift/lib/erl/README +0 -56
  333. data/vendor/gems/thrift/lib/erl/build/beamver +0 -59
  334. data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +0 -15
  335. data/vendor/gems/thrift/lib/erl/build/colors.mk +0 -24
  336. data/vendor/gems/thrift/lib/erl/build/docs.mk +0 -12
  337. data/vendor/gems/thrift/lib/erl/build/mime.types +0 -98
  338. data/vendor/gems/thrift/lib/erl/build/otp.mk +0 -146
  339. data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +0 -85
  340. data/vendor/gems/thrift/lib/erl/build/raw_test.mk +0 -29
  341. data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +0 -54
  342. data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +0 -31
  343. data/vendor/gems/thrift/lib/erl/src/Makefile +0 -116
  344. data/vendor/gems/thrift/lib/erl/src/test_handler.erl +0 -26
  345. data/vendor/gems/thrift/lib/erl/src/test_service.erl +0 -29
  346. data/vendor/gems/thrift/lib/erl/src/thrift.app.src +0 -44
  347. data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +0 -1
  348. data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +0 -64
  349. data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +0 -325
  350. data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +0 -180
  351. data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +0 -384
  352. data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +0 -118
  353. data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +0 -87
  354. data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +0 -208
  355. data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +0 -199
  356. data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +0 -164
  357. data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +0 -188
  358. data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +0 -356
  359. data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +0 -183
  360. data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +0 -25
  361. data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +0 -249
  362. data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +0 -119
  363. data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +0 -57
  364. data/vendor/gems/thrift/lib/erl/vsn.mk +0 -1
  365. data/vendor/gems/thrift/lib/hs/README +0 -82
  366. data/vendor/gems/thrift/lib/hs/TODO +0 -2
  367. data/vendor/gems/thrift/lib/hs/Thrift.cabal +0 -20
  368. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +0 -147
  369. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +0 -191
  370. data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +0 -65
  371. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +0 -58
  372. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +0 -60
  373. data/vendor/gems/thrift/lib/hs/src/Thrift.hs +0 -111
  374. data/vendor/gems/thrift/lib/java/README +0 -43
  375. data/vendor/gems/thrift/lib/java/build.xml +0 -195
  376. data/vendor/gems/thrift/lib/java/ivy.xml +0 -8
  377. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +0 -171
  378. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +0 -123
  379. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +0 -66
  380. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +0 -102
  381. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +0 -46
  382. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +0 -94
  383. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +0 -45
  384. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +0 -30
  385. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +0 -32
  386. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +0 -39
  387. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +0 -110
  388. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +0 -69
  389. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +0 -42
  390. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +0 -29
  391. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +0 -31
  392. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +0 -29
  393. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +0 -31
  394. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +0 -128
  395. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +0 -331
  396. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +0 -741
  397. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +0 -48
  398. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +0 -927
  399. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +0 -38
  400. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +0 -40
  401. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +0 -48
  402. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +0 -31
  403. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +0 -146
  404. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +0 -81
  405. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +0 -30
  406. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +0 -158
  407. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +0 -42
  408. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +0 -384
  409. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +0 -36
  410. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +0 -40
  411. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +0 -304
  412. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +0 -772
  413. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +0 -126
  414. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +0 -145
  415. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +0 -271
  416. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +0 -126
  417. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +0 -157
  418. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +0 -159
  419. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +0 -98
  420. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +0 -160
  421. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +0 -31
  422. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +0 -213
  423. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +0 -31
  424. 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_