auser-poolparty 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) hide show
  1. data/VERSION.yml +1 -1
  2. data/bin/cloud-compile +6 -1
  3. data/config/jeweler.rb +1 -3
  4. data/lib/cloud_providers/cloud_provider_instance.rb +11 -1
  5. data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +51 -0
  6. data/lib/dependency_resolvers/chef.rb +12 -3
  7. data/lib/mixins/callbacks.rb +6 -2
  8. data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
  9. data/test/fixtures/chef/recipes/sudo/attributes/sudoers.rb +30 -0
  10. data/test/fixtures/chef/recipes/sudo/recipes/default.rb +33 -0
  11. data/test/fixtures/chef/recipes/sudo/templates/default/sudoers.erb +22 -0
  12. data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +21 -0
  13. data/test/lib/dependency_resolvers/chef_test.rb +8 -1
  14. data/vendor/gems/thrift/CHANGELOG +1 -0
  15. data/vendor/gems/thrift/Makefile.am +25 -6
  16. data/vendor/gems/thrift/Manifest +81 -0
  17. data/vendor/gems/thrift/README +17 -111
  18. data/vendor/gems/thrift/Rakefile +104 -0
  19. data/vendor/gems/thrift/{lib/hs/Setup.lhs → benchmark/Benchmark.thrift} +5 -4
  20. data/vendor/gems/thrift/benchmark/benchmark.rb +271 -0
  21. data/vendor/gems/thrift/benchmark/client.rb +74 -0
  22. data/vendor/gems/thrift/benchmark/server.rb +82 -0
  23. data/vendor/gems/thrift/benchmark/thin_server.rb +44 -0
  24. data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +474 -0
  25. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.m → ext/binary_protocol_accelerated.h} +1 -4
  26. data/vendor/gems/thrift/ext/compact_protocol.c +665 -0
  27. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.h → ext/compact_protocol.h} +1 -6
  28. data/vendor/gems/thrift/ext/constants.h +95 -0
  29. data/vendor/gems/thrift/{contrib/fb303/Makefile.am → ext/extconf.rb} +8 -13
  30. data/vendor/gems/thrift/{compiler/cpp/src/platform.h → ext/macros.h} +18 -13
  31. data/vendor/gems/thrift/ext/memory_buffer.c +76 -0
  32. data/vendor/gems/thrift/{lib/csharp/src/Protocol/TMessageType.cs → ext/memory_buffer.h} +2 -13
  33. data/vendor/gems/thrift/ext/protocol.c +185 -0
  34. data/vendor/gems/thrift/{lib/csharp/src/TProcessor.cs → ext/protocol.h} +2 -11
  35. data/vendor/gems/thrift/ext/struct.c +606 -0
  36. data/vendor/gems/thrift/ext/struct.h +67 -0
  37. data/vendor/gems/thrift/ext/thrift_native.c +194 -0
  38. data/vendor/gems/thrift/lib/thrift/client.rb +62 -0
  39. data/vendor/gems/thrift/{contrib/fb303/py/fb303_scripts/__init__.py → lib/thrift/core_ext/fixnum.rb} +13 -4
  40. data/vendor/gems/thrift/{contrib/fb303/global_footer.mk → lib/thrift/core_ext.rb} +4 -2
  41. data/vendor/gems/thrift/lib/thrift/exceptions.rb +82 -0
  42. data/vendor/gems/thrift/lib/thrift/processor.rb +57 -0
  43. data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +290 -0
  44. data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +225 -0
  45. data/vendor/gems/thrift/{cleanup.sh → lib/thrift/protocol/binary_protocol_accelerated.rb} +19 -42
  46. data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +422 -0
  47. data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +33 -0
  48. data/vendor/gems/thrift/{bootstrap.sh → lib/thrift/serializer/serializer.rb} +17 -18
  49. data/vendor/gems/thrift/lib/thrift/server/base_server.rb +31 -0
  50. data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +58 -0
  51. data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +296 -0
  52. data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +43 -0
  53. data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +75 -0
  54. data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +47 -0
  55. data/vendor/gems/thrift/lib/thrift/struct.rb +298 -0
  56. data/vendor/gems/thrift/{contrib/fb303/bootstrap.sh → lib/thrift/thrift_native.rb} +5 -7
  57. data/vendor/gems/thrift/lib/{erl/Makefile → thrift/transport/base_server_transport.rb} +20 -20
  58. data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +70 -0
  59. data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +77 -0
  60. data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +90 -0
  61. data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +45 -0
  62. data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +39 -0
  63. data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +96 -0
  64. data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +63 -0
  65. data/vendor/gems/thrift/lib/thrift/transport/socket.rb +136 -0
  66. data/vendor/gems/thrift/lib/{java/Makefile.am → thrift/transport/unix_server_socket.rb} +39 -17
  67. data/vendor/gems/thrift/{contrib/fb303/global_header.mk → lib/thrift/transport/unix_socket.rb} +23 -21
  68. data/vendor/gems/thrift/lib/thrift/types.rb +101 -0
  69. data/vendor/gems/thrift/lib/thrift.rb +59 -0
  70. data/vendor/gems/thrift/script/proto_benchmark.rb +121 -0
  71. data/vendor/gems/thrift/{lib/Makefile.am → script/read_struct.rb} +24 -36
  72. data/vendor/gems/thrift/{contrib/fb303/py/setup.py → script/write_struct.rb} +8 -5
  73. data/vendor/gems/thrift/setup.rb +1585 -0
  74. data/vendor/gems/thrift/spec/ThriftSpec.thrift +84 -0
  75. data/vendor/gems/thrift/spec/base_protocol_spec.rb +160 -0
  76. data/vendor/gems/thrift/spec/base_transport_spec.rb +351 -0
  77. data/vendor/gems/thrift/{contrib/fb303/py/Makefile.am → spec/binary_protocol_accelerated_spec.rb} +22 -25
  78. data/vendor/gems/thrift/spec/binary_protocol_spec.rb +63 -0
  79. data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +375 -0
  80. data/vendor/gems/thrift/spec/client_spec.rb +100 -0
  81. data/vendor/gems/thrift/spec/compact_protocol_spec.rb +117 -0
  82. data/vendor/gems/thrift/spec/exception_spec.rb +142 -0
  83. data/vendor/gems/thrift/spec/http_client_spec.rb +49 -0
  84. data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +117 -0
  85. data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +265 -0
  86. data/vendor/gems/thrift/spec/processor_spec.rb +83 -0
  87. data/vendor/gems/thrift/spec/serializer_spec.rb +69 -0
  88. data/vendor/gems/thrift/spec/server_socket_spec.rb +80 -0
  89. data/vendor/gems/thrift/spec/server_spec.rb +160 -0
  90. data/vendor/gems/thrift/spec/socket_spec.rb +61 -0
  91. data/vendor/gems/thrift/spec/socket_spec_shared.rb +104 -0
  92. data/vendor/gems/thrift/spec/spec_helper.rb +60 -0
  93. data/vendor/gems/thrift/spec/struct_spec.rb +252 -0
  94. data/vendor/gems/thrift/spec/types_spec.rb +116 -0
  95. data/vendor/gems/thrift/spec/unix_socket_spec.rb +108 -0
  96. data/vendor/gems/trollop/FAQ.txt +84 -0
  97. data/vendor/gems/trollop/History.txt +101 -0
  98. data/vendor/gems/trollop/Manifest.txt +7 -0
  99. data/vendor/gems/trollop/README.txt +40 -0
  100. data/vendor/gems/trollop/Rakefile +36 -0
  101. data/vendor/gems/trollop/lib/trollop.rb +739 -0
  102. data/vendor/gems/trollop/release-script.txt +13 -0
  103. data/vendor/gems/trollop/test/test_trollop.rb +1048 -0
  104. data/vendor/gems/trollop/www/index.html +172 -0
  105. metadata +123 -347
  106. data/vendor/gems/thrift/CHANGES +0 -35
  107. data/vendor/gems/thrift/CONTRIBUTORS +0 -77
  108. data/vendor/gems/thrift/DISCLAIMER +0 -6
  109. data/vendor/gems/thrift/LICENSE +0 -202
  110. data/vendor/gems/thrift/NEWS +0 -79
  111. data/vendor/gems/thrift/NOTICE +0 -26
  112. data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +0 -198
  113. data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +0 -107
  114. data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +0 -194
  115. data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +0 -173
  116. data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +0 -127
  117. data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +0 -39
  118. data/vendor/gems/thrift/compiler/cpp/Makefile.am +0 -136
  119. data/vendor/gems/thrift/compiler/cpp/README +0 -39
  120. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +0 -2331
  121. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +0 -3003
  122. data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +0 -1700
  123. data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +0 -932
  124. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +0 -173
  125. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +0 -321
  126. data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +0 -1445
  127. data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +0 -637
  128. data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +0 -3069
  129. data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +0 -1673
  130. data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +0 -77
  131. data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +0 -1812
  132. data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +0 -2281
  133. data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +0 -2310
  134. data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +0 -1114
  135. data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +0 -1071
  136. data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +0 -354
  137. data/vendor/gems/thrift/compiler/cpp/src/globals.h +0 -117
  138. data/vendor/gems/thrift/compiler/cpp/src/main.cc +0 -1207
  139. data/vendor/gems/thrift/compiler/cpp/src/main.h +0 -103
  140. data/vendor/gems/thrift/compiler/cpp/src/md5.c +0 -381
  141. data/vendor/gems/thrift/compiler/cpp/src/md5.h +0 -91
  142. data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +0 -137
  143. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +0 -59
  144. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +0 -121
  145. data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +0 -56
  146. data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +0 -51
  147. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +0 -59
  148. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +0 -64
  149. data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +0 -150
  150. data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +0 -93
  151. data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +0 -56
  152. data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +0 -64
  153. data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +0 -223
  154. data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +0 -86
  155. data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +0 -68
  156. data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +0 -55
  157. data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +0 -127
  158. data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +0 -176
  159. data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +0 -70
  160. data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +0 -303
  161. data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +0 -1140
  162. data/vendor/gems/thrift/configure.ac +0 -255
  163. data/vendor/gems/thrift/contrib/fb303/LICENSE +0 -16
  164. data/vendor/gems/thrift/contrib/fb303/README +0 -37
  165. data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +0 -258
  166. data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +0 -198
  167. data/vendor/gems/thrift/contrib/fb303/configure.ac +0 -115
  168. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +0 -124
  169. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +0 -103
  170. data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +0 -84
  171. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +0 -481
  172. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +0 -215
  173. data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +0 -112
  174. data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +0 -103
  175. data/vendor/gems/thrift/contrib/fb303/java/build.xml +0 -84
  176. data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +0 -89
  177. data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +0 -82
  178. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +0 -195
  179. data/vendor/gems/thrift/contrib/thrift.el +0 -126
  180. data/vendor/gems/thrift/contrib/thrift.spec +0 -206
  181. data/vendor/gems/thrift/contrib/thrift.vim +0 -91
  182. data/vendor/gems/thrift/contrib/thrift_dump.cpp +0 -91
  183. data/vendor/gems/thrift/doc/lgpl-2.1.txt +0 -504
  184. data/vendor/gems/thrift/doc/otp-base-license.txt +0 -20
  185. data/vendor/gems/thrift/doc/thrift.bnf +0 -96
  186. data/vendor/gems/thrift/doc/thrift.tex +0 -1057
  187. data/vendor/gems/thrift/lib/cocoa/README +0 -21
  188. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +0 -44
  189. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +0 -130
  190. data/vendor/gems/thrift/lib/cocoa/src/TException.h +0 -34
  191. data/vendor/gems/thrift/lib/cocoa/src/TException.m +0 -64
  192. data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +0 -29
  193. data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +0 -27
  194. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +0 -27
  195. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +0 -51
  196. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +0 -51
  197. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +0 -477
  198. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +0 -148
  199. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +0 -29
  200. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +0 -29
  201. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +0 -104
  202. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +0 -50
  203. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +0 -153
  204. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +0 -42
  205. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +0 -159
  206. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +0 -35
  207. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +0 -91
  208. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +0 -38
  209. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +0 -89
  210. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +0 -32
  211. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +0 -58
  212. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +0 -36
  213. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +0 -30
  214. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +0 -43
  215. data/vendor/gems/thrift/lib/cpp/Makefile.am +0 -158
  216. data/vendor/gems/thrift/lib/cpp/README +0 -67
  217. data/vendor/gems/thrift/lib/cpp/src/TLogging.h +0 -163
  218. data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +0 -53
  219. data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +0 -96
  220. data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +0 -148
  221. data/vendor/gems/thrift/lib/cpp/src/Thrift.h +0 -191
  222. data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +0 -60
  223. data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +0 -77
  224. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +0 -137
  225. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +0 -84
  226. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +0 -160
  227. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +0 -114
  228. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +0 -314
  229. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +0 -130
  230. data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +0 -125
  231. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +0 -493
  232. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +0 -169
  233. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +0 -284
  234. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +0 -122
  235. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +0 -55
  236. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +0 -100
  237. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +0 -155
  238. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +0 -354
  239. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +0 -379
  240. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +0 -155
  241. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +0 -122
  242. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +0 -77
  243. data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +0 -264
  244. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +0 -79
  245. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +0 -42
  246. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +0 -394
  247. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +0 -254
  248. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +0 -736
  249. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +0 -279
  250. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +0 -346
  251. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +0 -225
  252. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +0 -762
  253. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +0 -253
  254. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +0 -998
  255. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +0 -340
  256. data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +0 -304
  257. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +0 -438
  258. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +0 -104
  259. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +0 -187
  260. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +0 -750
  261. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +0 -435
  262. data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +0 -38
  263. data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +0 -213
  264. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +0 -118
  265. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +0 -70
  266. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +0 -217
  267. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +0 -79
  268. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +0 -243
  269. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +0 -74
  270. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +0 -370
  271. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +0 -667
  272. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +0 -77
  273. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +0 -73
  274. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +0 -953
  275. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +0 -442
  276. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +0 -348
  277. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +0 -111
  278. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +0 -368
  279. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +0 -76
  280. data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +0 -92
  281. data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +0 -96
  282. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +0 -54
  283. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +0 -41
  284. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +0 -591
  285. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +0 -242
  286. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +0 -235
  287. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +0 -191
  288. data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +0 -224
  289. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +0 -31
  290. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +0 -117
  291. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +0 -178
  292. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +0 -287
  293. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +0 -299
  294. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +0 -219
  295. data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +0 -30
  296. data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +0 -30
  297. data/vendor/gems/thrift/lib/cpp/thrift.pc.in +0 -29
  298. data/vendor/gems/thrift/lib/csharp/Makefile.am +0 -70
  299. data/vendor/gems/thrift/lib/csharp/README +0 -26
  300. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +0 -55
  301. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +0 -242
  302. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +0 -62
  303. data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +0 -142
  304. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +0 -34
  305. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +0 -392
  306. data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +0 -58
  307. data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +0 -50
  308. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +0 -58
  309. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +0 -58
  310. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +0 -87
  311. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +0 -61
  312. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +0 -29
  313. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +0 -94
  314. data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +0 -50
  315. data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +0 -42
  316. data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +0 -40
  317. data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +0 -135
  318. data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +0 -148
  319. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +0 -186
  320. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +0 -234
  321. data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +0 -131
  322. data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +0 -73
  323. data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +0 -35
  324. data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +0 -100
  325. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +0 -157
  326. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +0 -39
  327. data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +0 -144
  328. data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +0 -103
  329. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +0 -66
  330. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +0 -64
  331. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +0 -38
  332. data/vendor/gems/thrift/lib/erl/README +0 -56
  333. data/vendor/gems/thrift/lib/erl/build/beamver +0 -59
  334. data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +0 -15
  335. data/vendor/gems/thrift/lib/erl/build/colors.mk +0 -24
  336. data/vendor/gems/thrift/lib/erl/build/docs.mk +0 -12
  337. data/vendor/gems/thrift/lib/erl/build/mime.types +0 -98
  338. data/vendor/gems/thrift/lib/erl/build/otp.mk +0 -146
  339. data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +0 -85
  340. data/vendor/gems/thrift/lib/erl/build/raw_test.mk +0 -29
  341. data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +0 -54
  342. data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +0 -31
  343. data/vendor/gems/thrift/lib/erl/src/Makefile +0 -116
  344. data/vendor/gems/thrift/lib/erl/src/test_handler.erl +0 -26
  345. data/vendor/gems/thrift/lib/erl/src/test_service.erl +0 -29
  346. data/vendor/gems/thrift/lib/erl/src/thrift.app.src +0 -44
  347. data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +0 -1
  348. data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +0 -64
  349. data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +0 -325
  350. data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +0 -180
  351. data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +0 -384
  352. data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +0 -118
  353. data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +0 -87
  354. data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +0 -208
  355. data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +0 -199
  356. data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +0 -164
  357. data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +0 -188
  358. data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +0 -356
  359. data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +0 -183
  360. data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +0 -25
  361. data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +0 -249
  362. data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +0 -119
  363. data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +0 -57
  364. data/vendor/gems/thrift/lib/erl/vsn.mk +0 -1
  365. data/vendor/gems/thrift/lib/hs/README +0 -82
  366. data/vendor/gems/thrift/lib/hs/TODO +0 -2
  367. data/vendor/gems/thrift/lib/hs/Thrift.cabal +0 -20
  368. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +0 -147
  369. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +0 -191
  370. data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +0 -65
  371. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +0 -58
  372. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +0 -60
  373. data/vendor/gems/thrift/lib/hs/src/Thrift.hs +0 -111
  374. data/vendor/gems/thrift/lib/java/README +0 -43
  375. data/vendor/gems/thrift/lib/java/build.xml +0 -195
  376. data/vendor/gems/thrift/lib/java/ivy.xml +0 -8
  377. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +0 -171
  378. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +0 -123
  379. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +0 -66
  380. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +0 -102
  381. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +0 -46
  382. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +0 -94
  383. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +0 -45
  384. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +0 -30
  385. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +0 -32
  386. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +0 -39
  387. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +0 -110
  388. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +0 -69
  389. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +0 -42
  390. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +0 -29
  391. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +0 -31
  392. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +0 -29
  393. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +0 -31
  394. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +0 -128
  395. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +0 -331
  396. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +0 -741
  397. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +0 -48
  398. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +0 -927
  399. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +0 -38
  400. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +0 -40
  401. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +0 -48
  402. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +0 -31
  403. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +0 -146
  404. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +0 -81
  405. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +0 -30
  406. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +0 -158
  407. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +0 -42
  408. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +0 -384
  409. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +0 -36
  410. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +0 -40
  411. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +0 -304
  412. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +0 -772
  413. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +0 -126
  414. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +0 -145
  415. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +0 -271
  416. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +0 -126
  417. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +0 -157
  418. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +0 -159
  419. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +0 -98
  420. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +0 -160
  421. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +0 -31
  422. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +0 -213
  423. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +0 -31
  424. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +0 -145
@@ -1,932 +0,0 @@
1
- /*
2
- * Licensed to the Apache Software Foundation (ASF) under one
3
- * or more contributor license agreements. See the NOTICE file
4
- * distributed with this work for additional information
5
- * regarding copyright ownership. The ASF licenses this file
6
- * to you under the Apache License, Version 2.0 (the
7
- * "License"); you may not use this file except in compliance
8
- * with the License. You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing,
13
- * software distributed under the License is distributed on an
14
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
- * KIND, either express or implied. See the License for the
16
- * specific language governing permissions and limitations
17
- * under the License.
18
- */
19
-
20
- #include <string>
21
- #include <fstream>
22
- #include <iostream>
23
- #include <vector>
24
-
25
- #include <stdlib.h>
26
- #include <sys/stat.h>
27
- #include <sys/types.h>
28
- #include <sstream>
29
- #include "t_generator.h"
30
- #include "platform.h"
31
-
32
- using namespace std;
33
-
34
-
35
- /**
36
- * Erlang code generator.
37
- *
38
- */
39
- class t_erl_generator : public t_generator {
40
- public:
41
- t_erl_generator(
42
- t_program* program,
43
- const std::map<std::string, std::string>& parsed_options,
44
- const std::string& option_string)
45
- : t_generator(program)
46
- {
47
- program_name_[0] = tolower(program_name_[0]);
48
- service_name_[0] = tolower(service_name_[0]);
49
- out_dir_base_ = "gen-erl";
50
- }
51
-
52
- /**
53
- * Init and close methods
54
- */
55
-
56
- void init_generator();
57
- void close_generator();
58
-
59
- /**
60
- * Program-level generation functions
61
- */
62
-
63
- void generate_typedef (t_typedef* ttypedef);
64
- void generate_enum (t_enum* tenum);
65
- void generate_const (t_const* tconst);
66
- void generate_struct (t_struct* tstruct);
67
- void generate_xception (t_struct* txception);
68
- void generate_service (t_service* tservice);
69
-
70
- std::string render_const_value(t_type* type, t_const_value* value);
71
-
72
- /**
73
- * Struct generation code
74
- */
75
-
76
- void generate_erl_struct(t_struct* tstruct, bool is_exception);
77
- void generate_erl_struct_definition(std::ostream& out, std::ostream& hrl_out, t_struct* tstruct, bool is_xception=false, bool is_result=false);
78
- void generate_erl_struct_info(std::ostream& out, t_struct* tstruct);
79
- void generate_erl_function_helpers(t_function* tfunction);
80
-
81
- /**
82
- * Service-level generation functions
83
- */
84
-
85
- void generate_service_helpers (t_service* tservice);
86
- void generate_service_interface (t_service* tservice);
87
- void generate_function_info (t_service* tservice, t_function* tfunction);
88
-
89
- /**
90
- * Helper rendering functions
91
- */
92
-
93
- std::string erl_autogen_comment();
94
- std::string erl_imports();
95
- std::string render_includes();
96
- std::string declare_field(t_field* tfield);
97
- std::string type_name(t_type* ttype);
98
-
99
- std::string function_signature(t_function* tfunction, std::string prefix="");
100
-
101
-
102
- std::string argument_list(t_struct* tstruct);
103
- std::string type_to_enum(t_type* ttype);
104
- std::string generate_type_term(t_type* ttype, bool expand_structs);
105
- std::string type_module(t_type* ttype);
106
-
107
- std::string capitalize(std::string in) {
108
- in[0] = toupper(in[0]);
109
- return in;
110
- }
111
-
112
- std::string uncapitalize(std::string in) {
113
- in[0] = tolower(in[0]);
114
- return in;
115
- }
116
-
117
- private:
118
-
119
- /**
120
- * add function to export list
121
- */
122
-
123
- void export_function(t_function* tfunction, std::string prefix="");
124
- void export_string(std::string name, int num);
125
-
126
- void export_types_function(t_function* tfunction, std::string prefix="");
127
- void export_types_string(std::string name, int num);
128
-
129
- /**
130
- * write out headers and footers for hrl files
131
- */
132
-
133
- void hrl_header(std::ostream& out, std::string name);
134
- void hrl_footer(std::ostream& out, std::string name);
135
-
136
- /**
137
- * stuff to spit out at the top of generated files
138
- */
139
-
140
- bool export_lines_first_;
141
- std::ostringstream export_lines_;
142
-
143
- bool export_types_lines_first_;
144
- std::ostringstream export_types_lines_;
145
-
146
- /**
147
- * File streams
148
- */
149
-
150
- std::ostringstream f_types_;
151
- std::ofstream f_types_file_;
152
- std::ofstream f_types_hrl_file_;
153
-
154
- std::ofstream f_consts_;
155
- std::ostringstream f_service_;
156
- std::ofstream f_service_file_;
157
- std::ofstream f_service_hrl_;
158
-
159
- };
160
-
161
-
162
- /**
163
- * UI for file generation by opening up the necessary file output
164
- * streams.
165
- *
166
- * @param tprogram The program to generate
167
- */
168
- void t_erl_generator::init_generator() {
169
- // Make output directory
170
- MKDIR(get_out_dir().c_str());
171
-
172
- // setup export lines
173
- export_lines_first_ = true;
174
- export_types_lines_first_ = true;
175
-
176
- // types files
177
- string f_types_name = get_out_dir()+program_name_+"_types.erl";
178
- string f_types_hrl_name = get_out_dir()+program_name_+"_types.hrl";
179
-
180
- f_types_file_.open(f_types_name.c_str());
181
- f_types_hrl_file_.open(f_types_hrl_name.c_str());
182
-
183
- hrl_header(f_types_hrl_file_, program_name_ + "_types");
184
-
185
- f_types_file_ <<
186
- erl_autogen_comment() << endl <<
187
- "-module(" << program_name_ << "_types)." << endl <<
188
- erl_imports() << endl;
189
-
190
- f_types_file_ <<
191
- "-include(\"" << program_name_ << "_types.hrl\")." << endl <<
192
- endl;
193
-
194
- f_types_hrl_file_ << render_includes() << endl;
195
-
196
- // consts file
197
- string f_consts_name = get_out_dir()+program_name_+"_constants.hrl";
198
- f_consts_.open(f_consts_name.c_str());
199
-
200
- f_consts_ <<
201
- erl_autogen_comment() << endl <<
202
- erl_imports() << endl <<
203
- "-include(\"" << program_name_ << "_types.hrl\")." << endl <<
204
- endl;
205
- }
206
-
207
- /**
208
- * Boilerplate at beginning and end of header files
209
- */
210
- void t_erl_generator::hrl_header(ostream& out, string name) {
211
- out << "-ifndef(_" << name << "_included)." << endl <<
212
- "-define(_" << name << "_included, yeah)." << endl;
213
- }
214
-
215
- void t_erl_generator::hrl_footer(ostream& out, string name) {
216
- out << "-endif." << endl;
217
- }
218
-
219
- /**
220
- * Renders all the imports necessary for including another Thrift program
221
- */
222
- string t_erl_generator::render_includes() {
223
- const vector<t_program*>& includes = program_->get_includes();
224
- string result = "";
225
- for (size_t i = 0; i < includes.size(); ++i) {
226
- result += "-include(\"" + uncapitalize(includes[i]->get_name()) + "_types.hrl\").\n";
227
- }
228
- if (includes.size() > 0) {
229
- result += "\n";
230
- }
231
- return result;
232
- }
233
-
234
- /**
235
- * Autogen'd comment
236
- */
237
- string t_erl_generator::erl_autogen_comment() {
238
- return
239
- std::string("%%\n") +
240
- "%% Autogenerated by Thrift\n" +
241
- "%%\n" +
242
- "%% DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING\n" +
243
- "%%\n";
244
- }
245
-
246
- /**
247
- * Prints standard thrift imports
248
- */
249
- string t_erl_generator::erl_imports() {
250
- return "";
251
- }
252
-
253
- /**
254
- * Closes the type files
255
- */
256
- void t_erl_generator::close_generator() {
257
- // Close types file
258
- export_types_string("struct_info", 1);
259
-
260
- f_types_file_ << "-export([" << export_types_lines_.str() << "])." << endl;
261
- f_types_file_ << f_types_.str();
262
- f_types_file_ << "struct_info('i am a dummy struct') -> undefined." << endl;
263
-
264
- hrl_footer(f_types_hrl_file_, string("BOGUS"));
265
-
266
- f_types_file_.close();
267
- f_types_hrl_file_.close();
268
- f_consts_.close();
269
- }
270
-
271
- /**
272
- * Generates a typedef. no op
273
- *
274
- * @param ttypedef The type definition
275
- */
276
- void t_erl_generator::generate_typedef(t_typedef* ttypedef) {
277
- }
278
-
279
- /**
280
- * Generates code for an enumerated type. Done using a class to scope
281
- * the values.
282
- *
283
- * @param tenum The enumeration
284
- */
285
- void t_erl_generator::generate_enum(t_enum* tenum) {
286
- vector<t_enum_value*> constants = tenum->get_constants();
287
- vector<t_enum_value*>::iterator c_iter;
288
-
289
- int value = -1;
290
-
291
- for (c_iter = constants.begin(); c_iter != constants.end(); ++c_iter) {
292
- if ((*c_iter)->has_value()) {
293
- value = (*c_iter)->get_value();
294
- } else {
295
- ++value;
296
- }
297
-
298
- string name = capitalize((*c_iter)->get_name());
299
-
300
- f_types_hrl_file_ <<
301
- indent() << "-define(" << program_name_ << "_" << name << ", " << value << ")."<< endl;
302
- }
303
-
304
- f_types_hrl_file_ << endl;
305
- }
306
-
307
- /**
308
- * Generate a constant value
309
- */
310
- void t_erl_generator::generate_const(t_const* tconst) {
311
- t_type* type = tconst->get_type();
312
- string name = capitalize(tconst->get_name());
313
- t_const_value* value = tconst->get_value();
314
-
315
- f_consts_ << "-define(" << program_name_ << "_" << name << ", " << render_const_value(type, value) << ")." << endl << endl;
316
- }
317
-
318
- /**
319
- * Prints the value of a constant with the given type. Note that type checking
320
- * is NOT performed in this function as it is always run beforehand using the
321
- * validate_types method in main.cc
322
- */
323
- string t_erl_generator::render_const_value(t_type* type, t_const_value* value) {
324
- type = get_true_type(type);
325
- std::ostringstream out;
326
-
327
- if (type->is_base_type()) {
328
- t_base_type::t_base tbase = ((t_base_type*)type)->get_base();
329
- switch (tbase) {
330
- case t_base_type::TYPE_STRING:
331
- out << '"' << get_escaped_string(value) << '"';
332
- break;
333
- case t_base_type::TYPE_BOOL:
334
- out << (value->get_integer() > 0 ? "true" : "false");
335
- break;
336
- case t_base_type::TYPE_BYTE:
337
- case t_base_type::TYPE_I16:
338
- case t_base_type::TYPE_I32:
339
- case t_base_type::TYPE_I64:
340
- out << value->get_integer();
341
- break;
342
- case t_base_type::TYPE_DOUBLE:
343
- if (value->get_type() == t_const_value::CV_INTEGER) {
344
- out << value->get_integer();
345
- } else {
346
- out << value->get_double();
347
- }
348
- break;
349
- default:
350
- throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
351
- }
352
- } else if (type->is_enum()) {
353
- indent(out) << value->get_integer();
354
-
355
- } else if (type->is_struct() || type->is_xception()) {
356
- out << "#" << type->get_name() << "{";
357
- const vector<t_field*>& fields = ((t_struct*)type)->get_members();
358
- vector<t_field*>::const_iterator f_iter;
359
- const map<t_const_value*, t_const_value*>& val = value->get_map();
360
- map<t_const_value*, t_const_value*>::const_iterator v_iter;
361
-
362
- bool first = true;
363
- for (v_iter = val.begin(); v_iter != val.end(); ++v_iter) {
364
- t_type* field_type = NULL;
365
- for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
366
- if ((*f_iter)->get_name() == v_iter->first->get_string()) {
367
- field_type = (*f_iter)->get_type();
368
- }
369
- }
370
- if (field_type == NULL) {
371
- throw "type error: " + type->get_name() + " has no field " + v_iter->first->get_string();
372
- }
373
-
374
- if (first) {
375
- first = false;
376
- } else {
377
- out << ",";
378
- }
379
- out << v_iter->first->get_string();
380
- out << " = ";
381
- out << render_const_value(field_type, v_iter->second);
382
- }
383
- indent_down();
384
- indent(out) << "}";
385
-
386
- } else if (type->is_map()) {
387
- t_type* ktype = ((t_map*)type)->get_key_type();
388
- t_type* vtype = ((t_map*)type)->get_val_type();
389
- const map<t_const_value*, t_const_value*>& val = value->get_map();
390
- map<t_const_value*, t_const_value*>::const_iterator v_iter;
391
-
392
- bool first = true;
393
- out << "dict:from_list([";
394
- for (v_iter = val.begin(); v_iter != val.end(); ++v_iter) {
395
- if (first) {
396
- first=false;
397
- } else {
398
- out << ",";
399
- }
400
- out << "("
401
- << render_const_value(ktype, v_iter->first) << ","
402
- << render_const_value(vtype, v_iter->second) << ")";
403
- }
404
- out << "])";
405
-
406
- } else if (type->is_set()) {
407
- t_type* etype;
408
- etype = ((t_set*)type)->get_elem_type();
409
-
410
- bool first = true;
411
- const vector<t_const_value*>& val = value->get_list();
412
- vector<t_const_value*>::const_iterator v_iter;
413
- out << "sets:from_list([";
414
- for (v_iter = val.begin(); v_iter != val.end(); ++v_iter) {
415
- if (first) {
416
- first=false;
417
- } else {
418
- out << ",";
419
- }
420
- out << "(" << render_const_value(etype, *v_iter) << ",true)";
421
- }
422
- out << "])";
423
-
424
- } else if (type->is_list()) {
425
- t_type* etype;
426
- etype = ((t_list*)type)->get_elem_type();
427
- out << "[";
428
-
429
- bool first = true;
430
- const vector<t_const_value*>& val = value->get_list();
431
- vector<t_const_value*>::const_iterator v_iter;
432
- for (v_iter = val.begin(); v_iter != val.end(); ++v_iter) {
433
- if (first) {
434
- first=false;
435
- } else {
436
- out << ",";
437
- }
438
- out << render_const_value(etype, *v_iter);
439
- }
440
- out << "]";
441
- } else {
442
- throw "CANNOT GENERATE CONSTANT FOR TYPE: " + type->get_name();
443
- }
444
- return out.str();
445
- }
446
-
447
- /**
448
- * Generates a struct
449
- */
450
- void t_erl_generator::generate_struct(t_struct* tstruct) {
451
- generate_erl_struct(tstruct, false);
452
- }
453
-
454
- /**
455
- * Generates a struct definition for a thrift exception. Basically the same
456
- * as a struct but extends the Exception class.
457
- *
458
- * @param txception The struct definition
459
- */
460
- void t_erl_generator::generate_xception(t_struct* txception) {
461
- generate_erl_struct(txception, true);
462
- }
463
-
464
- /**
465
- * Generates a struct
466
- */
467
- void t_erl_generator::generate_erl_struct(t_struct* tstruct,
468
- bool is_exception) {
469
- generate_erl_struct_definition(f_types_, f_types_hrl_file_, tstruct, is_exception);
470
- }
471
-
472
- /**
473
- * Generates a struct definition for a thrift data type.
474
- *
475
- * @param tstruct The struct definition
476
- */
477
- void t_erl_generator::generate_erl_struct_definition(ostream& out,
478
- ostream& hrl_out,
479
- t_struct* tstruct,
480
- bool is_exception,
481
- bool is_result)
482
- {
483
- const vector<t_field*>& members = tstruct->get_members();
484
- vector<t_field*>::const_iterator m_iter;
485
-
486
- indent(out) << "%% struct " << type_name(tstruct) << endl;
487
-
488
- if (is_exception) {
489
- }
490
-
491
- out << endl;
492
-
493
- if (members.size() > 0) {
494
- indent(out) << "% -record(" << type_name(tstruct) << ", {";
495
- indent(hrl_out) << "-record(" << type_name(tstruct) << ", {";
496
-
497
- bool first = true;
498
- for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
499
- if (first) {
500
- first = false;
501
- } else {
502
- out << ", ";
503
- hrl_out << ", ";
504
- }
505
- std::string name = uncapitalize((*m_iter)->get_name());
506
- out << name;
507
- hrl_out << name;
508
- }
509
- out << "})." << endl;
510
- hrl_out << "})." << endl;
511
- } else { // no members; explicit comment
512
- indent(out) << "% -record(" << type_name(tstruct) << ", {})." << endl;
513
- indent(hrl_out) << "-record(" << type_name(tstruct) << ", {})." << endl;
514
- }
515
-
516
- out << endl;
517
- hrl_out << endl;
518
-
519
-
520
- generate_erl_struct_info(out, tstruct);
521
- }
522
-
523
- /**
524
- * Generates the read method for a struct
525
- */
526
- void t_erl_generator::generate_erl_struct_info(ostream& out,
527
- t_struct* tstruct) {
528
- string name = type_name(tstruct);
529
-
530
- indent(out) << "struct_info('" << name << "') ->" << endl;
531
- indent_up();
532
-
533
- out << indent() << generate_type_term(tstruct, true) << ";" << endl;
534
-
535
- indent_down();
536
- out << endl;
537
- }
538
-
539
-
540
- /**
541
- * Generates a thrift service.
542
- *
543
- * @param tservice The service definition
544
- */
545
- void t_erl_generator::generate_service(t_service* tservice) {
546
- // somehow this point is reached before the constructor and it's not downcased yet
547
- // ...awesome
548
- service_name_[0] = tolower(service_name_[0]);
549
-
550
- string f_service_hrl_name = get_out_dir()+service_name_+"_thrift.hrl";
551
- string f_service_name = get_out_dir()+service_name_+"_thrift.erl";
552
- f_service_file_.open(f_service_name.c_str());
553
- f_service_hrl_.open(f_service_hrl_name.c_str());
554
-
555
- // Reset service text aggregating stream streams
556
- f_service_.str("");
557
- export_lines_.str("");
558
- export_lines_first_ = true;
559
-
560
- hrl_header(f_service_hrl_, service_name_);
561
-
562
- if (tservice->get_extends() != NULL) {
563
- f_service_hrl_ << "-include(\"" <<
564
- uncapitalize(tservice->get_extends()->get_name()) << "_thrift.hrl\"). % inherit " << endl;
565
- }
566
-
567
- f_service_hrl_ <<
568
- "-include(\"" << program_name_ << "_types.hrl\")." << endl <<
569
- endl;
570
-
571
- // Generate the three main parts of the service (well, two for now in PHP)
572
- generate_service_helpers(tservice); // cpiro: New Erlang Order
573
-
574
- generate_service_interface(tservice);
575
-
576
- // indent_down();
577
-
578
- f_service_file_ <<
579
- erl_autogen_comment() << endl <<
580
- "-module(" << service_name_ << "_thrift)." << endl <<
581
- "-behaviour(thrift_service)." << endl << endl <<
582
- erl_imports() << endl;
583
-
584
- f_service_file_ << "-include(\"" << uncapitalize(tservice->get_name()) << "_thrift.hrl\")." << endl << endl;
585
-
586
- f_service_file_ << "-export([" << export_lines_.str() << "])." << endl << endl;
587
-
588
- f_service_file_ << f_service_.str();
589
-
590
- hrl_footer(f_service_hrl_, f_service_name);
591
-
592
- // Close service file
593
- f_service_file_.close();
594
- f_service_hrl_.close();
595
- }
596
-
597
- /**
598
- * Generates helper functions for a service.
599
- *
600
- * @param tservice The service to generate a header definition for
601
- */
602
- void t_erl_generator::generate_service_helpers(t_service* tservice) {
603
- vector<t_function*> functions = tservice->get_functions();
604
- vector<t_function*>::iterator f_iter;
605
-
606
- // indent(f_service_) <<
607
- // "% HELPER FUNCTIONS AND STRUCTURES" << endl << endl;
608
-
609
- export_string("struct_info", 1);
610
-
611
- for (f_iter = functions.begin(); f_iter != functions.end(); ++f_iter) {
612
- generate_erl_function_helpers(*f_iter);
613
- }
614
- f_service_ << "struct_info('i am a dummy struct') -> undefined." << endl;
615
- }
616
-
617
- /**
618
- * Generates a struct and helpers for a function.
619
- *
620
- * @param tfunction The function
621
- */
622
- void t_erl_generator::generate_erl_function_helpers(t_function* tfunction) {
623
- }
624
-
625
- /**
626
- * Generates a service interface definition.
627
- *
628
- * @param tservice The service to generate a header definition for
629
- */
630
- void t_erl_generator::generate_service_interface(t_service* tservice) {
631
-
632
- export_string("function_info", 2);
633
-
634
- vector<t_function*> functions = tservice->get_functions();
635
- vector<t_function*>::iterator f_iter;
636
- f_service_ << "%%% interface" << endl;
637
- for (f_iter = functions.begin(); f_iter != functions.end(); ++f_iter) {
638
- f_service_ <<
639
- indent() << "% " << function_signature(*f_iter) << endl;
640
-
641
- generate_function_info(tservice, *f_iter);
642
- }
643
-
644
- // Inheritance - pass unknown functions to base class
645
- if (tservice->get_extends() != NULL) {
646
- indent(f_service_) << "function_info(Function, InfoType) ->" << endl;
647
- indent_up();
648
- indent(f_service_) << uncapitalize(tservice->get_extends()->get_name())
649
- << "_thrift:function_info(Function, InfoType)." << endl;
650
- indent_down();
651
- } else {
652
- // Dummy function_info so we don't worry about the ;s
653
- indent(f_service_) << "function_info(xxx, dummy) -> dummy." << endl;
654
- }
655
-
656
- indent(f_service_) << endl;
657
- }
658
-
659
-
660
- /**
661
- * Generates a function_info(FunctionName, params_type) and
662
- * function_info(FunctionName, reply_type)
663
- */
664
- void t_erl_generator::generate_function_info(t_service* tservice,
665
- t_function* tfunction) {
666
-
667
- string name_atom = "'" + tfunction->get_name() + "'";
668
-
669
-
670
-
671
- t_struct* xs = tfunction->get_xceptions();
672
- t_struct* arg_struct = tfunction->get_arglist();
673
-
674
- // function_info(Function, params_type):
675
- indent(f_service_) <<
676
- "function_info(" << name_atom << ", params_type) ->" << endl;
677
- indent_up();
678
-
679
- indent(f_service_) << generate_type_term(arg_struct, true) << ";" << endl;
680
-
681
- indent_down();
682
-
683
- // function_info(Function, reply_type):
684
- indent(f_service_) <<
685
- "function_info(" << name_atom << ", reply_type) ->" << endl;
686
- indent_up();
687
-
688
- if (!tfunction->get_returntype()->is_void())
689
- indent(f_service_) <<
690
- generate_type_term(tfunction->get_returntype(), false) << ";" << endl;
691
- else if (tfunction->is_oneway())
692
- indent(f_service_) << "oneway_void;" << endl;
693
- else
694
- indent(f_service_) << "{struct, []}" << ";" << endl;
695
- indent_down();
696
-
697
- // function_info(Function, exceptions):
698
- indent(f_service_) <<
699
- "function_info(" << name_atom << ", exceptions) ->" << endl;
700
- indent_up();
701
- indent(f_service_) << generate_type_term(xs, true) << ";" << endl;
702
- indent_down();
703
- }
704
-
705
-
706
- /**
707
- * Declares a field, which may include initialization as necessary.
708
- *
709
- * @param ttype The type
710
- */
711
- string t_erl_generator::declare_field(t_field* tfield) { // TODO
712
- string result = "@" + tfield->get_name();
713
- t_type* type = get_true_type(tfield->get_type());
714
- if (tfield->get_value() != NULL) {
715
- result += " = " + render_const_value(type, tfield->get_value());
716
- } else {
717
- result += " = nil";
718
- }
719
- return result;
720
- }
721
-
722
- /**
723
- * Renders a function signature of the form 'type name(args)'
724
- *
725
- * @param tfunction Function definition
726
- * @return String of rendered function definition
727
- */
728
- string t_erl_generator::function_signature(t_function* tfunction,
729
- string prefix) {
730
- return
731
- prefix + tfunction->get_name() +
732
- "(This" + capitalize(argument_list(tfunction->get_arglist())) + ")";
733
- }
734
-
735
- /**
736
- * Add a function to the exports list
737
- */
738
- void t_erl_generator::export_string(string name, int num) {
739
- if (export_lines_first_) {
740
- export_lines_first_ = false;
741
- } else {
742
- export_lines_ << ", ";
743
- }
744
- export_lines_ << name << "/" << num;
745
- }
746
-
747
- void t_erl_generator::export_types_function(t_function* tfunction,
748
- string prefix) {
749
-
750
- export_types_string(prefix + tfunction->get_name(),
751
- 1 // This
752
- + ((tfunction->get_arglist())->get_members()).size()
753
- );
754
- }
755
-
756
- void t_erl_generator::export_types_string(string name, int num) {
757
- if (export_types_lines_first_) {
758
- export_types_lines_first_ = false;
759
- } else {
760
- export_types_lines_ << ", ";
761
- }
762
- export_types_lines_ << name << "/" << num;
763
- }
764
-
765
- void t_erl_generator::export_function(t_function* tfunction,
766
- string prefix) {
767
-
768
- export_string(prefix + tfunction->get_name(),
769
- 1 // This
770
- + ((tfunction->get_arglist())->get_members()).size()
771
- );
772
- }
773
-
774
-
775
- /**
776
- * Renders a field list
777
- */
778
- string t_erl_generator::argument_list(t_struct* tstruct) {
779
- string result = "";
780
-
781
- const vector<t_field*>& fields = tstruct->get_members();
782
- vector<t_field*>::const_iterator f_iter;
783
- bool first = true;
784
- for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
785
- if (first) {
786
- first = false;
787
- result += ", "; // initial comma to compensate for initial This
788
- } else {
789
- result += ", ";
790
- }
791
- result += capitalize((*f_iter)->get_name());
792
- }
793
- return result;
794
- }
795
-
796
- string t_erl_generator::type_name(t_type* ttype) {
797
- string prefix = "";
798
- string name = ttype->get_name();
799
-
800
- if (ttype->is_struct() || ttype->is_xception() || ttype->is_service()) {
801
- name = uncapitalize(ttype->get_name());
802
- }
803
-
804
- return prefix + name;
805
- }
806
-
807
- /**
808
- * Converts the parse type to a Erlang "type" (macro for int constants)
809
- */
810
- string t_erl_generator::type_to_enum(t_type* type) {
811
- type = get_true_type(type);
812
-
813
- if (type->is_base_type()) {
814
- t_base_type::t_base tbase = ((t_base_type*)type)->get_base();
815
- switch (tbase) {
816
- case t_base_type::TYPE_VOID:
817
- throw "NO T_VOID CONSTRUCT";
818
- case t_base_type::TYPE_STRING:
819
- return "?tType_STRING";
820
- case t_base_type::TYPE_BOOL:
821
- return "?tType_BOOL";
822
- case t_base_type::TYPE_BYTE:
823
- return "?tType_BYTE";
824
- case t_base_type::TYPE_I16:
825
- return "?tType_I16";
826
- case t_base_type::TYPE_I32:
827
- return "?tType_I32";
828
- case t_base_type::TYPE_I64:
829
- return "?tType_I64";
830
- case t_base_type::TYPE_DOUBLE:
831
- return "?tType_DOUBLE";
832
- }
833
- } else if (type->is_enum()) {
834
- return "?tType_I32";
835
- } else if (type->is_struct() || type->is_xception()) {
836
- return "?tType_STRUCT";
837
- } else if (type->is_map()) {
838
- return "?tType_MAP";
839
- } else if (type->is_set()) {
840
- return "?tType_SET";
841
- } else if (type->is_list()) {
842
- return "?tType_LIST";
843
- }
844
-
845
- throw "INVALID TYPE IN type_to_enum: " + type->get_name();
846
- }
847
-
848
-
849
- /**
850
- * Generate an Erlang term which represents a thrift type
851
- */
852
- std::string t_erl_generator::generate_type_term(t_type* type,
853
- bool expand_structs) {
854
- type = get_true_type(type);
855
-
856
-
857
- if (type->is_base_type()) {
858
- t_base_type::t_base tbase = ((t_base_type*)type)->get_base();
859
- switch (tbase) {
860
- case t_base_type::TYPE_VOID:
861
- throw "NO T_VOID CONSTRUCT";
862
- case t_base_type::TYPE_STRING:
863
- return "string";
864
- case t_base_type::TYPE_BOOL:
865
- return "bool";
866
- case t_base_type::TYPE_BYTE:
867
- return "byte";
868
- case t_base_type::TYPE_I16:
869
- return "i16";
870
- case t_base_type::TYPE_I32:
871
- return "i32";
872
- case t_base_type::TYPE_I64:
873
- return "i64";
874
- case t_base_type::TYPE_DOUBLE:
875
- return "double";
876
- }
877
- } else if (type->is_enum()) {
878
- return "i32";
879
- } else if (type->is_struct() || type->is_xception()) {
880
- if (expand_structs) {
881
- // Convert to format: {struct, [{Fid, TypeTerm}, {Fid, TypeTerm}...]}
882
- std::stringstream ret;
883
-
884
-
885
- ret << "{struct, [";
886
-
887
- int first = true;
888
- const vector<t_field*>& fields = ((t_struct*)type)->get_members();
889
- vector<t_field*>::const_iterator f_iter;
890
-
891
- for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
892
- // Comma separate the tuples
893
- if (!first) ret << "," << endl << indent();
894
- first = false;
895
-
896
- ret << "{" << (*f_iter)->get_key() << ", " <<
897
- generate_type_term((*f_iter)->get_type(), false) << "}";
898
- }
899
-
900
- ret << "]}" << endl;
901
-
902
- return ret.str();
903
- } else {
904
- return "{struct, {'" + type_module(type) + "', '" + type_name(type) + "'}}";
905
- }
906
- } else if (type->is_map()) {
907
- // {map, KeyType, ValType}
908
- t_type *key_type = ((t_map*)type)->get_key_type();
909
- t_type *val_type = ((t_map*)type)->get_val_type();
910
-
911
- return "{map, " + generate_type_term(key_type, false) + ", " +
912
- generate_type_term(val_type, false) + "}";
913
-
914
- } else if (type->is_set()) {
915
- t_type *elem_type = ((t_set*)type)->get_elem_type();
916
-
917
- return "{set, " + generate_type_term(elem_type, false) + "}";
918
-
919
- } else if (type->is_list()) {
920
- t_type *elem_type = ((t_list*)type)->get_elem_type();
921
-
922
- return "{list, " + generate_type_term(elem_type, false) + "}";
923
- }
924
-
925
- throw "INVALID TYPE IN type_to_enum: " + type->get_name();
926
- }
927
-
928
- std::string t_erl_generator::type_module(t_type* ttype) {
929
- return uncapitalize(ttype->get_program()->get_name()) + "_types";
930
- }
931
-
932
- THRIFT_REGISTER_GENERATOR(erl, "Erlang", "");