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,21 @@
1
+ local pairs = pairs
2
+
3
+ local idl = require "oil.corba.idl"
4
+ local giop = require "oil.corba.giop" --[[VERBOSE]] local verbose = require "oil.verbose"
5
+
6
+ module "oil.corba.idl.sysex"
7
+
8
+ --------------------------------------------------------------------------------
9
+
10
+ name = "CORBA"
11
+ repID = "IDL:omg.org/CORBA:1.0"
12
+ idl.module(_M)
13
+
14
+ --------------------------------------------------------------------------------
15
+
16
+ for name, repID in pairs(giop.SystemExceptionIDs) do
17
+ definitions[name] = idl.except{
18
+ {name = "minor_code_value" , type = idl.ulong },
19
+ {name = "completion_status", type = idl.ulong },
20
+ }
21
+ end
@@ -0,0 +1,200 @@
1
+ --------------------------------------------------------------------------------
2
+ ------------------------------ ##### ## ------------------------------
3
+ ------------------------------ ## ## # ## ------------------------------
4
+ ------------------------------ ## ## ## ## ------------------------------
5
+ ------------------------------ ## ## # ## ------------------------------
6
+ ------------------------------ ##### ### ###### ------------------------------
7
+ -------------------------------- --------------------------------
8
+ ----------------------- An Object Request Broker in Lua ------------------------
9
+ --------------------------------------------------------------------------------
10
+ -- Project: OiL - ORB in Lua --
11
+ -- Release: 0.5 --
12
+ -- Title : IIOP Profile Encoder/Decoder --
13
+ -- Authors: Renato Maia <maia@inf.puc-rio.br> --
14
+ --------------------------------------------------------------------------------
15
+ -- Notes: --
16
+ -- See section 15.7 of CORBA 3.0 specification. --
17
+ --------------------------------------------------------------------------------
18
+ -- profiler:Facet
19
+ -- stream:string encode(profile:table, [version:number])
20
+ -- profile:table decode(stream:string)
21
+ -- objkey:string belongsto(profile:string, orbcfg:table)
22
+ -- result:boolean equivalent(profile1:string, profile2:string)
23
+ -- profile:table decodeurl(url:string)
24
+ --
25
+ -- codec:Receptacle
26
+ -- encoder:object encoder([encapsulated:boolean])
27
+ -- decoder:object decoder(stream:string, [encapsulated:boolean])
28
+ --------------------------------------------------------------------------------
29
+
30
+ local ipairs = ipairs
31
+ local tonumber = tonumber
32
+
33
+ local string = require "string"
34
+
35
+ local oo = require "oil.oo"
36
+ local idl = require "oil.corba.idl"
37
+ local Exception = require "oil.corba.giop.Exception" --[[VERBOSE]] local verbose = require "oil.verbose"
38
+
39
+ module("oil.corba.iiop.Profiler", oo.class)
40
+
41
+ --------------------------------------------------------------------------------
42
+ -- IIOP profile structure
43
+
44
+ local Empty = {}
45
+
46
+ local Tag = 0
47
+
48
+ local TaggedComponentSeq = idl.sequence{idl.struct{
49
+ {name = "tag" , type = idl.ulong },
50
+ {name = "component_data", type = idl.OctetSeq},
51
+ }}
52
+
53
+ local ProfileBody_v1_ = {
54
+ -- Note: First profile structure field is read/write directly
55
+ [0] = idl.struct{
56
+ --{name = "iiop_version", type = idl.Version },
57
+ {name = "host" , type = idl.string },
58
+ {name = "port" , type = idl.ushort },
59
+ {name = "object_key" , type = idl.OctetSeq},
60
+ },
61
+ [1] = idl.struct{
62
+ --{name = "iiop_version", type = idl.Version },
63
+ {name = "host" , type = idl.string },
64
+ {name = "port" , type = idl.ushort },
65
+ {name = "object_key" , type = idl.OctetSeq },
66
+ {name = "components" , type = TaggedComponentSeq},
67
+ },
68
+ }
69
+ ProfileBody_v1_[2] = ProfileBody_v1_[1] -- same as IIOP 1.1
70
+ ProfileBody_v1_[3] = ProfileBody_v1_[1] -- same as IIOP 1.1
71
+
72
+ --------------------------------------------------------------------------------
73
+ -- IIOP profile encode/decode
74
+
75
+ function encode(self, profiles, object_key, config, minor)
76
+ if not minor then minor = 0 end
77
+ local profileidl = ProfileBody_v1_[minor]
78
+ if profileidl then
79
+ local port = config.refport or config.port
80
+ for _, addr in ipairs(config.addresses) do
81
+ local profile = {
82
+ components = Empty,
83
+ host = addr,
84
+ port = port,
85
+ object_key = object_key
86
+ }
87
+ local encoder = self.codec:encoder(true)
88
+ encoder:struct({major=1, minor=minor}, idl.Version)
89
+ encoder:struct(profile, profileidl)
90
+ profiles[#profiles+1] = {
91
+ tag = Tag,
92
+ profile_data = encoder:getdata(),
93
+ }
94
+ end
95
+ return true
96
+ else
97
+ return nil, Exception{ "INTERNAL", minor_code_value = 0,
98
+ message = "IIOP minor version not supported",
99
+ reason = "version",
100
+ protocol = "IIOP",
101
+ version = minor,
102
+ }
103
+ end
104
+ end
105
+
106
+ function decode(self, profile)
107
+ local decoder = self.codec:decoder(profile, true)
108
+ local version = decoder:struct(idl.Version)
109
+ local profileidl = ProfileBody_v1_[version.minor]
110
+
111
+ if version.major ~= 1 or not profileidl then
112
+ return nil, Exception{ "INTERNAL", minor_code_value = 0,
113
+ reason = "version",
114
+ message = "IIOP version not supported",
115
+ protocol = "IIOP",
116
+ version = version,
117
+ }
118
+ end
119
+
120
+ profile = decoder:struct(profileidl)
121
+ profile.iiop_version = version -- add read version directly
122
+
123
+ return profile, profile.object_key
124
+ end
125
+
126
+ --------------------------------------------------------------------------------
127
+ -- IIOP profile and local ORB config match
128
+
129
+ function belongsto(self, profile, config)
130
+ local objectkey
131
+ profile, objectkey = self:decode(profile)
132
+ if config.addresses[profile.host] and profile.port == config.port then
133
+ return objectkey
134
+ end
135
+ end
136
+
137
+ --------------------------------------------------------------------------------
138
+ -- IIOP profile are equivalent
139
+
140
+ function equivalent(self, profile1, profile2)
141
+ local objectkey1, objectkey2
142
+ profile1, objectkey1 = self:decode(profile1)
143
+ profile2, objectkey2 = self:decode(profile2)
144
+ return objectkey1 == objectkey2 and
145
+ profile1.host == profile2.host and
146
+ profile1.port == profile2.port
147
+ end
148
+
149
+ --------------------------------------------------------------------------------
150
+ -- IIOP corbaloc URL decoder
151
+
152
+ function decodeurl(self, data)
153
+ local temp, objectkey = string.match(data, "^([^/]*)/(.*)$")
154
+ if temp
155
+ then data = temp
156
+ else objectkey = "" -- TODO:[maia] is this correct?
157
+ end
158
+ local major, minor
159
+ major, minor, temp = string.match(data, "^(%d+).(%d+)@(.+)$")
160
+ if not minor then
161
+ minor = 0
162
+ else
163
+ minor = tonumber(minor)
164
+ end
165
+ local profileidl = ProfileBody_v1_[minor]
166
+ if (major and major ~= "1") or (not profileidl) then
167
+ return nil, Exception{ "INTERNAL", minor_code_value = 0,
168
+ message = "IIOP version not supported",
169
+ reason = "version",
170
+ protocol = "IIOP",
171
+ major = major,
172
+ minor = minor,
173
+ version = major.."."..minor
174
+ }
175
+ end
176
+ if temp then data = temp end
177
+ local host, port = string.match(data, "^([^:]+):(%d*)$")
178
+ if port then
179
+ port = tonumber(port)
180
+ else
181
+ port = 2809
182
+ if data == ""
183
+ then host = "*"
184
+ else host = data
185
+ end
186
+ end
187
+
188
+ temp = self.codec:encoder(true)
189
+ temp:struct({major=1,minor=minor}, idl.Version)
190
+ temp:struct({
191
+ components = Empty,
192
+ host = host,
193
+ port = port,
194
+ object_key = objectkey
195
+ }, profileidl)
196
+ return {
197
+ tag = Tag,
198
+ profile_data = temp:getdata(),
199
+ }
200
+ end
@@ -0,0 +1,158 @@
1
+
2
+ local unpack = unpack
3
+
4
+ local oo = require "oil.oo"
5
+ local giop = require "oil.corba.giop"
6
+ local Listener = require "oil.corba.giop.Listener" --[[VERBOSE]] local verbose = require "oil.verbose"
7
+
8
+ module "oil.corba.intercepted.Listener"
9
+
10
+ oo.class(_M, Listener)
11
+
12
+ --------------------------------------------------------------------------------
13
+
14
+ local LocationForwardTypes = { giop.IOR }
15
+ local ReplyID = giop.ReplyID
16
+
17
+ local Empty = {}
18
+
19
+ --------------------------------------------------------------------------------
20
+
21
+ function __init(self, ...)
22
+ self = oo.rawnew(self, ...)
23
+ local Request = self.Request
24
+ self.Request = oo.class({}, Request)
25
+ function self.Request.preinvoke(request, iface, member, object)
26
+ local objkey, opname = Request.preinvoke(request, iface, member)
27
+ request.interface = iface
28
+ request.member = member
29
+ request.target = object
30
+ self:interceptrequest(request, objkey == nil)
31
+ if request.success == nil then
32
+ return objkey, opname
33
+ end
34
+ end
35
+ return self
36
+ end
37
+
38
+ --------------------------------------------------------------------------------
39
+
40
+ function interceptrequest(self, request, failed)
41
+ local interceptor = self.interceptor
42
+ if interceptor then
43
+ local intercepted = {
44
+ service_context = request.service_context,
45
+ request_id = request.request_id,
46
+ response_expected = request.response_expected,
47
+ object_key = request.object_key,
48
+ operation_name = request.operation,
49
+ servant = request.target,
50
+ interface = request.interface,
51
+ interface_name = request.interface and request.interface.absolute_name,
52
+ operation = request.member,
53
+ parameters = not failed and {n=request.n,request:params()} or nil,
54
+ }
55
+ request.intercepted = intercepted
56
+ if interceptor.receiverequest then --[[VERBOSE]] verbose:interceptors(true, "intercepting request marshaling")
57
+ interceptor:receiverequest(intercepted)
58
+ if intercepted.success ~= nil then --[[VERBOSE]] verbose:interceptors("interception request was canceled")
59
+ request.success = intercepted.success
60
+ -- update returned values
61
+ local results = intercepted.results or {}
62
+ request.n = results.n or #results
63
+ for i = 1, request.n do
64
+ request[i] = results[i]
65
+ end
66
+ request.intercepted = nil -- this should cancel the reply interception
67
+ request.reply_service_context = intercepted.reply_service_context
68
+ elseif intercepted.forward_reference then --[[VERBOSE]] verbose:interceptors("interceptor forwarded the request")
69
+ request.success = false -- this should cancel the operation dispatch
70
+ request.intercepted = nil -- this should cancel the reply interception
71
+ request.reply_service_context = intercepted.reply_service_context
72
+ request.forward_reference = intercepted.forward_reference
73
+ else
74
+ -- update parameter values
75
+ local parameters = intercepted.parameters
76
+ if parameters then
77
+ request.n = parameters.n or #parameters
78
+ for i = 1, request.n do
79
+ request[i] = parameters[i]
80
+ end
81
+ end
82
+ -- update operation being invoked
83
+ if intercepted.operation ~= request.member then --[[VERBOSE]] verbose:interceptors("interceptor changed invoked operation")
84
+ local operation = intercepted.operation
85
+ request.operation = operation.name
86
+ request.inputs = operation.inputs
87
+ request.outputs = operation.outputs
88
+ request.exceptions = operation.exceptions
89
+ end
90
+ -- update GIOP message fields
91
+ request.service_context = intercepted.service_context
92
+ request.object_key = intercepted.object_key
93
+ end --[[VERBOSE]] verbose:interceptors(false, "interception ended")
94
+ end
95
+ end
96
+ end
97
+
98
+ --------------------------------------------------------------------------------
99
+
100
+ function interceptreply(self, request, body)
101
+ local intercepted = request.intercepted
102
+ if intercepted then
103
+ request.intercepted = nil
104
+ local interceptor = self.interceptor
105
+ if interceptor and interceptor.sendreply then
106
+ intercepted.reply_status = request.reply_status
107
+ intercepted.success = request.success
108
+ if request.reply_status == "SYSTEM_EXCEPTION" then
109
+ intercepted.results = { n = 1, body[1] }
110
+ else
111
+ intercepted.results = { n = request.n, unpack(request, 1, request.n) }
112
+ end --[[VERBOSE]] verbose:interceptors(true, "intercepting reply marshaling")
113
+ interceptor:sendreply(intercepted) --[[VERBOSE]] verbose:interceptors(false, "interception ended")
114
+ local reference = intercepted.forward_reference
115
+ if reference then
116
+ request.forward_reference = reference
117
+ else
118
+ request.success = intercepted.success
119
+ -- update returned values
120
+ local results = intercepted.results or {}
121
+ request.n = results.n or #results
122
+ for i = 1, request.n do
123
+ request[i] = results[i]
124
+ end
125
+ end
126
+ -- update GIOP message fields
127
+ request.reply_service_context = intercepted.reply_service_context
128
+ return true
129
+ end
130
+ end
131
+ end
132
+
133
+ function makereply(self, request)
134
+ local types, body
135
+ local reference = request.forward_reference
136
+ if reference then
137
+ request.reply_status = "LOCATION_FORWARD"
138
+ request.service_context = Empty
139
+ return LocationForwardTypes, { reference }
140
+ end
141
+ local header, types, body = Listener.handlereply(self, request)
142
+ if header ~= request then
143
+ request.reply_status = header.reply_status
144
+ request.service_context = header.service_context
145
+ end
146
+ return types, body
147
+ end
148
+
149
+ function handlereply(self, request)
150
+ local types, body = self:makereply(request)
151
+ if self:interceptreply(request, body) then
152
+ types, body = self:makereply(request)
153
+ if request.reply_service_context then
154
+ request.service_context = request.reply_service_context
155
+ end
156
+ end
157
+ return request, types, body
158
+ end
@@ -0,0 +1,181 @@
1
+
2
+ local select = select
3
+ local unpack = unpack
4
+
5
+ local oo = require "oil.oo"
6
+ local giop = require "oil.corba.giop"
7
+ local Requester = require "oil.corba.giop.Requester" --[[VERBOSE]] local verbose = require "oil.verbose"
8
+
9
+ module "oil.corba.intercepted.Requester"
10
+
11
+ oo.class(_M, Requester)
12
+
13
+ --------------------------------------------------------------------------------
14
+
15
+ local RequestID = giop.RequestID
16
+
17
+ local Empty = {}
18
+
19
+ --------------------------------------------------------------------------------
20
+
21
+ function interceptrequest(self, reference, operation, request)
22
+ local interceptor = self.interceptor
23
+ if interceptor then
24
+ local interface = operation.defined_in
25
+ local intercepted = {
26
+ reference = reference,
27
+ operation = operation,
28
+ profile_tag = reference._profiletag,
29
+ profile_data = reference._profiledata,
30
+ interface = interface,
31
+ interface_name = interface and interface.absolute_name,
32
+ request_id = request.request_id,
33
+ response_expected = request.response_expected,
34
+ object_key = request.object_key,
35
+ operation_name = request.operation,
36
+ parameters = { n = request.n, unpack(request, 1, request.n) },
37
+ }
38
+ request.intercepted = intercepted
39
+ if interceptor.sendrequest then --[[VERBOSE]] verbose:interceptors(true, "intercepting request being sent")
40
+ interceptor:sendrequest(intercepted)
41
+ if intercepted.success ~= nil then --[[VERBOSE]] verbose:interceptors("interception request was canceled")
42
+ request.success = intercepted.success
43
+ -- update returned values
44
+ local results = intercepted.results or {}
45
+ request.n = results.n or #results
46
+ for i = 1, request.n do
47
+ request[i] = results[i]
48
+ end
49
+ else
50
+ -- update parameter values
51
+ local parameters = intercepted.parameters
52
+ request.n = parameters.n or #parameters
53
+ for i = 1, request.n do
54
+ request[i] = parameters[i]
55
+ end
56
+ -- update operation being invoked
57
+ if intercepted.operation and intercepted.operation ~= operation then
58
+ operation = intercepted.operation
59
+ interface = operation.defined_in
60
+ intercepted.interface = interface
61
+ intercepted.interface_name = interface and interface.absolute_name
62
+ intercepted.operation_name = operation.name
63
+ request.operation = operation.name
64
+ request.inputs = operation.inputs
65
+ request.outputs = operation.outputs
66
+ request.exceptions = operation.exceptions
67
+ end
68
+ -- update GIOP message fields
69
+ request.object_key = intercepted.object_key
70
+ request.response_expected = intercepted.response_expected
71
+ request.service_context = intercepted.service_context or
72
+ request.service_context
73
+ request.requesting_principal = intercepted.requesting_principal or
74
+ request.requesting_principal --[[VERBOSE]] verbose:interceptors(false, "interception ended")
75
+ end
76
+ end
77
+ return intercepted
78
+ end
79
+ end
80
+
81
+ function sendrequest(self, reference, operation, ...)
82
+ local result, except = self:getchannel(reference)
83
+ local channel = result
84
+ local request = self:makerequest(channel, reference._objectkey, operation,...)--[[VERBOSE]] verbose:invoke(true, "request ",request.request_id," for operation '",operation.name,"'")
85
+ local intercepted = self:interceptrequest(reference, operation, request)
86
+ if intercepted then
87
+ if request.success ~= nil then --[[VERBOSE]] verbose:interceptors(false, "interception ended (results provided!)")
88
+ channel = nil
89
+ result = request
90
+ else
91
+ local reference = intercepted.forward_reference
92
+ if reference then --[[VERBOSE]] verbose:interceptors("intercepted request forwarded")
93
+ if request.channel then
94
+ unregister(request.channel, request.request_id)
95
+ end
96
+ result, except = self:getchannel(reference)
97
+ if result then
98
+ intercepted.object_key = reference._objectkey
99
+ intercepted.profile_tag = reference._profiletag
100
+ intercepted.profile_data = reference._profiledata
101
+ channel = result
102
+ request.object_key = except
103
+ if request.response_expected then
104
+ register(channel, request)
105
+ else
106
+ request.request_id = 0
107
+ end
108
+ else
109
+ channel = nil
110
+ end
111
+ elseif not request.response_expected and request.channel then --[[VERBOSE]] verbose:interceptors("interception canceled expected response")
112
+ unregister(request.channel, request.request_id)
113
+ request.request_id = 0
114
+ elseif request.response_expected and not request.channel and channel then --[[VERBOSE]] verbose:interceptors("interception asked for an expected response")
115
+ register(channel, request)
116
+ end
117
+ intercepted.request_id = request.request_id
118
+ end
119
+ end
120
+ if channel then
121
+ result, except = self:sendmsg(channel, RequestID, request,
122
+ request.inputs, request)
123
+ if result then
124
+ if not request.response_expected then
125
+ request.success = true
126
+ request.n = 0
127
+ end
128
+ result, except = request, nil
129
+ else
130
+ unregister(channel, request.request_id)
131
+ end
132
+ end
133
+ if not result then
134
+ request.success = false
135
+ request.n = 1
136
+ request[1] = except
137
+ result, except = request, nil
138
+ end --[[VERBOSE]] verbose:invoke(false)
139
+ if result and result.success ~= nil then
140
+ result.service_context = nil
141
+ self:interceptreply(result, result)
142
+ end
143
+ return result, except
144
+ end
145
+
146
+ --------------------------------------------------------------------------------
147
+
148
+ function interceptreply(self, request, header)
149
+ local intercepted = request.intercepted
150
+ if intercepted then
151
+ request.intercepted = nil
152
+ local interceptor = self.interceptor
153
+ if interceptor and interceptor.receivereply then
154
+ if header.service_context then
155
+ intercepted.reply_service_context = header.service_context
156
+ end
157
+ intercepted.reply_status = header.reply_status
158
+ intercepted.success = request.success
159
+ intercepted.results = {
160
+ n = request.n,
161
+ unpack(request, 1, request.n),
162
+ }
163
+ interceptor:receivereply(intercepted)
164
+ request.success = intercepted.success
165
+ -- update returned values
166
+ local results = intercepted.results or {}
167
+ request.n = results.n or #results
168
+ for i = 1, request.n do
169
+ request[i] = results[i]
170
+ end
171
+ end
172
+ end
173
+ end
174
+
175
+ function doreply(self, request, header, decoder)
176
+ local success, except = Requester.doreply(self, request, header, decoder)
177
+ if success then
178
+ self:interceptreply(request, header)
179
+ end
180
+ return success, except
181
+ end