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,99 @@
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 --
12
+ -- Title : Object Request Dispatcher --
13
+ -- Authors: Renato Maia <maia@inf.puc-rio.br> --
14
+ --------------------------------------------------------------------------------
15
+ -- dispatcher:Facet
16
+ -- success:boolean, [except:table]|results... dispatch(key:string, operation:string|function, params...)
17
+ --------------------------------------------------------------------------------
18
+
19
+ local luapcall = pcall
20
+ local setmetatable = setmetatable
21
+ local type = type
22
+ local select = select
23
+ local unpack = unpack
24
+
25
+ local table = require "loop.table"
26
+ local oo = require "oil.oo"
27
+ local Exception = require "oil.Exception" --[[VERBOSE]] local verbose = require "oil.verbose"
28
+
29
+ module("oil.kernel.base.Dispatcher", oo.class)
30
+
31
+ pcall = luapcall
32
+
33
+ context = false
34
+
35
+ --------------------------------------------------------------------------------
36
+ -- Dispatcher facet
37
+
38
+ function dispatch(self, request)
39
+ local object, operation = request:preinvoke()
40
+ if object then
41
+ object = self.context.servants:retrieve(object)
42
+ if object then
43
+ local method = object[operation]
44
+ if method then --[[VERBOSE]] verbose:dispatcher("dispatching operation ",object,":",operation,request:params())
45
+ request:results(self.pcall(method, object, request:params()))
46
+ else --[[VERBOSE]] verbose:dispatcher("missing implementation of ",opname)
47
+ request:results(false, Exception{
48
+ reason = "noimplement",
49
+ message = "no implementation for operation of object with key",
50
+ operation = operation,
51
+ object = object,
52
+ key = key,
53
+ })
54
+ end
55
+ else --[[VERBOSE]] verbose:dispatcher("got illegal object ",key)
56
+ request:results(false, Exception{
57
+ reason = "badkey",
58
+ message = "no object with key",
59
+ key = key,
60
+ })
61
+ end
62
+ end
63
+ end
64
+
65
+ --------------------------------------------------------------------------------
66
+
67
+ --[[VERBOSE]] function verbose.custom:dispatcher(...)
68
+ --[[VERBOSE]] local params
69
+ --[[VERBOSE]] for i = 1, select("#", ...) do
70
+ --[[VERBOSE]] local value = select(i, ...)
71
+ --[[VERBOSE]] local type = type(value)
72
+ --[[VERBOSE]] if params == true then
73
+ --[[VERBOSE]] params = "("
74
+ --[[VERBOSE]] if type == "string" then
75
+ --[[VERBOSE]] self.viewer.output:write(value)
76
+ --[[VERBOSE]] else
77
+ --[[VERBOSE]] self.viewer:write(value)
78
+ --[[VERBOSE]] end
79
+ --[[VERBOSE]] elseif type == "string" then
80
+ --[[VERBOSE]] if params then
81
+ --[[VERBOSE]] self.viewer.output:write(params)
82
+ --[[VERBOSE]] params = ", "
83
+ --[[VERBOSE]] self.viewer:write((value:gsub("[^%w%p%s]", "?")))
84
+ --[[VERBOSE]] else
85
+ --[[VERBOSE]] self.viewer.output:write(value)
86
+ --[[VERBOSE]] if value == ":" then params = true end
87
+ --[[VERBOSE]] end
88
+ --[[VERBOSE]] else
89
+ --[[VERBOSE]] if params then
90
+ --[[VERBOSE]] self.viewer.output:write(params)
91
+ --[[VERBOSE]] params = ", "
92
+ --[[VERBOSE]] end
93
+ --[[VERBOSE]] self.viewer:write(value)
94
+ --[[VERBOSE]] end
95
+ --[[VERBOSE]] end
96
+ --[[VERBOSE]] if params then
97
+ --[[VERBOSE]] self.viewer.output:write(params == "(" and "()" or ")")
98
+ --[[VERBOSE]] end
99
+ --[[VERBOSE]] end
@@ -0,0 +1,86 @@
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 --
12
+ -- Title : Remote Object Proxies --
13
+ -- Authors: Renato Maia <maia@inf.puc-rio.br> --
14
+ --------------------------------------------------------------------------------
15
+ -- proxies:Facet
16
+ -- proxy:object proxyto(reference:table)
17
+ --
18
+ -- invoker:Receptacle
19
+ -- [results:object], [except:table] invoke(reference, operation, args...)
20
+ --------------------------------------------------------------------------------
21
+
22
+ local setmetatable = setmetatable
23
+
24
+ local oo = require "oil.oo" --[[VERBOSE]] local verbose = require "oil.verbose"
25
+
26
+ module("oil.kernel.base.Proxies", oo.class)
27
+
28
+ local function newclass(methodmaker)
29
+ return setmetatable(oo.initclass{
30
+ __tostring = proxytostring,
31
+ }, {
32
+ __mode = "v", -- TODO:[maia] can method creation/collection be worse than
33
+ -- memory leak due to invocation of constantly
34
+ -- changing methods ?
35
+ __call = oo.rawnew,
36
+ __index = function(cache, field)
37
+ local function invoker(self, ...) --[[VERBOSE]] verbose:proxies("call to ",field," ", ...)
38
+ return self.__manager.requester:newrequest(self.__reference, field, ...)
39
+ end
40
+ invoker = methodmaker(invoker, field)
41
+ cache[field] = invoker
42
+ return invoker
43
+ end,
44
+ })
45
+ end
46
+
47
+ function __init(self, ...)
48
+ self = oo.rawnew(self, ...)
49
+ self.class = self.class or newclass(self.invoker)
50
+ return self
51
+ end
52
+
53
+ function fromstring(self, reference, ...)
54
+ local result, except = self.referrer:decode(reference)
55
+ if result then
56
+ result, except = self:resolve(result, ...)
57
+ end
58
+ return result, except
59
+ end
60
+
61
+ function resolve(self, reference, ...) --[[VERBOSE]] verbose:proxies(true, "resolve reference for ",reference)
62
+ local result, except
63
+ local servants = self.servants
64
+ if servants then
65
+ result, except = self.referrer:islocal(reference, servants.accesspoint)
66
+ if result then --[[VERBOSE]] verbose:proxies("local object with key '",result,"' restored")
67
+ result = servants:retrieve(result)
68
+ end
69
+ end
70
+ if not result then --[[VERBOSE]] verbose:proxies("new proxy created for reference", reference)
71
+ result, except = self:newproxy(reference, ...)
72
+ end --[[VERBOSE]] verbose:proxies(false)
73
+ return result, except
74
+ end
75
+
76
+ function newproxy(self, reference) --[[VERBOSE]] verbose:proxies("new proxy to ",reference)
77
+ return self.class{
78
+ __manager = self,
79
+ __reference = reference,
80
+ }
81
+ end
82
+
83
+ function excepthandler(self, handler) --[[VERBOSE]] verbose:proxies("setting exception handler for proxies")
84
+ self.defaulthandler = handler
85
+ return true
86
+ end
@@ -0,0 +1,56 @@
1
+ local oo = require "oil.oo" --[[VERBOSE]] local verbose = require "oil.verbose"
2
+ local utils = require "oil.kernel.base.Proxies.utils"
3
+
4
+ local assertresults = utils.assertresults
5
+ local unpackrequest = utils.unpackrequest
6
+
7
+ --------------------------------------------------------------------------------
8
+
9
+ local Request = oo.class()
10
+
11
+ function Request:ready() --[[VERBOSE]] verbose:proxies("check reply availability")
12
+ local proxy = self.proxy
13
+ assertresults(proxy, self.member,
14
+ proxy.__manager.requester:getreply(self, true))
15
+ return self.success ~= nil
16
+ end
17
+
18
+ function Request:results() --[[VERBOSE]] verbose:proxies(true, "get reply results")
19
+ local success, except = self.proxy.__manager.requester:getreply(self)
20
+ if success then --[[VERBOSE]] verbose:proxies(false, "got results successfully")
21
+ return unpackrequest(self)
22
+ end --[[VERBOSE]] verbose:proxies(false, "got errors while reading reply")
23
+ return success, except
24
+ end
25
+
26
+ function Request:evaluate() --[[VERBOSE]] verbose:proxies("get deferred results of ",self.member)
27
+ return assertresults(self.proxy, self.member, self:results())
28
+ end
29
+
30
+ --------------------------------------------------------------------------------
31
+
32
+ local Failed = oo.class({}, Request)
33
+
34
+ function Failed:ready()
35
+ return true
36
+ end
37
+
38
+ function Failed:results()
39
+ return false, self[1]
40
+ end
41
+
42
+ --------------------------------------------------------------------------------
43
+
44
+ return function(invoker, operation)
45
+ return function(self, ...)
46
+ local request, except = invoker(self, ...)
47
+ if request then
48
+ request = Request(request)
49
+ else
50
+ request = Failed{ except }
51
+ end
52
+ request.proxy = self
53
+ request.member = operation
54
+ return request
55
+ end
56
+ end
@@ -0,0 +1,17 @@
1
+ local utils = require "oil.kernel.base.Proxies.utils"
2
+
3
+ local unpackrequest = utils.unpackrequest
4
+
5
+ return function(invoker)
6
+ return function(self, ...)
7
+ local success, except = invoker(self, ...)
8
+ if success then
9
+ local request = success
10
+ success, except = self.__manager.requester:getreply(request)
11
+ if success then
12
+ return unpackrequest(request)
13
+ end
14
+ end
15
+ return success, except
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ local utils = require "oil.kernel.base.Proxies.utils"
2
+
3
+ local assertresults = utils.assertresults
4
+ local unpackrequest = utils.unpackrequest
5
+ local callhandler = utils.callhandler
6
+
7
+ return function(invoker, operation)
8
+ return function(self, ...)
9
+ local request, except = invoker(self, ...)
10
+ if request then
11
+ assertresults(self, operation, self.__manager.requester:getreply(request))
12
+ return assertresults(self, operation, unpackrequest(request))
13
+ else
14
+ return callhandler(self, except, operation)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,29 @@
1
+ local error = error
2
+ local getmetatable = getmetatable
3
+ local rawget = rawget
4
+ local unpack = unpack --[[VERBOSE]] local verbose = require "oil.verbose"
5
+
6
+ module "oil.kernel.base.Proxies.utils"
7
+
8
+ function proxytostring(self)
9
+ return self.__manager.referrer:encode(self.__reference)
10
+ end
11
+
12
+ function unpackrequest(request)
13
+ return request.success, unpack(request, 1, request.n)
14
+ end
15
+
16
+ function callhandler(self, ...)
17
+ local handler = rawget(self, "__exceptions") or
18
+ rawget(getmetatable(self), "__exceptions") or
19
+ self.__manager.proxies.defaulthandler or
20
+ error((...))
21
+ return handler(self, ...)
22
+ end
23
+
24
+ function assertresults(self, operation, success, except, ...)
25
+ if not success then
26
+ return callhandler(self, except, operation)
27
+ end
28
+ return except, ...
29
+ end
@@ -0,0 +1,110 @@
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 --
12
+ -- Title : Request Acceptor --
13
+ -- Authors: Renato Maia <maia@inf.puc-rio.br> --
14
+ --------------------------------------------------------------------------------
15
+ -- acceptor:Facet
16
+ -- configs:table, [except:table] setupaccess([configs:table])
17
+ -- success:boolean, [except:table] hasrequest(configs:table)
18
+ -- success:boolean, [except:table] acceptone(configs:table)
19
+ -- success:boolean, [except:table] acceptall(configs:table)
20
+ -- success:boolean, [except:table] halt(configs:table)
21
+ --
22
+ -- listener:Receptacle
23
+ -- configs:table default([configs:table])
24
+ -- channel:object, [except:table] getchannel(configs:table)
25
+ -- success:boolean, [except:table] freeaccess(configs:table)
26
+ -- success:boolean, [except:table] freechannel(channel:object)
27
+ -- request:table, [except:table] = getrequest(channel:object, [probe:boolean])
28
+ -- success:booelan, [except:table] = sendreply(request:table, success:booelan, results...)
29
+ --
30
+ -- dispatcher:Receptacle
31
+ -- success:boolean, [except:table]|results... dispatch(objectkey:string, operation:string|function, params...)
32
+ --------------------------------------------------------------------------------
33
+
34
+
35
+ local oo = require "oil.oo"
36
+ local Exception = require "oil.Exception" --[[VERBOSE]] local verbose = require "oil.verbose"
37
+
38
+ module("oil.kernel.base.Receiver", oo.class)
39
+
40
+ function processrequest(self, request)
41
+ self.dispatcher:dispatch(request)
42
+ return self.listener:sendreply(request)
43
+ end
44
+
45
+ --------------------------------------------------------------------------------
46
+
47
+ function initialize(self, config)
48
+ local result, except = self.listener:setupaccess(config)
49
+ if result then
50
+ self.accesspoint = result
51
+ end
52
+ return result, except
53
+ end
54
+
55
+ function hasrequest(self)
56
+ return self.listener:getchannel(self.accesspoint, true)
57
+ end
58
+
59
+ function acceptone(self) --[[VERBOSE]] verbose:acceptor(true, "accept one request from channel ",self.accesspoint)
60
+ local result, except
61
+ local listener = self.listener
62
+ result, except = listener:getchannel(self.accesspoint)
63
+ if result then
64
+ local channel = result
65
+ result, except = listener:getrequest(channel)
66
+ if (result and result ~= true)
67
+ or (not result and except.reason ~= "closed") then
68
+ listener:putchannel(channel)
69
+ end
70
+ if result and result ~= true then --[[VERBOSE]] verbose:acceptor(true, "dispatching request from accepted channel")
71
+ result, except = self:processrequest(result) --[[VERBOSE]] verbose:acceptor(false)
72
+ end
73
+ end --[[VERBOSE]] verbose:acceptor(false)
74
+ return result, except
75
+ end
76
+
77
+ function acceptall(self)
78
+ local listener = self.listener
79
+ local accesspoint = self.accesspoint --[[VERBOSE]] verbose:acceptor(true, "accept all requests from channel ",accesspoint)
80
+ local result, except
81
+ self[accesspoint] = true
82
+ repeat
83
+ result, except = listener:getchannel(accesspoint)
84
+ if result then
85
+ local channel = result
86
+ result, except = listener:getrequest(channel)
87
+ if (result and result ~= true)
88
+ or (not result and except.reason ~= "closed") then
89
+ listener:putchannel(channel)
90
+ end
91
+ if result and result ~= true then --[[VERBOSE]] verbose:acceptor "dispatching request from accepted channel"
92
+ result, except = self:processrequest(result)
93
+ end
94
+ end
95
+ until not result or not self[accesspoint] --[[VERBOSE]] verbose:acceptor(false)
96
+ return result, except
97
+ end
98
+
99
+ function halt(self) --[[VERBOSE]] verbose:acceptor "halt acceptor"
100
+ local accesspoint = self.accesspoint
101
+ if self[accesspoint] then
102
+ self[accesspoint] = nil
103
+ return self.listener:freeaccess(accesspoint)
104
+ else
105
+ return nil, Exception{
106
+ reason = "halt",
107
+ message = "channels not being accepted",
108
+ }
109
+ end
110
+ end
@@ -0,0 +1,207 @@
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 --
12
+ -- Title : Server-Side Broker --
13
+ -- Authors: Renato Maia <maia@inf.puc-rio.br> --
14
+ --------------------------------------------------------------------------------
15
+ -- broker:Facet
16
+ -- servant:object register(impl:object, [objectkey:string])
17
+ -- impl:object remove(servant:object|impl:object|objectkey:string)
18
+ -- impl:object retrieve(objectkey:string)
19
+ -- reference:string tostring(servant:object)
20
+ --
21
+ -- referrer:Receptacle
22
+ -- reference:table newreference(objectkey:string, accesspointinfo:table...)
23
+ -- stringfiedref:string encode(reference:table)
24
+ --------------------------------------------------------------------------------
25
+
26
+ local getmetatable = getmetatable
27
+ local rawget = rawget
28
+ local rawset = rawset
29
+ local setmetatable = setmetatable
30
+ local luatostring = tostring
31
+ local type = type
32
+
33
+ local table = require "loop.table"
34
+ local ObjectCache = require "loop.collection.ObjectCache"
35
+
36
+ local oo = require "oil.oo"
37
+ local Exception = require "oil.Exception" --[[VERBOSE]] local verbose = require "oil.verbose"
38
+
39
+ module("oil.kernel.base.Servants", oo.class)
40
+
41
+ prefix = "_"
42
+
43
+ --------------------------------------------------------------------------------
44
+ -- Servant object proxy
45
+
46
+ local function deactivate(self)
47
+ return self.__manager:removeentry(self.__key)
48
+ end
49
+
50
+ local function wrappertostring(self)
51
+ return self.__manager.referrer:encode(self.__reference)
52
+ end
53
+
54
+ local function wrapperindexer(self, key)
55
+ local value = self.__newindex[key]
56
+ if type(value) == "function"
57
+ then return self.__methods[value]
58
+ else return value
59
+ end
60
+ end
61
+
62
+ --------------------------------------------------------------------------------
63
+ --------------------------------------------------------------------------------
64
+
65
+ function __init(self, ...)
66
+ self = oo.rawnew(self, ...)
67
+ self.map = self.map or {}
68
+ return self
69
+ end
70
+
71
+ function addentry(self, key, entry)
72
+ local result, except = self.map[key]
73
+ if result then
74
+ if result == entry then
75
+ result = true
76
+ else
77
+ result, except = nil, Exception{
78
+ reason = "usedkey",
79
+ message = "object key already in use",
80
+ key = key,
81
+ }
82
+ end
83
+ else --[[VERBOSE]] verbose:servants("object ",entry," registered with key ",key)
84
+ self.map[key] = entry
85
+ result = true
86
+ end
87
+ return result, except
88
+ end
89
+
90
+ function removeentry(self, key)
91
+ local map = self.map
92
+ local entry = map[key]
93
+ if entry ~= nil then --[[VERBOSE]] verbose:servants("object ",entry," with key ",key," removed")
94
+ map[key] = nil
95
+ return entry
96
+ end
97
+ return nil, Exception{
98
+ reason = "usedkey",
99
+ message = "unknown object key",
100
+ key = key,
101
+ }
102
+ end
103
+
104
+ function hashof(self, object)
105
+ local meta = getmetatable(object)
106
+ local backup
107
+ if meta then
108
+ backup = rawget(meta, "__tostring")
109
+ if backup ~= nil then rawset(meta, "__tostring", nil) end
110
+ end
111
+ local hash = luatostring(object)
112
+ if meta then
113
+ if backup ~= nil then rawset(meta, "__tostring", backup) end
114
+ end
115
+ return hash:match("%l+: (%w+)") or hash
116
+ end
117
+ --------------------------------------------------------------------------------
118
+ --------------------------------------------------------------------------------
119
+
120
+ function setaccessinfo(self, ...)
121
+ local result, except = true
122
+ local accessinfo = self.accessinfo
123
+ if not accessinfo then
124
+ self.accessinfo = {...}
125
+ else
126
+ result, except = nil, Exception{
127
+ reason = "configuration",
128
+ message = "attempt to set access info twice",
129
+ accessinfo = accessinfo,
130
+ }
131
+ end
132
+ return result, except
133
+ end
134
+
135
+ --------------------------------------------------------------------------------
136
+ --------------------------------------------------------------------------------
137
+
138
+ function resolvekey(self, object)
139
+ local key = nil
140
+ local meta = getmetatable(object)
141
+ if type(object) == "table" or (meta ~= nil and meta.__index) then
142
+ key = object.__objkey
143
+ end
144
+ if key == nil and meta ~= nil then
145
+ key = meta.__objkey
146
+ end
147
+ if key == nil then
148
+ key = self.prefix..self:hashof(object)
149
+ end
150
+ return key
151
+ end
152
+
153
+ function register(self, object, key, ...)
154
+ if key == nil then
155
+ key = self:resolvekey(object)
156
+ end
157
+ local result, except = self:addentry(key, object, ...)
158
+ if result then
159
+ result, except = self.referrer:newreference(self.accesspoint, key, ...)
160
+ if result then
161
+ result = {
162
+ _deactivate = deactivate, -- TODO[maia]: DEPRECATED!
163
+ __deactivate = deactivate,
164
+ __manager = self,
165
+ __key = key,
166
+ __tostring = wrappertostring,
167
+ __index = wrapperindexer,
168
+ __newindex = object,
169
+ __reference = result,
170
+ __methods = ObjectCache{
171
+ retrieve = function(_, method)
172
+ return function(_, ...)
173
+ return method(object, ...)
174
+ end
175
+ end
176
+ }
177
+ }
178
+ setmetatable(result, result)
179
+ else
180
+ self:removeentry(key)
181
+ end
182
+ end
183
+ return result, except
184
+ end
185
+
186
+ function remove(self, key)
187
+ local keytype = type(key)
188
+ if keytype ~= "string" then
189
+ local object = key
190
+ if keytype == "table" then
191
+ key = rawget(object, "__key") -- is it a servant?
192
+ keytype = type(key)
193
+ end
194
+ if keytype ~= "string" then
195
+ local except
196
+ key, except = self:resolvekey(object)
197
+ if not key then --[[VERBOSE]] verbose:servants("unbale to identify key of object ",entry)
198
+ return nil, except
199
+ end
200
+ end
201
+ end
202
+ return self:removeentry(key)
203
+ end
204
+
205
+ function retrieve(self, key)
206
+ return self.map[key]
207
+ end