rufus-lua-win 5.1.5

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 (459) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +69 -0
  6. data/Rakefile +1 -0
  7. data/lib/rufus/lua/win.rb +18 -0
  8. data/lib/rufus/lua/win/version.rb +7 -0
  9. data/rufus-lua-win.gemspec +23 -0
  10. data/vendor/lua/bin/liblua.dll +0 -0
  11. data/vendor/lua/lib/lua/LuaXml.lua +119 -0
  12. data/vendor/lua/lib/lua/alien.lua +250 -0
  13. data/vendor/lua/lib/lua/alien/core.dll +0 -0
  14. data/vendor/lua/lib/lua/alien/struct.dll +0 -0
  15. data/vendor/lua/lib/lua/base.lua +536 -0
  16. data/vendor/lua/lib/lua/bin.lua +20 -0
  17. data/vendor/lua/lib/lua/bit.dll +0 -0
  18. data/vendor/lua/lib/lua/cdlua.dll +0 -0
  19. data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
  20. data/vendor/lua/lib/lua/cdluagl.dll +0 -0
  21. data/vendor/lua/lib/lua/cdluaim.dll +0 -0
  22. data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
  23. data/vendor/lua/lib/lua/copas.lua +543 -0
  24. data/vendor/lua/lib/lua/coxpcall.lua +57 -0
  25. data/vendor/lua/lib/lua/date.lua +745 -0
  26. data/vendor/lua/lib/lua/debug_ext.lua +84 -0
  27. data/vendor/lua/lib/lua/debug_init.lua +2 -0
  28. data/vendor/lua/lib/lua/des56.dll +0 -0
  29. data/vendor/lua/lib/lua/dist/config.lua +109 -0
  30. data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
  31. data/vendor/lua/lib/lua/dist/depends.lua +601 -0
  32. data/vendor/lua/lib/lua/dist/git.lua +307 -0
  33. data/vendor/lua/lib/lua/dist/init.lua +278 -0
  34. data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
  35. data/vendor/lua/lib/lua/dist/package.lua +583 -0
  36. data/vendor/lua/lib/lua/dist/sys.lua +367 -0
  37. data/vendor/lua/lib/lua/dist/utils.lua +130 -0
  38. data/vendor/lua/lib/lua/ex.dll +0 -0
  39. data/vendor/lua/lib/lua/fstable.lua +116 -0
  40. data/vendor/lua/lib/lua/getopt.lua +273 -0
  41. data/vendor/lua/lib/lua/git.lua +5 -0
  42. data/vendor/lua/lib/lua/git/core.dll +0 -0
  43. data/vendor/lua/lib/lua/git/objects.lua +121 -0
  44. data/vendor/lua/lib/lua/git/pack.lua +316 -0
  45. data/vendor/lua/lib/lua/git/protocol.lua +188 -0
  46. data/vendor/lua/lib/lua/git/repo.lua +283 -0
  47. data/vendor/lua/lib/lua/git/util.lua +233 -0
  48. data/vendor/lua/lib/lua/gzio.dll +0 -0
  49. data/vendor/lua/lib/lua/gzip.lua +81 -0
  50. data/vendor/lua/lib/lua/iconv.dll +0 -0
  51. data/vendor/lua/lib/lua/imlua.dll +0 -0
  52. data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
  53. data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
  54. data/vendor/lua/lib/lua/imlua_process.dll +0 -0
  55. data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
  56. data/vendor/lua/lib/lua/io_ext.lua +115 -0
  57. data/vendor/lua/lib/lua/iuplua.dll +0 -0
  58. data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
  59. data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
  60. data/vendor/lua/lib/lua/iupluacd.dll +0 -0
  61. data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
  62. data/vendor/lua/lib/lua/iupluagl.dll +0 -0
  63. data/vendor/lua/lib/lua/iupluaim.dll +0 -0
  64. data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
  65. data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
  66. data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
  67. data/vendor/lua/lib/lua/lanes.lua +591 -0
  68. data/vendor/lua/lib/lua/lanes/core.dll +0 -0
  69. data/vendor/lua/lib/lua/lcs.lua +55 -0
  70. data/vendor/lua/lib/lua/lemock.lua +659 -0
  71. data/vendor/lua/lib/lua/lfs.dll +0 -0
  72. data/vendor/lua/lib/lua/list.lua +375 -0
  73. data/vendor/lua/lib/lua/logging.lua +189 -0
  74. data/vendor/lua/lib/lua/logging/console.lua +22 -0
  75. data/vendor/lua/lib/lua/logging/email.lua +44 -0
  76. data/vendor/lua/lib/lua/logging/file.lua +55 -0
  77. data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
  78. data/vendor/lua/lib/lua/logging/socket.lua +35 -0
  79. data/vendor/lua/lib/lua/logging/sql.lua +64 -0
  80. data/vendor/lua/lib/lua/loop/base.lua +68 -0
  81. data/vendor/lua/lib/lua/loop/cached.lua +312 -0
  82. data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
  83. data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
  84. data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
  85. data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
  86. data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
  87. data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
  88. data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
  89. data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
  90. data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
  91. data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
  92. data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
  93. data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
  94. data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
  95. data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
  96. data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
  97. data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
  98. data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
  99. data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
  100. data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
  101. data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
  102. data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
  103. data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
  104. data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
  105. data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
  106. data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
  107. data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
  108. data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
  109. data/vendor/lua/lib/lua/loop/simple.lua +75 -0
  110. data/vendor/lua/lib/lua/loop/table.lua +71 -0
  111. data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
  112. data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
  113. data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
  114. data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
  115. data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
  116. data/vendor/lua/lib/lua/lpeg.dll +0 -0
  117. data/vendor/lua/lib/lua/ltn12.lua +292 -0
  118. data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
  119. data/vendor/lua/lib/lua/luacurl.dll +0 -0
  120. data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
  121. data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
  122. data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
  123. data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
  124. data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
  125. data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
  126. data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
  127. data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
  128. data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
  129. data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
  130. data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
  131. data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
  132. data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
  133. data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
  134. data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
  135. data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
  136. data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
  137. data/vendor/lua/lib/lua/luagl.dll +0 -0
  138. data/vendor/lua/lib/lua/luaglu.dll +0 -0
  139. data/vendor/lua/lib/lua/luaidl.lua +113 -0
  140. data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
  141. data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
  142. data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
  143. data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
  144. data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
  145. data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
  146. data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
  147. data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
  148. data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
  149. data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
  150. data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
  151. data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
  152. data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
  153. data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
  154. data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
  155. data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
  156. data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
  157. data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
  158. data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
  159. data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
  160. data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
  161. data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
  162. data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
  163. data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
  164. data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
  165. data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
  166. data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
  167. data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
  168. data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
  169. data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
  170. data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
  171. data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
  172. data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
  173. data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
  174. data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
  175. data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
  176. data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
  177. data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
  178. data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
  179. data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
  180. data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
  181. data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
  182. data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
  183. data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
  184. data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
  185. data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
  186. data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
  187. data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
  188. data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
  189. data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
  190. data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
  191. data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
  192. data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
  193. data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
  194. data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
  195. data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
  196. data/vendor/lua/lib/lua/luars232.dll +0 -0
  197. data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
  198. data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
  199. data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
  200. data/vendor/lua/lib/lua/luaunit.lua +601 -0
  201. data/vendor/lua/lib/lua/lxp.dll +0 -0
  202. data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
  203. data/vendor/lua/lib/lua/math_ext.lua +27 -0
  204. data/vendor/lua/lib/lua/mbox.lua +53 -0
  205. data/vendor/lua/lib/lua/md5.lua +19 -0
  206. data/vendor/lua/lib/lua/md5/core.dll +0 -0
  207. data/vendor/lua/lib/lua/metalua.lua +0 -0
  208. data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
  209. data/vendor/lua/lib/lua/metalua/base.lua +104 -0
  210. data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
  211. data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
  212. data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
  213. data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
  214. data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
  215. data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
  216. data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
  217. data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
  218. data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
  219. data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
  220. data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
  221. data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
  222. data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
  223. data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
  224. data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
  225. data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
  226. data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
  227. data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
  228. data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
  229. data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
  230. data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
  231. data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
  232. data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
  233. data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
  234. data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
  235. data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
  236. data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
  237. data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
  238. data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
  239. data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
  240. data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
  241. data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
  242. data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
  243. data/vendor/lua/lib/lua/mime.lua +87 -0
  244. data/vendor/lua/lib/lua/mime/core.dll +0 -0
  245. data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
  246. data/vendor/lua/lib/lua/modules.lua +16 -0
  247. data/vendor/lua/lib/lua/object.lua +56 -0
  248. data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
  249. data/vendor/lua/lib/lua/oil/arch.lua +27 -0
  250. data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
  251. data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
  252. data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
  253. data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
  254. data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
  255. data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
  256. data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
  257. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
  258. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
  259. data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
  260. data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
  261. data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
  262. data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
  263. data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
  264. data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
  265. data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
  266. data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
  267. data/vendor/lua/lib/lua/oil/assert.lua +87 -0
  268. data/vendor/lua/lib/lua/oil/builder.lua +45 -0
  269. data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
  270. data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
  271. data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
  272. data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
  273. data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
  274. data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
  275. data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
  276. data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
  277. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
  278. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
  279. data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
  280. data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
  281. data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
  282. data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
  283. data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
  284. data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
  285. data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
  286. data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
  287. data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
  288. data/vendor/lua/lib/lua/oil/compat.lua +846 -0
  289. data/vendor/lua/lib/lua/oil/component.lua +1 -0
  290. data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
  291. data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
  292. data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
  293. data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
  294. data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
  295. data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
  296. data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
  297. data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
  298. data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
  299. data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
  300. data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
  301. data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
  302. data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
  303. data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
  304. data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
  305. data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
  306. data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
  307. data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
  308. data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
  309. data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
  310. data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
  311. data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
  312. data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
  313. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
  314. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
  315. data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
  316. data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
  317. data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
  318. data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
  319. data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
  320. data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
  321. data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
  322. data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
  323. data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
  324. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
  325. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
  326. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
  327. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
  328. data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
  329. data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
  330. data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
  331. data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
  332. data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
  333. data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
  334. data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
  335. data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
  336. data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
  337. data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
  338. data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
  339. data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
  340. data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
  341. data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
  342. data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
  343. data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
  344. data/vendor/lua/lib/lua/oil/oo.lua +1 -0
  345. data/vendor/lua/lib/lua/oil/port.lua +1 -0
  346. data/vendor/lua/lib/lua/oil/properties.lua +57 -0
  347. data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
  348. data/vendor/lua/lib/lua/package_ext.lua +15 -0
  349. data/vendor/lua/lib/lua/parser.lua +268 -0
  350. data/vendor/lua/lib/lua/pl/Date.lua +555 -0
  351. data/vendor/lua/lib/lua/pl/List.lua +613 -0
  352. data/vendor/lua/lib/lua/pl/Map.lua +113 -0
  353. data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
  354. data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
  355. data/vendor/lua/lib/lua/pl/Set.lua +153 -0
  356. data/vendor/lua/lib/lua/pl/app.lua +165 -0
  357. data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
  358. data/vendor/lua/lib/lua/pl/class.lua +180 -0
  359. data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
  360. data/vendor/lua/lib/lua/pl/config.lua +176 -0
  361. data/vendor/lua/lib/lua/pl/data.lua +606 -0
  362. data/vendor/lua/lib/lua/pl/dir.lua +475 -0
  363. data/vendor/lua/lib/lua/pl/file.lua +70 -0
  364. data/vendor/lua/lib/lua/pl/func.lua +376 -0
  365. data/vendor/lua/lib/lua/pl/init.lua +68 -0
  366. data/vendor/lua/lib/lua/pl/input.lua +173 -0
  367. data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
  368. data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
  369. data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
  370. data/vendor/lua/lib/lua/pl/operator.lua +201 -0
  371. data/vendor/lua/lib/lua/pl/path.lua +398 -0
  372. data/vendor/lua/lib/lua/pl/permute.lua +63 -0
  373. data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
  374. data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
  375. data/vendor/lua/lib/lua/pl/seq.lua +551 -0
  376. data/vendor/lua/lib/lua/pl/sip.lua +344 -0
  377. data/vendor/lua/lib/lua/pl/strict.lua +70 -0
  378. data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
  379. data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
  380. data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
  381. data/vendor/lua/lib/lua/pl/template.lua +103 -0
  382. data/vendor/lua/lib/lua/pl/test.lua +135 -0
  383. data/vendor/lua/lib/lua/pl/text.lua +243 -0
  384. data/vendor/lua/lib/lua/pl/utils.lua +550 -0
  385. data/vendor/lua/lib/lua/pl/xml.lua +689 -0
  386. data/vendor/lua/lib/lua/profiler.dll +0 -0
  387. data/vendor/lua/lib/lua/re.lua +248 -0
  388. data/vendor/lua/lib/lua/rex_onig.dll +0 -0
  389. data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
  390. data/vendor/lua/lib/lua/rex_posix.dll +0 -0
  391. data/vendor/lua/lib/lua/rings.dll +0 -0
  392. data/vendor/lua/lib/lua/serialize.lua +193 -0
  393. data/vendor/lua/lib/lua/set.lua +149 -0
  394. data/vendor/lua/lib/lua/socket.lua +133 -0
  395. data/vendor/lua/lib/lua/socket/core.dll +0 -0
  396. data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
  397. data/vendor/lua/lib/lua/socket/http.lua +350 -0
  398. data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
  399. data/vendor/lua/lib/lua/socket/tp.lua +123 -0
  400. data/vendor/lua/lib/lua/socket/url.lua +297 -0
  401. data/vendor/lua/lib/lua/ssl.dll +0 -0
  402. data/vendor/lua/lib/lua/ssl.lua +93 -0
  403. data/vendor/lua/lib/lua/ssl/https.lua +138 -0
  404. data/vendor/lua/lib/lua/stable.lua +28 -0
  405. data/vendor/lua/lib/lua/std.lua +16 -0
  406. data/vendor/lua/lib/lua/strbuf.lua +32 -0
  407. data/vendor/lua/lib/lua/strict.lua +45 -0
  408. data/vendor/lua/lib/lua/string_ext.lua +274 -0
  409. data/vendor/lua/lib/lua/table_ext.lua +117 -0
  410. data/vendor/lua/lib/lua/tar.lua +262 -0
  411. data/vendor/lua/lib/lua/task.dll +0 -0
  412. data/vendor/lua/lib/lua/tree.lua +81 -0
  413. data/vendor/lua/lib/lua/unicode.dll +0 -0
  414. data/vendor/lua/lib/lua/verbose_require.lua +11 -0
  415. data/vendor/lua/lib/lua/vstruct.lua +86 -0
  416. data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
  417. data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
  418. data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
  419. data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
  420. data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
  421. data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
  422. data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
  423. data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
  424. data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
  425. data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
  426. data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
  427. data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
  428. data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
  429. data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
  430. data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
  431. data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
  432. data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
  433. data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
  434. data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
  435. data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
  436. data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
  437. data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
  438. data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
  439. data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
  440. data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
  441. data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
  442. data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
  443. data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
  444. data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
  445. data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
  446. data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
  447. data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
  448. data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
  449. data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
  450. data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
  451. data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
  452. data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
  453. data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
  454. data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
  455. data/vendor/lua/lib/lua/wx.dll +0 -0
  456. data/vendor/lua/lib/lua/xml.lua +75 -0
  457. data/vendor/lua/lib/lua/zip.dll +0 -0
  458. data/vendor/lua/lib/lua/zlib.dll +0 -0
  459. metadata +529 -0
@@ -0,0 +1,126 @@
1
+ --------------------------------------------------------------------------------
2
+ ------------------------------ ##### ## ------------------------------
3
+ ------------------------------ ## ## # ## ------------------------------
4
+ ------------------------------ ## ## ## ## ------------------------------
5
+ ------------------------------ ## ## # ## ------------------------------
6
+ ------------------------------ ##### ### ###### ------------------------------
7
+ -------------------------------- --------------------------------
8
+ ----------------------- An Object Request Broker in Lua ------------------------
9
+ --------------------------------------------------------------------------------
10
+ -- Project: OiL - ORB in Lua: An Object Request Broker in Lua --
11
+ -- Release: 0.5 alpha --
12
+ -- Title : Event Service --
13
+ -- Authors: Leonardo S. A. Maciel <leonardo@maciel.org> --
14
+ --------------------------------------------------------------------------------
15
+ -- Interface: --
16
+ -- new() Creates a new instance of a CORBA Event Channel --
17
+ --------------------------------------------------------------------------------
18
+ -- Notes: --
19
+ -- This implementation currently does not support typed events. --
20
+ -- This implementation currently does not support pull event model. --
21
+ --------------------------------------------------------------------------------
22
+
23
+ local oil = require "oil"
24
+ local oo = require "oil.oo"
25
+ local assert = require "oil.assert"
26
+ local EventQueue = require "oil.corba.services.event.EventQueue"
27
+ local EventFactory = require "oil.corba.services.event.EventFactory"
28
+ local EventDispatcher = require "oil.corba.services.event.SingleSynchronousDispatcher"
29
+ --local EventDispatcher = require "oil.corba.services.event.SingleDeferredDispatcher"
30
+ local ConsumerAdmin = require "oil.corba.services.event.ConsumerAdmin"
31
+ local SupplierAdmin = require "oil.corba.services.event.SupplierAdmin"
32
+
33
+ module "oil.corba.services.event"
34
+
35
+ --------------------------------------------------------------------------------
36
+ -- In this new version, ConsumerAdmin and SupplierAdmin objects were
37
+ -- suppressed and the event channel implements their interface.
38
+ --
39
+
40
+ local EventChannel = oo.class()
41
+
42
+ function EventChannel.__init(class)
43
+ self = oo.rawnew(class, {
44
+ push_consumer_count = 0,
45
+ push_supplier_count = 0,
46
+ event_queue = EventQueue(),
47
+ event_factory = EventFactory()
48
+ })
49
+ self.event_dispatcher = EventDispatcher(self.event_queue)
50
+ self.consumer_admin = ConsumerAdmin(self)
51
+ self.supplier_admin = SupplierAdmin(self)
52
+ return self
53
+ end
54
+
55
+ -- The destroy operation destroys the event channel. Destroying an event channel
56
+ -- destroys all ConsumerAdmin and SupplierAdmin objects that were created via
57
+ -- that channel. Destruction of a ConsumerAdmin or SupplierAdmin object causes
58
+ -- the implementation to invoke the disconnect operation on all proxies that were
59
+ -- created via that ConsumerAdmin or SupplierAdmin object.
60
+
61
+ function EventChannel:destroy()
62
+ self.event_queue = nil
63
+ self.event_factory = nil
64
+ self.consumer_admin:destroy()
65
+ self.consumer_admin = nil
66
+ self.supplier_admin:destroy()
67
+ self.supplier_admin = nil
68
+ self.event_dispatcher = nil
69
+ self.push_consumer_count = 0
70
+ self.push_supplier_count = 0
71
+ end
72
+
73
+ -- returns an object reference that supports the ConsumerAdmin interface
74
+
75
+ function EventChannel:for_consumers()
76
+ return self.consumer_admin
77
+ end
78
+
79
+ -- returns an object reference that supports the SupplierAdmin interface
80
+
81
+ function EventChannel:for_suppliers()
82
+ return self.supplier_admin
83
+ end
84
+
85
+ -- invoked by ConsumerAdmin
86
+
87
+ function EventChannel:add_push_consumer(push_consumer)
88
+ self.event_dispatcher:add_consumer(push_consumer)
89
+ self.push_consumer_count = self.push_consumer_count + 1
90
+ end
91
+
92
+ -- invoked by ConsumerAdmin
93
+
94
+ function EventChannel:rem_push_consumer(push_consumer)
95
+ self.event_dispatcher:rem_consumer(push_consumer)
96
+ self.push_consumer_count = self.push_consumer_count - 1
97
+ end
98
+
99
+ -- invoked by SupplierAdmin
100
+
101
+ function EventChannel:add_push_supplier(push_supplier)
102
+ self.push_supplier_count = self.push_supplier_count + 1
103
+ end
104
+
105
+ -- invoked by SupplierAdmin
106
+
107
+ function EventChannel:rem_push_supplier(push_supplier)
108
+ self.push_supplier_count = self.push_supplier_count - 1
109
+ end
110
+
111
+
112
+ --------------------------------------------------------------------------------
113
+ -- Creates a new instance of a CORBA Event Channel -----------------------------
114
+
115
+ -- @param props table [optional] Properties instance.
116
+
117
+ -- @return 1 table CORBA object which is an untyped Event Channel.
118
+ -- @return 2 string Repository ID of interface supported by the Event Channel.
119
+ -- @return 3 string Default Event Channel object key.
120
+
121
+ function new()
122
+ return EventChannel(),
123
+ "DefaultEventChannel",
124
+ "IDL:omg.org/CosEventChannelAdmin/EventChannel:1.0"
125
+ end
126
+
@@ -0,0 +1,50 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+ local UnorderedArraySet = require "loop.collection.UnorderedArraySet"
5
+ local ProxyPushSupplier = require "oil.corba.services.event.ProxyPushSupplier"
6
+
7
+ module("oil.corba.services.event.ConsumerAdmin", oo.class)
8
+
9
+ function __init(class, channel)
10
+ return oo.rawnew(class, {
11
+ channel = channel,
12
+ proxypushsuppliers = UnorderedArraySet()
13
+ })
14
+ end
15
+
16
+ -- The obtain_push_supplier operation returns a ProxyPushSupplier object. The
17
+ -- ProxyPushSupplier object is then used to connect a push-style consumer.
18
+
19
+ function obtain_push_supplier(self)
20
+ return ProxyPushSupplier(self)
21
+ end
22
+
23
+ -- invoked by ProxyPushSupplier to signal it's connected
24
+
25
+ function add_push_consumer(self, proxy, push_consumer)
26
+ self.proxypushsuppliers:add(proxy)
27
+ self.channel:add_push_consumer(push_consumer)
28
+ end
29
+
30
+ -- invoked by ProxyPushSupplier to signal it's disconnected
31
+
32
+ function rem_push_consumer(self, proxy, push_consumer)
33
+ assert.results(self.proxypushsuppliers:contains(proxy))
34
+ self.proxypushsuppliers:remove(proxy)
35
+ self.channel:rem_push_consumer(push_consumer)
36
+ end
37
+
38
+ -- invoked by the channel to disconnect all proxies of the admin.
39
+ -- must reverse iterate over proxypushsuppliers because the disconnection
40
+ -- removes the consumer from the array.
41
+
42
+ function destroy(self)
43
+ for i=#self.proxypushsuppliers,1,-1 do
44
+ local proxy = self.proxypushsuppliers[i]
45
+ oil.pcall(proxy.disconnect_push_supplier, proxy)
46
+ end
47
+ self.proxypushsuppliers = nil
48
+ self.channel = nil
49
+ end
50
+
@@ -0,0 +1,15 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+ local os = require "os"
5
+
6
+ module("oil.corba.services.event.EventFactory", oo.class)
7
+
8
+ function create(self, data)
9
+ assert.type(data, "table")
10
+ return {
11
+ created = os.time(),
12
+ data = data
13
+ }
14
+ end
15
+
@@ -0,0 +1,37 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+
5
+ module("oil.corba.services.event.EventQueue", oo.class)
6
+
7
+ -- filo por enquanto
8
+
9
+ function __init(class, scheduler)
10
+ return oo.rawnew(class, {
11
+ count = 0,
12
+ scheduler = scheduler or oil.tasks
13
+ })
14
+ end
15
+
16
+ function enqueue(self, event)
17
+ self.count = self.count + 1
18
+ self[self.count] = event
19
+ if self.count > 0 and self.waiting_thread then
20
+ local t = self.waiting_thread
21
+ self.waiting_thread = nil
22
+ self.scheduler:resume(t)
23
+ end
24
+ end
25
+
26
+ function dequeue(self)
27
+ if self.count == 0 then
28
+ assert.results(self.waiting_thread == nil)
29
+ self.waiting_thread = self.scheduler.current
30
+ self.scheduler:suspend()
31
+ end
32
+ local e = self[self.count]
33
+ self[self.count] = nil
34
+ self.count = self.count - 1
35
+ return e
36
+ end
37
+
@@ -0,0 +1,75 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+
5
+ module("oil.corba.services.event.ProxyPushConsumer", oo.class)
6
+
7
+ -- Proxies are in one of three states: disconnected, connected, or destroyed.
8
+ -- Push/pull operations are only valid in the connected state.
9
+
10
+ function __init(class, admin)
11
+ assert.results(admin)
12
+ return oo.rawnew(class, {
13
+ admin = admin,
14
+ connected = false,
15
+ push_supplier = nil
16
+ })
17
+ end
18
+
19
+ -- A supplier communicates event data to the consumer by invoking the push
20
+ -- operation and passing the event data as a parameter.
21
+
22
+ function push(self, data)
23
+ if not self.connected then
24
+ assert.exception{"IDL:omg.org/CosEventComm/Disconnected:1.0"}
25
+ end
26
+ local channel = self.admin.channel
27
+ local event = channel.event_factory:create(data)
28
+ channel.event_queue:enqueue(event)
29
+ end
30
+
31
+ -- A nil object reference may be passed to the connect_push_supplier operation.
32
+ -- If so a channel cannot invoke the disconnect_push_supplier operation on the
33
+ -- supplier. The supplier may be disconnected from the channel without being
34
+ -- informed. If a nonnil reference is passed to connect_push_supplier, the
35
+ -- implementation calls disconnect_push_supplier via that reference when the
36
+ -- ProxyPushConsumer is destroyed.
37
+ --
38
+ -- If the ProxyPushConsumer is already connected to a PushSupplier, then the
39
+ -- AlreadyConnected exception is raised.
40
+
41
+ function connect_push_supplier(self, push_supplier)
42
+ if self.connected then
43
+ assert.exception{"IDL:omg.org/CosEventChannelAdmin/AlreadyConnected:1.0"}
44
+ end
45
+ self.push_supplier = push_supplier
46
+ self.admin:add_push_supplier(self, push_supplier)
47
+ self.connected = true
48
+ end
49
+
50
+ -- The disconnect_push_consumer operation terminates the event communication.
51
+ -- It releases resources used at the consumer to support the event
52
+ -- communication. The PushConsumer object reference is disposed. Calling
53
+ -- disconnect_push_consumer causes the implementation to call the
54
+ -- disconnect_push_supplier operation on the corresponding PushSupplier
55
+ -- interface (if that interface is known).
56
+ --
57
+ -- Calling a disconnect operation on a consumer or supplier interface may cause
58
+ -- a call to the corresponding disconnect operation on the connected supplier
59
+ -- or consumer. Implementations must take care to avoid infinite recursive
60
+ -- calls to these disconnect operations. If a consumer or supplier has received
61
+ -- a disconnect call and subsequently receives another disconnect call, it shall
62
+ -- raise a CORBA::OBJECT_NOT_EXIST exception.
63
+
64
+ function disconnect_push_consumer(self)
65
+ if not self.connected then
66
+ assert.exception{"IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"}
67
+ end
68
+ self.connected = false
69
+ if self.push_supplier then -- supplier may be nil
70
+ self.admin:rem_push_supplier(self, push_supplier)
71
+ oil.pcall(self.push_supplier.disconnect_push_supplier, self.push_supplier)
72
+ self.push_supplier = nil
73
+ end
74
+ end
75
+
@@ -0,0 +1,62 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+
5
+ module("oil.corba.services.event.ProxyPushSupplier", oo.class)
6
+
7
+ function __init(class, admin)
8
+ return oo.rawnew(class, {
9
+ admin = admin,
10
+ connected = false,
11
+ push_consumer = nil
12
+ })
13
+ end
14
+
15
+ -- Implementations shall raise the CORBA standard BAD_PARAM exception if a nil
16
+ -- object reference is passed to the connect_push_consumer operation. If the
17
+ -- ProxyPushSupplier is already connected to a PushConsumer, then the
18
+ -- AlreadyConnected exception is raised.
19
+ --
20
+ -- An implementation of a ProxyPushSupplier may put additional requirements on
21
+ -- the interface supported by the push consumer. If the push consumer does not
22
+ -- meet those requirements, the ProxyPushSupplier raises the TypeError
23
+ -- exception.
24
+
25
+ function connect_push_consumer(self, push_consumer)
26
+ if self.connected then
27
+ assert.exception{"IDL:omg.org/CosEventChannelAdmin/AlreadyConnected:1.0"}
28
+ elseif not push_consumer then
29
+ assert.exception{"IDL:omg.org/CORBA/BAD_PARAM:1.0"}
30
+ end
31
+ self.push_consumer = push_consumer
32
+ self.connected = true
33
+ self.admin:add_push_consumer(self, self.push_consumer)
34
+ end
35
+
36
+ -- The disconnect_push_supplier operation terminates the event communication; it
37
+ -- releases resources used at the supplier to support the event communication.
38
+ -- The PushSupplier object reference is disposed. Calling
39
+ -- disconnect_push_supplier causes the implementation to call the
40
+ -- disconnect_push_consumer operation on the corresponding PushConsumer
41
+ -- interface (if that interface is known).
42
+ --
43
+ -- Calling a disconnect operation on a consumer or supplier interface may cause
44
+ -- a call to the corresponding disconnect operation on the connected supplier or
45
+ -- consumer.
46
+ --
47
+ -- Implementations must take care to avoid infinite recursive calls to these
48
+ -- disconnect operations. If a consumer or supplier has received a disconnect
49
+ -- call and subsequently receives another disconnect call, it shall raise a
50
+ -- CORBA::OBJECT_NOT_EXIST exception.
51
+
52
+ function disconnect_push_supplier(self)
53
+ if not self.connected then
54
+ assert.exception{"IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"}
55
+ end
56
+ self.connected = false
57
+ assert.results(self.push_consumer)
58
+ self.admin:rem_push_consumer(self, self.push_consumer)
59
+ oil.pcall(self.push_consumer.disconnect_push_consumer, self.push_consumer)
60
+ self.push_consumer = nil
61
+ end
62
+
@@ -0,0 +1,60 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+ local pairs = pairs
5
+ local next = next
6
+ local io = io
7
+ local coroutine = coroutine
8
+
9
+ module("oil.corba.services.event.SingleDeferredDispatcher", oo.class)
10
+
11
+ local calls = {} -- futures
12
+
13
+ local function dispatch(consumer, event)
14
+ calls[consumer.__deferred:push(event.data)] = consumer
15
+ end
16
+
17
+ local function waitforresults()
18
+ repeat
19
+ for call, id in pairs(calls) do
20
+ if call:ready() then
21
+ --io.write("ready, ")
22
+ if call:results()
23
+ then --io.write("success\n"); io.flush()
24
+ else io.write("failure\n"); io.flush() -- TODO retry
25
+ end
26
+ calls[call] = nil
27
+ end
28
+ end
29
+ coroutine.yield()
30
+ until next(calls) == nil
31
+ end
32
+
33
+ function __init(class, event_queue, consumers)
34
+ assert.type(event_queue, "table")
35
+ local self = oo.rawnew(class, {
36
+ event_queue = event_queue,
37
+ consumers = consumers or {},
38
+ })
39
+ oil.tasks:start(self.run, self)
40
+ return self
41
+ end
42
+
43
+ function add_consumer(self, push_consumer)
44
+ self.consumers[push_consumer] = true
45
+ end
46
+
47
+ function rem_consumer(self, push_consumer)
48
+ self.consumers[push_consumer] = nil
49
+ end
50
+
51
+ function run(self)
52
+ while true do
53
+ local e = self.event_queue:dequeue()
54
+ for c in pairs(self.consumers) do
55
+ dispatch(c, e)
56
+ end
57
+ waitforresults()
58
+ end
59
+ end
60
+
@@ -0,0 +1,39 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+ local pairs = pairs
5
+
6
+ module("oil.corba.services.event.SingleSynchronousDispatcher", oo.class)
7
+
8
+ local function dispatch(consumer, event)
9
+ local b,e = oil.pcall(consumer.push, consumer, event.data)
10
+ assert.results(b)
11
+ end
12
+
13
+ function __init(class, event_queue, consumers)
14
+ assert.type(event_queue, "table")
15
+ local self = oo.rawnew(class, {
16
+ event_queue = event_queue,
17
+ consumers = consumers or {},
18
+ })
19
+ oil.tasks:start(self.run, self)
20
+ return self
21
+ end
22
+
23
+ function add_consumer(self, push_consumer)
24
+ self.consumers[push_consumer] = true
25
+ end
26
+
27
+ function rem_consumer(self, push_consumer)
28
+ self.consumers[push_consumer] = nil
29
+ end
30
+
31
+ function run(self)
32
+ while true do
33
+ local e = self.event_queue:dequeue()
34
+ for c in pairs(self.consumers) do
35
+ dispatch(c, e)
36
+ end
37
+ end
38
+ end
39
+