auser-poolparty 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. data/VERSION.yml +1 -1
  2. data/examples/monitored_cloud.rb +1 -1
  3. data/examples/thrift/thrift_example.rb +1 -1
  4. data/lib/proto/command_interface_handler.rb +1 -1
  5. data/vendor/gems/thrift/CHANGES +35 -0
  6. data/vendor/gems/thrift/CONTRIBUTORS +77 -0
  7. data/vendor/gems/thrift/DISCLAIMER +6 -0
  8. data/vendor/gems/thrift/LICENSE +202 -0
  9. data/vendor/gems/thrift/Makefile.am +28 -0
  10. data/vendor/gems/thrift/NEWS +79 -0
  11. data/vendor/gems/thrift/NOTICE +26 -0
  12. data/vendor/gems/thrift/README +137 -0
  13. data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +198 -0
  14. data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +107 -0
  15. data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +194 -0
  16. data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +173 -0
  17. data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +127 -0
  18. data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +39 -0
  19. data/vendor/gems/thrift/bootstrap.sh +35 -0
  20. data/vendor/gems/thrift/cleanup.sh +58 -0
  21. data/vendor/gems/thrift/compiler/cpp/Makefile.am +136 -0
  22. data/vendor/gems/thrift/compiler/cpp/README +39 -0
  23. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +2331 -0
  24. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +3003 -0
  25. data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +1700 -0
  26. data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +932 -0
  27. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +173 -0
  28. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +321 -0
  29. data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +1445 -0
  30. data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +637 -0
  31. data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +3069 -0
  32. data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +1673 -0
  33. data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +77 -0
  34. data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +1812 -0
  35. data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +2281 -0
  36. data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +2310 -0
  37. data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +1114 -0
  38. data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +1071 -0
  39. data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +354 -0
  40. data/vendor/gems/thrift/compiler/cpp/src/globals.h +117 -0
  41. data/vendor/gems/thrift/compiler/cpp/src/main.cc +1207 -0
  42. data/vendor/gems/thrift/compiler/cpp/src/main.h +103 -0
  43. data/vendor/gems/thrift/compiler/cpp/src/md5.c +381 -0
  44. data/vendor/gems/thrift/compiler/cpp/src/md5.h +91 -0
  45. data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +137 -0
  46. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +59 -0
  47. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +121 -0
  48. data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +56 -0
  49. data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +51 -0
  50. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +59 -0
  51. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +64 -0
  52. data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +150 -0
  53. data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +93 -0
  54. data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +56 -0
  55. data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +64 -0
  56. data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +223 -0
  57. data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +86 -0
  58. data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +68 -0
  59. data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +55 -0
  60. data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +127 -0
  61. data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +176 -0
  62. data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +70 -0
  63. data/vendor/gems/thrift/compiler/cpp/src/platform.h +36 -0
  64. data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +303 -0
  65. data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +1140 -0
  66. data/vendor/gems/thrift/configure.ac +255 -0
  67. data/vendor/gems/thrift/contrib/fb303/LICENSE +16 -0
  68. data/vendor/gems/thrift/contrib/fb303/Makefile.am +31 -0
  69. data/vendor/gems/thrift/contrib/fb303/README +37 -0
  70. data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +258 -0
  71. data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +198 -0
  72. data/vendor/gems/thrift/contrib/fb303/bootstrap.sh +26 -0
  73. data/vendor/gems/thrift/contrib/fb303/configure.ac +115 -0
  74. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +124 -0
  75. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +103 -0
  76. data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +84 -0
  77. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +481 -0
  78. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +215 -0
  79. data/vendor/gems/thrift/contrib/fb303/global_footer.mk +21 -0
  80. data/vendor/gems/thrift/contrib/fb303/global_header.mk +38 -0
  81. data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +112 -0
  82. data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +103 -0
  83. data/vendor/gems/thrift/contrib/fb303/java/build.xml +84 -0
  84. data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +89 -0
  85. data/vendor/gems/thrift/contrib/fb303/py/Makefile.am +44 -0
  86. data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +82 -0
  87. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/__init__.py +20 -0
  88. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +195 -0
  89. data/vendor/gems/thrift/contrib/fb303/py/setup.py +27 -0
  90. data/vendor/gems/thrift/contrib/thrift.el +126 -0
  91. data/vendor/gems/thrift/contrib/thrift.spec +206 -0
  92. data/vendor/gems/thrift/contrib/thrift.vim +91 -0
  93. data/vendor/gems/thrift/contrib/thrift_dump.cpp +91 -0
  94. data/vendor/gems/thrift/doc/lgpl-2.1.txt +504 -0
  95. data/vendor/gems/thrift/doc/otp-base-license.txt +20 -0
  96. data/vendor/gems/thrift/doc/thrift.bnf +96 -0
  97. data/vendor/gems/thrift/doc/thrift.tex +1057 -0
  98. data/vendor/gems/thrift/lib/Makefile.am +55 -0
  99. data/vendor/gems/thrift/lib/cocoa/README +21 -0
  100. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +44 -0
  101. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +130 -0
  102. data/vendor/gems/thrift/lib/cocoa/src/TException.h +34 -0
  103. data/vendor/gems/thrift/lib/cocoa/src/TException.m +64 -0
  104. data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +29 -0
  105. data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +27 -0
  106. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +27 -0
  107. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +51 -0
  108. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +51 -0
  109. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +477 -0
  110. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +148 -0
  111. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.h +25 -0
  112. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.m +23 -0
  113. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +29 -0
  114. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +29 -0
  115. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +104 -0
  116. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +50 -0
  117. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +153 -0
  118. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +42 -0
  119. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +159 -0
  120. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +35 -0
  121. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +91 -0
  122. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +38 -0
  123. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +89 -0
  124. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +32 -0
  125. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +58 -0
  126. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +36 -0
  127. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +30 -0
  128. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +43 -0
  129. data/vendor/gems/thrift/lib/cpp/Makefile.am +158 -0
  130. data/vendor/gems/thrift/lib/cpp/README +67 -0
  131. data/vendor/gems/thrift/lib/cpp/src/TLogging.h +163 -0
  132. data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +53 -0
  133. data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +96 -0
  134. data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +148 -0
  135. data/vendor/gems/thrift/lib/cpp/src/Thrift.h +191 -0
  136. data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +60 -0
  137. data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +77 -0
  138. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +137 -0
  139. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +84 -0
  140. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +160 -0
  141. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +114 -0
  142. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +314 -0
  143. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +130 -0
  144. data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +125 -0
  145. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +493 -0
  146. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +169 -0
  147. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +284 -0
  148. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +122 -0
  149. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +55 -0
  150. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +100 -0
  151. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +155 -0
  152. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +354 -0
  153. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +379 -0
  154. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +155 -0
  155. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +122 -0
  156. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +77 -0
  157. data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +264 -0
  158. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +79 -0
  159. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +42 -0
  160. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +394 -0
  161. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +254 -0
  162. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +736 -0
  163. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +279 -0
  164. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +346 -0
  165. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +225 -0
  166. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +762 -0
  167. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +253 -0
  168. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +998 -0
  169. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +340 -0
  170. data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +304 -0
  171. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +438 -0
  172. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +104 -0
  173. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +187 -0
  174. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +750 -0
  175. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +435 -0
  176. data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +38 -0
  177. data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +213 -0
  178. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +118 -0
  179. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +70 -0
  180. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +217 -0
  181. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +79 -0
  182. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +243 -0
  183. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +74 -0
  184. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +370 -0
  185. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +667 -0
  186. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +77 -0
  187. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +73 -0
  188. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +953 -0
  189. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +442 -0
  190. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +348 -0
  191. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +111 -0
  192. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +368 -0
  193. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +76 -0
  194. data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +92 -0
  195. data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +96 -0
  196. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +54 -0
  197. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +41 -0
  198. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +591 -0
  199. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +242 -0
  200. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +235 -0
  201. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +191 -0
  202. data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +224 -0
  203. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +31 -0
  204. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +117 -0
  205. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +178 -0
  206. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +287 -0
  207. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +299 -0
  208. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +219 -0
  209. data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +30 -0
  210. data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +30 -0
  211. data/vendor/gems/thrift/lib/cpp/thrift.pc.in +29 -0
  212. data/vendor/gems/thrift/lib/csharp/Makefile.am +70 -0
  213. data/vendor/gems/thrift/lib/csharp/README +26 -0
  214. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +55 -0
  215. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +242 -0
  216. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +62 -0
  217. data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +142 -0
  218. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +34 -0
  219. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +392 -0
  220. data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +58 -0
  221. data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +50 -0
  222. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +58 -0
  223. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +58 -0
  224. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessageType.cs +31 -0
  225. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +87 -0
  226. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +61 -0
  227. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +29 -0
  228. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +94 -0
  229. data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +50 -0
  230. data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +42 -0
  231. data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +40 -0
  232. data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +135 -0
  233. data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +148 -0
  234. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +186 -0
  235. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +234 -0
  236. data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +131 -0
  237. data/vendor/gems/thrift/lib/csharp/src/TProcessor.cs +29 -0
  238. data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +73 -0
  239. data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +35 -0
  240. data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +100 -0
  241. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +157 -0
  242. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +39 -0
  243. data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +144 -0
  244. data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +103 -0
  245. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +66 -0
  246. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +64 -0
  247. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +38 -0
  248. data/vendor/gems/thrift/lib/erl/Makefile +37 -0
  249. data/vendor/gems/thrift/lib/erl/README +56 -0
  250. data/vendor/gems/thrift/lib/erl/build/beamver +59 -0
  251. data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +15 -0
  252. data/vendor/gems/thrift/lib/erl/build/colors.mk +24 -0
  253. data/vendor/gems/thrift/lib/erl/build/docs.mk +12 -0
  254. data/vendor/gems/thrift/lib/erl/build/mime.types +98 -0
  255. data/vendor/gems/thrift/lib/erl/build/otp.mk +146 -0
  256. data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +85 -0
  257. data/vendor/gems/thrift/lib/erl/build/raw_test.mk +29 -0
  258. data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +54 -0
  259. data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +31 -0
  260. data/vendor/gems/thrift/lib/erl/src/Makefile +116 -0
  261. data/vendor/gems/thrift/lib/erl/src/test_handler.erl +26 -0
  262. data/vendor/gems/thrift/lib/erl/src/test_service.erl +29 -0
  263. data/vendor/gems/thrift/lib/erl/src/thrift.app.src +44 -0
  264. data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +1 -0
  265. data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +64 -0
  266. data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +325 -0
  267. data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +180 -0
  268. data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +384 -0
  269. data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +118 -0
  270. data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +87 -0
  271. data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +208 -0
  272. data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +199 -0
  273. data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +164 -0
  274. data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +188 -0
  275. data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +356 -0
  276. data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +183 -0
  277. data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +25 -0
  278. data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +249 -0
  279. data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +119 -0
  280. data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +57 -0
  281. data/vendor/gems/thrift/lib/erl/vsn.mk +1 -0
  282. data/vendor/gems/thrift/lib/hs/README +82 -0
  283. data/vendor/gems/thrift/lib/hs/Setup.lhs +23 -0
  284. data/vendor/gems/thrift/lib/hs/TODO +2 -0
  285. data/vendor/gems/thrift/lib/hs/Thrift.cabal +20 -0
  286. data/vendor/gems/thrift/lib/hs/src/Thrift.hs +111 -0
  287. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +191 -0
  288. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +147 -0
  289. data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +65 -0
  290. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +60 -0
  291. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +58 -0
  292. data/vendor/gems/thrift/lib/java/Makefile.am +38 -0
  293. data/vendor/gems/thrift/lib/java/README +43 -0
  294. data/vendor/gems/thrift/lib/java/build.xml +195 -0
  295. data/vendor/gems/thrift/lib/java/ivy.xml +8 -0
  296. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +171 -0
  297. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +123 -0
  298. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +66 -0
  299. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +102 -0
  300. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +46 -0
  301. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +94 -0
  302. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +45 -0
  303. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +30 -0
  304. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +32 -0
  305. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +39 -0
  306. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +110 -0
  307. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +69 -0
  308. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +42 -0
  309. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +29 -0
  310. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +31 -0
  311. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +29 -0
  312. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +31 -0
  313. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +128 -0
  314. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +331 -0
  315. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +741 -0
  316. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +48 -0
  317. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +927 -0
  318. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +38 -0
  319. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +40 -0
  320. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +48 -0
  321. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +31 -0
  322. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +146 -0
  323. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +81 -0
  324. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +30 -0
  325. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +158 -0
  326. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +42 -0
  327. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +384 -0
  328. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +36 -0
  329. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +40 -0
  330. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +304 -0
  331. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +772 -0
  332. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +126 -0
  333. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +145 -0
  334. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +271 -0
  335. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +126 -0
  336. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +157 -0
  337. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +159 -0
  338. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +98 -0
  339. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +160 -0
  340. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +31 -0
  341. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +213 -0
  342. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +31 -0
  343. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +145 -0
  344. metadata +348 -37
  345. data/vendor/gems/trollop/FAQ.txt +0 -35
  346. data/vendor/gems/trollop/History.txt +0 -84
  347. data/vendor/gems/trollop/Manifest.txt +0 -7
  348. data/vendor/gems/trollop/README.txt +0 -38
  349. data/vendor/gems/trollop/Rakefile +0 -36
  350. data/vendor/gems/trollop/lib/trollop.rb +0 -695
  351. data/vendor/gems/trollop/release-script.txt +0 -13
  352. data/vendor/gems/trollop/test/test_trollop.rb +0 -957
  353. data/vendor/gems/trollop/www/index.html +0 -167
@@ -0,0 +1,213 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+ #ifndef _THRIFT_SERVER_TSERVER_H_
21
+ #define _THRIFT_SERVER_TSERVER_H_ 1
22
+
23
+ #include <TProcessor.h>
24
+ #include <transport/TServerTransport.h>
25
+ #include <protocol/TBinaryProtocol.h>
26
+ #include <concurrency/Thread.h>
27
+
28
+ #include <boost/shared_ptr.hpp>
29
+
30
+ namespace apache { namespace thrift { namespace server {
31
+
32
+ using apache::thrift::TProcessor;
33
+ using apache::thrift::protocol::TBinaryProtocolFactory;
34
+ using apache::thrift::protocol::TProtocol;
35
+ using apache::thrift::protocol::TProtocolFactory;
36
+ using apache::thrift::transport::TServerTransport;
37
+ using apache::thrift::transport::TTransport;
38
+ using apache::thrift::transport::TTransportFactory;
39
+
40
+ /**
41
+ * Virtual interface class that can handle events from the server core. To
42
+ * use this you should subclass it and implement the methods that you care
43
+ * about. Your subclass can also store local data that you may care about,
44
+ * such as additional "arguments" to these methods (stored in the object
45
+ * instance's state).
46
+ */
47
+ class TServerEventHandler {
48
+ public:
49
+
50
+ virtual ~TServerEventHandler() {}
51
+
52
+ /**
53
+ * Called before the server begins.
54
+ */
55
+ virtual void preServe() {}
56
+
57
+ /**
58
+ * Called when a new client has connected and is about to being processing.
59
+ */
60
+ virtual void clientBegin(boost::shared_ptr<TProtocol> /* input */,
61
+ boost::shared_ptr<TProtocol> /* output */) {}
62
+
63
+ /**
64
+ * Called when a client has finished making requests.
65
+ */
66
+ virtual void clientEnd(boost::shared_ptr<TProtocol> /* input */,
67
+ boost::shared_ptr<TProtocol> /* output */) {}
68
+
69
+ protected:
70
+
71
+ /**
72
+ * Prevent direct instantiation.
73
+ */
74
+ TServerEventHandler() {}
75
+
76
+ };
77
+
78
+ /**
79
+ * Thrift server.
80
+ *
81
+ */
82
+ class TServer : public concurrency::Runnable {
83
+ public:
84
+
85
+ virtual ~TServer() {}
86
+
87
+ virtual void serve() = 0;
88
+
89
+ virtual void stop() {}
90
+
91
+ // Allows running the server as a Runnable thread
92
+ virtual void run() {
93
+ serve();
94
+ }
95
+
96
+ boost::shared_ptr<TProcessor> getProcessor() {
97
+ return processor_;
98
+ }
99
+
100
+ boost::shared_ptr<TServerTransport> getServerTransport() {
101
+ return serverTransport_;
102
+ }
103
+
104
+ boost::shared_ptr<TTransportFactory> getInputTransportFactory() {
105
+ return inputTransportFactory_;
106
+ }
107
+
108
+ boost::shared_ptr<TTransportFactory> getOutputTransportFactory() {
109
+ return outputTransportFactory_;
110
+ }
111
+
112
+ boost::shared_ptr<TProtocolFactory> getInputProtocolFactory() {
113
+ return inputProtocolFactory_;
114
+ }
115
+
116
+ boost::shared_ptr<TProtocolFactory> getOutputProtocolFactory() {
117
+ return outputProtocolFactory_;
118
+ }
119
+
120
+ boost::shared_ptr<TServerEventHandler> getEventHandler() {
121
+ return eventHandler_;
122
+ }
123
+
124
+ protected:
125
+ TServer(boost::shared_ptr<TProcessor> processor):
126
+ processor_(processor) {
127
+ setInputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
128
+ setOutputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
129
+ setInputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
130
+ setOutputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
131
+ }
132
+
133
+ TServer(boost::shared_ptr<TProcessor> processor,
134
+ boost::shared_ptr<TServerTransport> serverTransport):
135
+ processor_(processor),
136
+ serverTransport_(serverTransport) {
137
+ setInputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
138
+ setOutputTransportFactory(boost::shared_ptr<TTransportFactory>(new TTransportFactory()));
139
+ setInputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
140
+ setOutputProtocolFactory(boost::shared_ptr<TProtocolFactory>(new TBinaryProtocolFactory()));
141
+ }
142
+
143
+ TServer(boost::shared_ptr<TProcessor> processor,
144
+ boost::shared_ptr<TServerTransport> serverTransport,
145
+ boost::shared_ptr<TTransportFactory> transportFactory,
146
+ boost::shared_ptr<TProtocolFactory> protocolFactory):
147
+ processor_(processor),
148
+ serverTransport_(serverTransport),
149
+ inputTransportFactory_(transportFactory),
150
+ outputTransportFactory_(transportFactory),
151
+ inputProtocolFactory_(protocolFactory),
152
+ outputProtocolFactory_(protocolFactory) {}
153
+
154
+ TServer(boost::shared_ptr<TProcessor> processor,
155
+ boost::shared_ptr<TServerTransport> serverTransport,
156
+ boost::shared_ptr<TTransportFactory> inputTransportFactory,
157
+ boost::shared_ptr<TTransportFactory> outputTransportFactory,
158
+ boost::shared_ptr<TProtocolFactory> inputProtocolFactory,
159
+ boost::shared_ptr<TProtocolFactory> outputProtocolFactory):
160
+ processor_(processor),
161
+ serverTransport_(serverTransport),
162
+ inputTransportFactory_(inputTransportFactory),
163
+ outputTransportFactory_(outputTransportFactory),
164
+ inputProtocolFactory_(inputProtocolFactory),
165
+ outputProtocolFactory_(outputProtocolFactory) {}
166
+
167
+
168
+ // Class variables
169
+ boost::shared_ptr<TProcessor> processor_;
170
+ boost::shared_ptr<TServerTransport> serverTransport_;
171
+
172
+ boost::shared_ptr<TTransportFactory> inputTransportFactory_;
173
+ boost::shared_ptr<TTransportFactory> outputTransportFactory_;
174
+
175
+ boost::shared_ptr<TProtocolFactory> inputProtocolFactory_;
176
+ boost::shared_ptr<TProtocolFactory> outputProtocolFactory_;
177
+
178
+ boost::shared_ptr<TServerEventHandler> eventHandler_;
179
+
180
+ public:
181
+ void setInputTransportFactory(boost::shared_ptr<TTransportFactory> inputTransportFactory) {
182
+ inputTransportFactory_ = inputTransportFactory;
183
+ }
184
+
185
+ void setOutputTransportFactory(boost::shared_ptr<TTransportFactory> outputTransportFactory) {
186
+ outputTransportFactory_ = outputTransportFactory;
187
+ }
188
+
189
+ void setInputProtocolFactory(boost::shared_ptr<TProtocolFactory> inputProtocolFactory) {
190
+ inputProtocolFactory_ = inputProtocolFactory;
191
+ }
192
+
193
+ void setOutputProtocolFactory(boost::shared_ptr<TProtocolFactory> outputProtocolFactory) {
194
+ outputProtocolFactory_ = outputProtocolFactory;
195
+ }
196
+
197
+ void setServerEventHandler(boost::shared_ptr<TServerEventHandler> eventHandler) {
198
+ eventHandler_ = eventHandler;
199
+ }
200
+
201
+ };
202
+
203
+ /**
204
+ * Helper function to increase the max file descriptors limit
205
+ * for the current process and all of its children.
206
+ * By default, tries to increase it to as much as 2^24.
207
+ */
208
+ int increase_max_fds(int max_fds=(1<<24));
209
+
210
+
211
+ }}} // apache::thrift::server
212
+
213
+ #endif // #ifndef _THRIFT_SERVER_TSERVER_H_
@@ -0,0 +1,118 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+ #include "server/TSimpleServer.h"
21
+ #include "transport/TTransportException.h"
22
+ #include <string>
23
+ #include <iostream>
24
+
25
+ namespace apache { namespace thrift { namespace server {
26
+
27
+ using namespace std;
28
+ using namespace apache::thrift;
29
+ using namespace apache::thrift::protocol;
30
+ using namespace apache::thrift::transport;
31
+ using boost::shared_ptr;
32
+
33
+ /**
34
+ * A simple single-threaded application server. Perfect for unit tests!
35
+ *
36
+ */
37
+ void TSimpleServer::serve() {
38
+
39
+ shared_ptr<TTransport> client;
40
+ shared_ptr<TTransport> inputTransport;
41
+ shared_ptr<TTransport> outputTransport;
42
+ shared_ptr<TProtocol> inputProtocol;
43
+ shared_ptr<TProtocol> outputProtocol;
44
+
45
+ try {
46
+ // Start the server listening
47
+ serverTransport_->listen();
48
+ } catch (TTransportException& ttx) {
49
+ cerr << "TSimpleServer::run() listen(): " << ttx.what() << endl;
50
+ return;
51
+ }
52
+
53
+ // Run the preServe event
54
+ if (eventHandler_ != NULL) {
55
+ eventHandler_->preServe();
56
+ }
57
+
58
+ // Fetch client from server
59
+ while (!stop_) {
60
+ try {
61
+ client = serverTransport_->accept();
62
+ inputTransport = inputTransportFactory_->getTransport(client);
63
+ outputTransport = outputTransportFactory_->getTransport(client);
64
+ inputProtocol = inputProtocolFactory_->getProtocol(inputTransport);
65
+ outputProtocol = outputProtocolFactory_->getProtocol(outputTransport);
66
+ if (eventHandler_ != NULL) {
67
+ eventHandler_->clientBegin(inputProtocol, outputProtocol);
68
+ }
69
+ try {
70
+ while (processor_->process(inputProtocol, outputProtocol)) {
71
+ // Peek ahead, is the remote side closed?
72
+ if (!inputTransport->peek()) {
73
+ break;
74
+ }
75
+ }
76
+ } catch (TTransportException& ttx) {
77
+ cerr << "TSimpleServer client died: " << ttx.what() << endl;
78
+ } catch (TException& tx) {
79
+ cerr << "TSimpleServer exception: " << tx.what() << endl;
80
+ }
81
+ if (eventHandler_ != NULL) {
82
+ eventHandler_->clientEnd(inputProtocol, outputProtocol);
83
+ }
84
+ inputTransport->close();
85
+ outputTransport->close();
86
+ client->close();
87
+ } catch (TTransportException& ttx) {
88
+ if (inputTransport != NULL) { inputTransport->close(); }
89
+ if (outputTransport != NULL) { outputTransport->close(); }
90
+ if (client != NULL) { client->close(); }
91
+ cerr << "TServerTransport died on accept: " << ttx.what() << endl;
92
+ continue;
93
+ } catch (TException& tx) {
94
+ if (inputTransport != NULL) { inputTransport->close(); }
95
+ if (outputTransport != NULL) { outputTransport->close(); }
96
+ if (client != NULL) { client->close(); }
97
+ cerr << "Some kind of accept exception: " << tx.what() << endl;
98
+ continue;
99
+ } catch (string s) {
100
+ if (inputTransport != NULL) { inputTransport->close(); }
101
+ if (outputTransport != NULL) { outputTransport->close(); }
102
+ if (client != NULL) { client->close(); }
103
+ cerr << "TThreadPoolServer: Unknown exception: " << s << endl;
104
+ break;
105
+ }
106
+ }
107
+
108
+ if (stop_) {
109
+ try {
110
+ serverTransport_->close();
111
+ } catch (TTransportException &ttx) {
112
+ cerr << "TServerTransport failed on close: " << ttx.what() << endl;
113
+ }
114
+ stop_ = false;
115
+ }
116
+ }
117
+
118
+ }}} // apache::thrift::server
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+ #ifndef _THRIFT_SERVER_TSIMPLESERVER_H_
21
+ #define _THRIFT_SERVER_TSIMPLESERVER_H_ 1
22
+
23
+ #include "server/TServer.h"
24
+ #include "transport/TServerTransport.h"
25
+
26
+ namespace apache { namespace thrift { namespace server {
27
+
28
+ /**
29
+ * This is the most basic simple server. It is single-threaded and runs a
30
+ * continuous loop of accepting a single connection, processing requests on
31
+ * that connection until it closes, and then repeating. It is a good example
32
+ * of how to extend the TServer interface.
33
+ *
34
+ */
35
+ class TSimpleServer : public TServer {
36
+ public:
37
+ TSimpleServer(boost::shared_ptr<TProcessor> processor,
38
+ boost::shared_ptr<TServerTransport> serverTransport,
39
+ boost::shared_ptr<TTransportFactory> transportFactory,
40
+ boost::shared_ptr<TProtocolFactory> protocolFactory) :
41
+ TServer(processor, serverTransport, transportFactory, protocolFactory),
42
+ stop_(false) {}
43
+
44
+ TSimpleServer(boost::shared_ptr<TProcessor> processor,
45
+ boost::shared_ptr<TServerTransport> serverTransport,
46
+ boost::shared_ptr<TTransportFactory> inputTransportFactory,
47
+ boost::shared_ptr<TTransportFactory> outputTransportFactory,
48
+ boost::shared_ptr<TProtocolFactory> inputProtocolFactory,
49
+ boost::shared_ptr<TProtocolFactory> outputProtocolFactory):
50
+ TServer(processor, serverTransport,
51
+ inputTransportFactory, outputTransportFactory,
52
+ inputProtocolFactory, outputProtocolFactory),
53
+ stop_(false) {}
54
+
55
+ ~TSimpleServer() {}
56
+
57
+ void serve();
58
+
59
+ void stop() {
60
+ stop_ = true;
61
+ }
62
+
63
+ protected:
64
+ bool stop_;
65
+
66
+ };
67
+
68
+ }}} // apache::thrift::server
69
+
70
+ #endif // #ifndef _THRIFT_SERVER_TSIMPLESERVER_H_
@@ -0,0 +1,217 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+ #include "server/TThreadPoolServer.h"
21
+ #include "transport/TTransportException.h"
22
+ #include "concurrency/Thread.h"
23
+ #include "concurrency/ThreadManager.h"
24
+ #include <string>
25
+ #include <iostream>
26
+
27
+ namespace apache { namespace thrift { namespace server {
28
+
29
+ using boost::shared_ptr;
30
+ using namespace std;
31
+ using namespace apache::thrift;
32
+ using namespace apache::thrift::concurrency;
33
+ using namespace apache::thrift::protocol;;
34
+ using namespace apache::thrift::transport;
35
+
36
+ class TThreadPoolServer::Task : public Runnable {
37
+
38
+ public:
39
+
40
+ Task(TThreadPoolServer &server,
41
+ shared_ptr<TProcessor> processor,
42
+ shared_ptr<TProtocol> input,
43
+ shared_ptr<TProtocol> output) :
44
+ server_(server),
45
+ processor_(processor),
46
+ input_(input),
47
+ output_(output) {
48
+ }
49
+
50
+ ~Task() {}
51
+
52
+ void run() {
53
+ boost::shared_ptr<TServerEventHandler> eventHandler =
54
+ server_.getEventHandler();
55
+ if (eventHandler != NULL) {
56
+ eventHandler->clientBegin(input_, output_);
57
+ }
58
+ try {
59
+ while (processor_->process(input_, output_)) {
60
+ if (!input_->getTransport()->peek()) {
61
+ break;
62
+ }
63
+ }
64
+ } catch (TTransportException& ttx) {
65
+ // This is reasonably expected, client didn't send a full request so just
66
+ // ignore him
67
+ // string errStr = string("TThreadPoolServer client died: ") + ttx.what();
68
+ // GlobalOutput(errStr.c_str());
69
+ } catch (TException& x) {
70
+ string errStr = string("TThreadPoolServer exception: ") + x.what();
71
+ GlobalOutput(errStr.c_str());
72
+ } catch (std::exception &x) {
73
+ string errStr = string("TThreadPoolServer, std::exception: ") + x.what();
74
+ GlobalOutput(errStr.c_str());
75
+ }
76
+
77
+ if (eventHandler != NULL) {
78
+ eventHandler->clientEnd(input_, output_);
79
+ }
80
+
81
+ try {
82
+ input_->getTransport()->close();
83
+ } catch (TTransportException& ttx) {
84
+ string errStr = string("TThreadPoolServer input close failed: ") + ttx.what();
85
+ GlobalOutput(errStr.c_str());
86
+ }
87
+ try {
88
+ output_->getTransport()->close();
89
+ } catch (TTransportException& ttx) {
90
+ string errStr = string("TThreadPoolServer output close failed: ") + ttx.what();
91
+ GlobalOutput(errStr.c_str());
92
+ }
93
+
94
+ }
95
+
96
+ private:
97
+ TServer& server_;
98
+ shared_ptr<TProcessor> processor_;
99
+ shared_ptr<TProtocol> input_;
100
+ shared_ptr<TProtocol> output_;
101
+
102
+ };
103
+
104
+ TThreadPoolServer::TThreadPoolServer(shared_ptr<TProcessor> processor,
105
+ shared_ptr<TServerTransport> serverTransport,
106
+ shared_ptr<TTransportFactory> transportFactory,
107
+ shared_ptr<TProtocolFactory> protocolFactory,
108
+ shared_ptr<ThreadManager> threadManager) :
109
+ TServer(processor, serverTransport, transportFactory, protocolFactory),
110
+ threadManager_(threadManager),
111
+ stop_(false), timeout_(0) {}
112
+
113
+ TThreadPoolServer::TThreadPoolServer(shared_ptr<TProcessor> processor,
114
+ shared_ptr<TServerTransport> serverTransport,
115
+ shared_ptr<TTransportFactory> inputTransportFactory,
116
+ shared_ptr<TTransportFactory> outputTransportFactory,
117
+ shared_ptr<TProtocolFactory> inputProtocolFactory,
118
+ shared_ptr<TProtocolFactory> outputProtocolFactory,
119
+ shared_ptr<ThreadManager> threadManager) :
120
+ TServer(processor, serverTransport, inputTransportFactory, outputTransportFactory,
121
+ inputProtocolFactory, outputProtocolFactory),
122
+ threadManager_(threadManager),
123
+ stop_(false), timeout_(0) {}
124
+
125
+
126
+ TThreadPoolServer::~TThreadPoolServer() {}
127
+
128
+ void TThreadPoolServer::serve() {
129
+ shared_ptr<TTransport> client;
130
+ shared_ptr<TTransport> inputTransport;
131
+ shared_ptr<TTransport> outputTransport;
132
+ shared_ptr<TProtocol> inputProtocol;
133
+ shared_ptr<TProtocol> outputProtocol;
134
+
135
+ try {
136
+ // Start the server listening
137
+ serverTransport_->listen();
138
+ } catch (TTransportException& ttx) {
139
+ string errStr = string("TThreadPoolServer::run() listen(): ") + ttx.what();
140
+ GlobalOutput(errStr.c_str());
141
+ return;
142
+ }
143
+
144
+ // Run the preServe event
145
+ if (eventHandler_ != NULL) {
146
+ eventHandler_->preServe();
147
+ }
148
+
149
+ while (!stop_) {
150
+ try {
151
+ client.reset();
152
+ inputTransport.reset();
153
+ outputTransport.reset();
154
+ inputProtocol.reset();
155
+ outputProtocol.reset();
156
+
157
+ // Fetch client from server
158
+ client = serverTransport_->accept();
159
+
160
+ // Make IO transports
161
+ inputTransport = inputTransportFactory_->getTransport(client);
162
+ outputTransport = outputTransportFactory_->getTransport(client);
163
+ inputProtocol = inputProtocolFactory_->getProtocol(inputTransport);
164
+ outputProtocol = outputProtocolFactory_->getProtocol(outputTransport);
165
+
166
+ // Add to threadmanager pool
167
+ threadManager_->add(shared_ptr<TThreadPoolServer::Task>(new TThreadPoolServer::Task(*this, processor_, inputProtocol, outputProtocol)), timeout_);
168
+
169
+ } catch (TTransportException& ttx) {
170
+ if (inputTransport != NULL) { inputTransport->close(); }
171
+ if (outputTransport != NULL) { outputTransport->close(); }
172
+ if (client != NULL) { client->close(); }
173
+ if (!stop_ || ttx.getType() != TTransportException::INTERRUPTED) {
174
+ string errStr = string("TThreadPoolServer: TServerTransport died on accept: ") + ttx.what();
175
+ GlobalOutput(errStr.c_str());
176
+ }
177
+ continue;
178
+ } catch (TException& tx) {
179
+ if (inputTransport != NULL) { inputTransport->close(); }
180
+ if (outputTransport != NULL) { outputTransport->close(); }
181
+ if (client != NULL) { client->close(); }
182
+ string errStr = string("TThreadPoolServer: Caught TException: ") + tx.what();
183
+ GlobalOutput(errStr.c_str());
184
+ continue;
185
+ } catch (string s) {
186
+ if (inputTransport != NULL) { inputTransport->close(); }
187
+ if (outputTransport != NULL) { outputTransport->close(); }
188
+ if (client != NULL) { client->close(); }
189
+ string errStr = "TThreadPoolServer: Unknown exception: " + s;
190
+ GlobalOutput(errStr.c_str());
191
+ break;
192
+ }
193
+ }
194
+
195
+ // If stopped manually, join the existing threads
196
+ if (stop_) {
197
+ try {
198
+ serverTransport_->close();
199
+ threadManager_->join();
200
+ } catch (TException &tx) {
201
+ string errStr = string("TThreadPoolServer: Exception shutting down: ") + tx.what();
202
+ GlobalOutput(errStr.c_str());
203
+ }
204
+ stop_ = false;
205
+ }
206
+
207
+ }
208
+
209
+ int64_t TThreadPoolServer::getTimeout() const {
210
+ return timeout_;
211
+ }
212
+
213
+ void TThreadPoolServer::setTimeout(int64_t value) {
214
+ timeout_ = value;
215
+ }
216
+
217
+ }}} // apache::thrift::server