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,119 @@
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
+ -module(thrift_socket_transport).
21
+
22
+ -behaviour(thrift_transport).
23
+
24
+ -export([new/1,
25
+ new/2,
26
+ write/2, read/2, flush/1, close/1,
27
+
28
+ new_transport_factory/3]).
29
+
30
+ -record(data, {socket,
31
+ recv_timeout=infinity}).
32
+
33
+ new(Socket) ->
34
+ new(Socket, []).
35
+
36
+ new(Socket, Opts) when is_list(Opts) ->
37
+ State =
38
+ case lists:keysearch(recv_timeout, 1, Opts) of
39
+ {value, {recv_timeout, Timeout}}
40
+ when is_integer(Timeout), Timeout > 0 ->
41
+ #data{socket=Socket, recv_timeout=Timeout};
42
+ _ ->
43
+ #data{socket=Socket}
44
+ end,
45
+ thrift_transport:new(?MODULE, State).
46
+
47
+ %% Data :: iolist()
48
+ write(#data{socket = Socket}, Data) ->
49
+ gen_tcp:send(Socket, Data).
50
+
51
+ read(#data{socket=Socket, recv_timeout=Timeout}, Len)
52
+ when is_integer(Len), Len >= 0 ->
53
+ case gen_tcp:recv(Socket, Len, Timeout) of
54
+ Err = {error, timeout} ->
55
+ error_logger:info_msg("read timeout: peer conn ~p", [inet:peername(Socket)]),
56
+ gen_tcp:close(Socket),
57
+ Err;
58
+ Data -> Data
59
+ end.
60
+
61
+ %% We can't really flush - everything is flushed when we write
62
+ flush(_) ->
63
+ ok.
64
+
65
+ close(#data{socket = Socket}) ->
66
+ gen_tcp:close(Socket).
67
+
68
+
69
+ %%%% FACTORY GENERATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
70
+
71
+
72
+ %% The following "local" record is filled in by parse_factory_options/2
73
+ %% below. These options can be passed to new_protocol_factory/3 in a
74
+ %% proplists-style option list. They're parsed like this so it is an O(n)
75
+ %% operation instead of O(n^2)
76
+ -record(factory_opts, {connect_timeout = infinity,
77
+ sockopts = [],
78
+ framed = false}).
79
+
80
+ parse_factory_options([], Opts) ->
81
+ Opts;
82
+ parse_factory_options([{framed, Bool} | Rest], Opts) when is_boolean(Bool) ->
83
+ parse_factory_options(Rest, Opts#factory_opts{framed=Bool});
84
+ parse_factory_options([{sockopts, OptList} | Rest], Opts) when is_list(OptList) ->
85
+ parse_factory_options(Rest, Opts#factory_opts{sockopts=OptList});
86
+ parse_factory_options([{connect_timeout, TO} | Rest], Opts) when TO =:= infinity; is_integer(TO) ->
87
+ parse_factory_options(Rest, Opts#factory_opts{connect_timeout=TO}).
88
+
89
+
90
+ %%
91
+ %% Generates a "transport factory" function - a fun which returns a thrift_transport()
92
+ %% instance.
93
+ %% This can be passed into a protocol factory to generate a connection to a
94
+ %% thrift server over a socket.
95
+ %%
96
+ new_transport_factory(Host, Port, Options) ->
97
+ ParsedOpts = parse_factory_options(Options, #factory_opts{}),
98
+
99
+ F = fun() ->
100
+ SockOpts = [binary,
101
+ {packet, 0},
102
+ {active, false},
103
+ {nodelay, true} |
104
+ ParsedOpts#factory_opts.sockopts],
105
+ case catch gen_tcp:connect(Host, Port, SockOpts,
106
+ ParsedOpts#factory_opts.connect_timeout) of
107
+ {ok, Sock} ->
108
+ {ok, Transport} = thrift_socket_transport:new(Sock),
109
+ {ok, BufTransport} =
110
+ case ParsedOpts#factory_opts.framed of
111
+ true -> thrift_framed_transport:new(Transport);
112
+ false -> thrift_buffered_transport:new(Transport)
113
+ end,
114
+ {ok, BufTransport};
115
+ Error ->
116
+ Error
117
+ end
118
+ end,
119
+ {ok, F}.
@@ -0,0 +1,57 @@
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
+ -module(thrift_transport).
21
+
22
+ -export([behaviour_info/1]).
23
+
24
+ -export([new/2,
25
+ write/2,
26
+ read/2,
27
+ flush/1,
28
+ close/1
29
+ ]).
30
+
31
+ behaviour_info(callbacks) ->
32
+ [{read, 2},
33
+ {write, 2},
34
+ {flush, 1},
35
+ {close, 1}
36
+ ].
37
+
38
+ -record(transport, {module, data}).
39
+
40
+ new(Module, Data) when is_atom(Module) ->
41
+ {ok, #transport{module = Module,
42
+ data = Data}}.
43
+
44
+ %% Data :: iolist()
45
+ write(Transport, Data) ->
46
+ Module = Transport#transport.module,
47
+ Module:write(Transport#transport.data, Data).
48
+
49
+ read(Transport, Len) when is_integer(Len) ->
50
+ Module = Transport#transport.module,
51
+ Module:read(Transport#transport.data, Len).
52
+
53
+ flush(#transport{module = Module, data = Data}) ->
54
+ Module:flush(Data).
55
+
56
+ close(#transport{module = Module, data = Data}) ->
57
+ Module:close(Data).
@@ -0,0 +1 @@
1
+ THRIFT_VSN=0.1
@@ -0,0 +1,82 @@
1
+ Haskell Thrift Bindings
2
+
3
+ License
4
+ =======
5
+
6
+ Licensed to the Apache Software Foundation (ASF) under one
7
+ or more contributor license agreements. See the NOTICE file
8
+ distributed with this work for additional information
9
+ regarding copyright ownership. The ASF licenses this file
10
+ to you under the Apache License, Version 2.0 (the
11
+ "License"); you may not use this file except in compliance
12
+ with the License. You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing,
17
+ software distributed under the License is distributed on an
18
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
+ KIND, either express or implied. See the License for the
20
+ specific language governing permissions and limitations
21
+ under the License.
22
+
23
+ Running
24
+ =======
25
+
26
+ You need -fglasgow-exts. Use Cabal to compile and install. If you're trying to
27
+ manually compile or load via ghci, and you're using ghc 6.10 (or really if your
28
+ default base package has major version number 4), you must specify a version of
29
+ the base package with major version number 3. Furthermore if you have the syb
30
+ package installed you need to hide that package to avoid import conflicts.
31
+ Here's an example of what I'm talking about:
32
+
33
+ ghci -fglasgow-exts -package base-3.0.3.0 -hide-package syb -isrc Thrift.hs
34
+
35
+ To determine which versions of the base package you have installed use the
36
+ following command:
37
+
38
+ ghc-pkg list base
39
+
40
+ All of this is taken care of for you if you use Cabal.
41
+
42
+
43
+ Enums
44
+ =====
45
+
46
+ become haskell data types. Use fromEnum to get out the int value.
47
+
48
+ Structs
49
+ =======
50
+
51
+ become records. Field labels are ugly, of the form f_STRUCTNAME_FIELDNAME. All
52
+ fields are Maybe types.
53
+
54
+ Exceptions
55
+ ==========
56
+
57
+ identical to structs. Throw them with throwDyn. Catch them with catchDyn.
58
+
59
+ Client
60
+ ======
61
+
62
+ just a bunch of functions. You may have to import a bunch of client files to
63
+ deal with inheritance.
64
+
65
+ Interface
66
+ =========
67
+
68
+ You should only have to import the last one in the chain of inheritors. To make
69
+ an interface, declare a label:
70
+
71
+ data MyIface = MyIface
72
+
73
+ and then declare it an instance of each iface class, starting with the superest
74
+ class and proceding down (all the while defining the methods). Then pass your
75
+ label to process as the handler.
76
+
77
+ Processor
78
+ =========
79
+
80
+ Just a function that takes a handler label, protocols. It calls the
81
+ superclasses process if there is a superclass.
82
+
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env runhaskell
2
+
3
+ #
4
+ # Licensed to the Apache Software Foundation (ASF) under one
5
+ # or more contributor license agreements. See the NOTICE file
6
+ # distributed with this work for additional information
7
+ # regarding copyright ownership. The ASF licenses this file
8
+ # to you under the Apache License, Version 2.0 (the
9
+ # "License"); you may not use this file except in compliance
10
+ # with the License. You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing,
15
+ # software distributed under the License is distributed on an
16
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17
+ # KIND, either express or implied. See the License for the
18
+ # specific language governing permissions and limitations
19
+ # under the License.
20
+ #
21
+
22
+ > import Distribution.Simple
23
+ > main = defaultMain
@@ -0,0 +1,2 @@
1
+ The library could stand to be built up more.
2
+ Many modules need export lists.
@@ -0,0 +1,20 @@
1
+ Name: Thrift
2
+ Version: 0.1.0
3
+ Cabal-Version: >= 1.2
4
+ License: Apache2
5
+ Category: Foreign
6
+ Build-Type: Simple
7
+ Synopsis: Thrift library package
8
+
9
+ Library
10
+ Hs-Source-Dirs:
11
+ src
12
+ Build-Depends:
13
+ base >=4, network, ghc-prim
14
+ ghc-options:
15
+ -fglasgow-exts
16
+ Extensions:
17
+ DeriveDataTypeable
18
+ Exposed-Modules:
19
+ Thrift, Thrift.Protocol, Thrift.Transport, Thrift.Protocol.Binary
20
+ Thrift.Transport.Handle, Thrift.Server
@@ -0,0 +1,111 @@
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
+ module Thrift
21
+ ( module Thrift.Transport
22
+ , module Thrift.Protocol
23
+ , AppExnType(..)
24
+ , AppExn(..)
25
+ , readAppExn
26
+ , writeAppExn
27
+ , ThriftException(..)
28
+ ) where
29
+
30
+ import Control.Monad ( when )
31
+ import Control.Exception
32
+
33
+ import Data.Typeable ( Typeable )
34
+
35
+ import Thrift.Transport
36
+ import Thrift.Protocol
37
+
38
+
39
+ data ThriftException = ThriftException
40
+ deriving ( Show, Typeable )
41
+ instance Exception ThriftException
42
+
43
+ data AppExnType
44
+ = AE_UNKNOWN
45
+ | AE_UNKNOWN_METHOD
46
+ | AE_INVALID_MESSAGE_TYPE
47
+ | AE_WRONG_METHOD_NAME
48
+ | AE_BAD_SEQUENCE_ID
49
+ | AE_MISSING_RESULT
50
+ deriving ( Eq, Show, Typeable )
51
+
52
+ instance Enum AppExnType where
53
+ toEnum 0 = AE_UNKNOWN
54
+ toEnum 1 = AE_UNKNOWN_METHOD
55
+ toEnum 2 = AE_INVALID_MESSAGE_TYPE
56
+ toEnum 3 = AE_WRONG_METHOD_NAME
57
+ toEnum 4 = AE_BAD_SEQUENCE_ID
58
+ toEnum 5 = AE_MISSING_RESULT
59
+
60
+ fromEnum AE_UNKNOWN = 0
61
+ fromEnum AE_UNKNOWN_METHOD = 1
62
+ fromEnum AE_INVALID_MESSAGE_TYPE = 2
63
+ fromEnum AE_WRONG_METHOD_NAME = 3
64
+ fromEnum AE_BAD_SEQUENCE_ID = 4
65
+ fromEnum AE_MISSING_RESULT = 5
66
+
67
+ data AppExn = AppExn { ae_type :: AppExnType, ae_message :: String }
68
+ deriving ( Show, Typeable )
69
+ instance Exception AppExn
70
+
71
+ writeAppExn :: (Protocol p, Transport t) => p t -> AppExn -> IO ()
72
+ writeAppExn pt ae = do
73
+ writeStructBegin pt "TApplicationException"
74
+
75
+ when (ae_message ae /= "") $ do
76
+ writeFieldBegin pt ("message", T_STRING , 1)
77
+ writeString pt (ae_message ae)
78
+ writeFieldEnd pt
79
+
80
+ writeFieldBegin pt ("type", T_I32, 2);
81
+ writeI32 pt (fromEnum (ae_type ae))
82
+ writeFieldEnd pt
83
+ writeFieldStop pt
84
+ writeStructEnd pt
85
+
86
+ readAppExn :: (Protocol p, Transport t) => p t -> IO AppExn
87
+ readAppExn pt = do
88
+ readStructBegin pt
89
+ rec <- readAppExnFields pt (AppExn {ae_type = undefined, ae_message = undefined})
90
+ readStructEnd pt
91
+ return rec
92
+
93
+ readAppExnFields pt rec = do
94
+ (n, ft, id) <- readFieldBegin pt
95
+ if ft == T_STOP
96
+ then return rec
97
+ else case id of
98
+ 1 -> if ft == T_STRING then
99
+ do s <- readString pt
100
+ readAppExnFields pt rec{ae_message = s}
101
+ else do skip pt ft
102
+ readAppExnFields pt rec
103
+ 2 -> if ft == T_I32 then
104
+ do i <- readI32 pt
105
+ readAppExnFields pt rec{ae_type = (toEnum i)}
106
+ else do skip pt ft
107
+ readAppExnFields pt rec
108
+ _ -> do skip pt ft
109
+ readFieldEnd pt
110
+ readAppExnFields pt rec
111
+
@@ -0,0 +1,191 @@
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
+ module Thrift.Protocol
21
+ ( Protocol(..)
22
+ , skip
23
+ , MessageType(..)
24
+ , ThriftType(..)
25
+ , ProtocolExn(..)
26
+ , ProtocolExnType(..)
27
+ ) where
28
+
29
+ import Control.Monad ( replicateM_, unless )
30
+ import Control.Exception
31
+
32
+ import Data.Typeable ( Typeable )
33
+ import Data.Int
34
+
35
+ import Thrift.Transport
36
+
37
+
38
+ data ThriftType
39
+ = T_STOP
40
+ | T_VOID
41
+ | T_BOOL
42
+ | T_BYTE
43
+ | T_DOUBLE
44
+ | T_I16
45
+ | T_I32
46
+ | T_I64
47
+ | T_STRING
48
+ | T_STRUCT
49
+ | T_MAP
50
+ | T_SET
51
+ | T_LIST
52
+ deriving ( Eq )
53
+
54
+ instance Enum ThriftType where
55
+ fromEnum T_STOP = 0
56
+ fromEnum T_VOID = 1
57
+ fromEnum T_BOOL = 2
58
+ fromEnum T_BYTE = 3
59
+ fromEnum T_DOUBLE = 4
60
+ fromEnum T_I16 = 6
61
+ fromEnum T_I32 = 8
62
+ fromEnum T_I64 = 10
63
+ fromEnum T_STRING = 11
64
+ fromEnum T_STRUCT = 12
65
+ fromEnum T_MAP = 13
66
+ fromEnum T_SET = 14
67
+ fromEnum T_LIST = 15
68
+
69
+ toEnum 0 = T_STOP
70
+ toEnum 1 = T_VOID
71
+ toEnum 2 = T_BOOL
72
+ toEnum 3 = T_BYTE
73
+ toEnum 4 = T_DOUBLE
74
+ toEnum 6 = T_I16
75
+ toEnum 8 = T_I32
76
+ toEnum 10 = T_I64
77
+ toEnum 11 = T_STRING
78
+ toEnum 12 = T_STRUCT
79
+ toEnum 13 = T_MAP
80
+ toEnum 14 = T_SET
81
+ toEnum 15 = T_LIST
82
+
83
+ data MessageType
84
+ = M_CALL
85
+ | M_REPLY
86
+ | M_EXCEPTION
87
+ deriving ( Eq )
88
+
89
+ instance Enum MessageType where
90
+ fromEnum M_CALL = 1
91
+ fromEnum M_REPLY = 2
92
+ fromEnum M_EXCEPTION = 3
93
+
94
+ toEnum 1 = M_CALL
95
+ toEnum 2 = M_REPLY
96
+ toEnum 3 = M_EXCEPTION
97
+
98
+
99
+ class Protocol a where
100
+ getTransport :: Transport t => a t -> t
101
+
102
+ writeMessageBegin :: Transport t => a t -> (String, MessageType, Int) -> IO ()
103
+ writeMessageEnd :: Transport t => a t -> IO ()
104
+
105
+ writeStructBegin :: Transport t => a t -> String -> IO ()
106
+ writeStructEnd :: Transport t => a t -> IO ()
107
+ writeFieldBegin :: Transport t => a t -> (String, ThriftType, Int) -> IO ()
108
+ writeFieldEnd :: Transport t => a t -> IO ()
109
+ writeFieldStop :: Transport t => a t -> IO ()
110
+ writeMapBegin :: Transport t => a t -> (ThriftType, ThriftType, Int) -> IO ()
111
+ writeMapEnd :: Transport t => a t -> IO ()
112
+ writeListBegin :: Transport t => a t -> (ThriftType, Int) -> IO ()
113
+ writeListEnd :: Transport t => a t -> IO ()
114
+ writeSetBegin :: Transport t => a t -> (ThriftType, Int) -> IO ()
115
+ writeSetEnd :: Transport t => a t -> IO ()
116
+
117
+ writeBool :: Transport t => a t -> Bool -> IO ()
118
+ writeByte :: Transport t => a t -> Int -> IO ()
119
+ writeI16 :: Transport t => a t -> Int -> IO ()
120
+ writeI32 :: Transport t => a t -> Int -> IO ()
121
+ writeI64 :: Transport t => a t -> Int64 -> IO ()
122
+ writeDouble :: Transport t => a t -> Double -> IO ()
123
+ writeString :: Transport t => a t -> String -> IO ()
124
+ writeBinary :: Transport t => a t -> String -> IO ()
125
+
126
+
127
+ readMessageBegin :: Transport t => a t -> IO (String, MessageType, Int)
128
+ readMessageEnd :: Transport t => a t -> IO ()
129
+
130
+ readStructBegin :: Transport t => a t -> IO String
131
+ readStructEnd :: Transport t => a t -> IO ()
132
+ readFieldBegin :: Transport t => a t -> IO (String, ThriftType, Int)
133
+ readFieldEnd :: Transport t => a t -> IO ()
134
+ readMapBegin :: Transport t => a t -> IO (ThriftType, ThriftType, Int)
135
+ readMapEnd :: Transport t => a t -> IO ()
136
+ readListBegin :: Transport t => a t -> IO (ThriftType, Int)
137
+ readListEnd :: Transport t => a t -> IO ()
138
+ readSetBegin :: Transport t => a t -> IO (ThriftType, Int)
139
+ readSetEnd :: Transport t => a t -> IO ()
140
+
141
+ readBool :: Transport t => a t -> IO Bool
142
+ readByte :: Transport t => a t -> IO Int
143
+ readI16 :: Transport t => a t -> IO Int
144
+ readI32 :: Transport t => a t -> IO Int
145
+ readI64 :: Transport t => a t -> IO Int64
146
+ readDouble :: Transport t => a t -> IO Double
147
+ readString :: Transport t => a t -> IO String
148
+ readBinary :: Transport t => a t -> IO String
149
+
150
+
151
+ skip :: (Protocol p, Transport t) => p t -> ThriftType -> IO ()
152
+ skip p T_STOP = return ()
153
+ skip p T_VOID = return ()
154
+ skip p T_BOOL = readBool p >> return ()
155
+ skip p T_BYTE = readByte p >> return ()
156
+ skip p T_I16 = readI16 p >> return ()
157
+ skip p T_I32 = readI32 p >> return ()
158
+ skip p T_I64 = readI64 p >> return ()
159
+ skip p T_DOUBLE = readDouble p >> return ()
160
+ skip p T_STRING = readString p >> return ()
161
+ skip p T_STRUCT = do readStructBegin p
162
+ skipFields p
163
+ readStructEnd p
164
+ skip p T_MAP = do (k, v, s) <- readMapBegin p
165
+ replicateM_ s (skip p k >> skip p v)
166
+ readMapEnd p
167
+ skip p T_SET = do (t, n) <- readSetBegin p
168
+ replicateM_ n (skip p t)
169
+ readSetEnd p
170
+ skip p T_LIST = do (t, n) <- readListBegin p
171
+ replicateM_ n (skip p t)
172
+ readListEnd p
173
+
174
+
175
+ skipFields :: (Protocol p, Transport t) => p t -> IO ()
176
+ skipFields p = do
177
+ (_, t, _) <- readFieldBegin p
178
+ unless (t == T_STOP) (skip p t >> readFieldEnd p >> skipFields p)
179
+
180
+
181
+ data ProtocolExnType
182
+ = PE_UNKNOWN
183
+ | PE_INVALID_DATA
184
+ | PE_NEGATIVE_SIZE
185
+ | PE_SIZE_LIMIT
186
+ | PE_BAD_VERSION
187
+ deriving ( Eq, Show, Typeable )
188
+
189
+ data ProtocolExn = ProtocolExn ProtocolExnType String
190
+ deriving ( Show, Typeable )
191
+ instance Exception ProtocolExn