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,14 @@
1
+ local require = require
2
+ local builder = require "oil.builder"
3
+ local arch = require "oil.arch.ludo.common"
4
+
5
+ module "oil.builder.ludo.common"
6
+
7
+ LuaEncoder = arch.ValueEncoder {require "oil.ludo.Codec" }
8
+ ObjectReferrer = arch.ObjectReferrer{require "oil.ludo.Referrer"}
9
+
10
+ function create(comps)
11
+ comps = builder.create(_M, comps)
12
+ comps.ValueEncoder = comps.LuaEncoder
13
+ return comps
14
+ end
@@ -0,0 +1,13 @@
1
+ local require = require
2
+ local builder = require "oil.builder"
3
+ local base = require "oil.arch.basic.common"
4
+ local arch = require "oil.arch.ludo.server"
5
+
6
+ module "oil.builder.ludo.server"
7
+
8
+ ServerChannels = base.SocketChannels {require "oil.kernel.base.Acceptor"}
9
+ RequestListener = arch.RequestListener{require "oil.ludo.Listener" }
10
+
11
+ function create(comps)
12
+ return builder.create(_M, comps)
13
+ end
@@ -0,0 +1,16 @@
1
+ local setfenv = setfenv
2
+ local require = require
3
+ local builder = require "oil.builder"
4
+ local arch = require "oil.arch.typed.client"
5
+ local basic = require "oil.builder.basic.client"
6
+
7
+ module "oil.builder.typed.client"
8
+
9
+ ProxyManager = arch.ProxyManager{require "oil.kernel.typed.Proxies"}
10
+
11
+ function create(comps)
12
+ setfenv(basic.create, _M)
13
+ comps = basic.create(comps)
14
+ setfenv(basic.create, basic)
15
+ return comps
16
+ end
@@ -0,0 +1,12 @@
1
+ local require = require
2
+ local builder = require "oil.builder"
3
+ local arch = require "oil.arch.typed.server"
4
+
5
+ module "oil.builder.typed.server"
6
+
7
+ ServantManager = arch.ServantManager{require "oil.kernel.typed.Servants" ,
8
+ dispatcher = require "oil.kernel.typed.Dispatcher"}
9
+
10
+ function create(comps)
11
+ return builder.create(_M, comps)
12
+ end
@@ -0,0 +1,846 @@
1
+ --------------------------------------------------------------------------------
2
+ ------------------------------ ##### ## ------------------------------
3
+ ------------------------------ ## ## # ## ------------------------------
4
+ ------------------------------ ## ## ## ## ------------------------------
5
+ ------------------------------ ## ## # ## ------------------------------
6
+ ------------------------------ ##### ### ###### ------------------------------
7
+ -------------------------------- --------------------------------
8
+ ----------------------- An Object Request Broker in Lua ------------------------
9
+ --------------------------------------------------------------------------------
10
+ -- Project: OiL - ORB in Lua: An Object Request Broker in Lua --
11
+ -- Release: 0.5 alpha --
12
+ -- Title : OiL main programming interface (API) --
13
+ -- Authors: Renato Maia <maia@inf.puc-rio.br> --
14
+ --------------------------------------------------------------------------------
15
+ -- Interface: --
16
+ -- VERSION --
17
+ -- --
18
+ -- assemble(flavor) --
19
+ -- --
20
+ -- types --
21
+ -- loadidl(code) --
22
+ -- loadidlfile(path) --
23
+ -- getLIR() --
24
+ -- getIR() --
25
+ -- setIR(ir) --
26
+ -- --
27
+ -- newproxy(objref, [iface]) --
28
+ -- narrow(proxy, [iface]) --
29
+ -- --
30
+ -- newservant(impl, [iface], [key]) --
31
+ -- deactivate(object, [type]) --
32
+ -- tostring(object) --
33
+ -- --
34
+ -- Config --
35
+ -- init() --
36
+ -- pending() --
37
+ -- step() --
38
+ -- run() --
39
+ -- shutdown() --
40
+ -- --
41
+ -- main(function) --
42
+ -- newthread(function, ...) --
43
+ -- pcall(function, ...) --
44
+ -- sleep(time) --
45
+ -- time() --
46
+ -- tasks --
47
+ -- --
48
+ -- newencoder() --
49
+ -- newdecoder(stream) --
50
+ -- --
51
+ -- newexcept(body) --
52
+ -- setexcatch(callback, [type]) --
53
+ -- --
54
+ -- setclientinterceptor([iceptor]) --
55
+ -- setserverinterceptor([iceptor]) --
56
+ -- --
57
+ -- createservant(impl, [iface], [key]) --
58
+ -- createproxy(objref, [iface]) --
59
+ -- --
60
+ -- writeto(filepath, text) --
61
+ -- readfrom(filepath) --
62
+ -- writeIOR(servant, filepath) --
63
+ -- readIOR(filepath) --
64
+ --------------------------------------------------------------------------------
65
+ -- Notes: --
66
+ --------------------------------------------------------------------------------
67
+
68
+ local module = module
69
+ local luapcall = pcall
70
+ local require = require
71
+
72
+ local io = require "io"
73
+ local coroutine = require "coroutine"
74
+
75
+ local builder = require "oil.builder"
76
+ local assert = require "oil.assert"
77
+
78
+ local OIL_FLAVOR = OIL_FLAVOR
79
+
80
+ --------------------------------------------------------------------------------
81
+ -- OiL main programming interface (API).
82
+
83
+ -- This API provides access to the basic functionalities of the OiL ORB.
84
+ -- More advanced features may be accessed through more specialized interfaces
85
+ -- provided by internal components. OiL internal component organization is meant
86
+ -- to be customized for the application.
87
+
88
+ module "oil"
89
+
90
+ VERSION = "OiL 0.5 beta"
91
+
92
+ --------------------------------------------------------------------------------
93
+ -- Creates and assembles OiL components to compose an ORB instance.
94
+ --
95
+ -- The 'flavor' parameter defines a list of archtectural levels.
96
+ -- Each level defines a set of components and connections that extends the
97
+ -- following level.
98
+ --
99
+ -- Components are created by builder modules registered under namespace
100
+ -- 'oil.builder.*' that must provide a 'create(components)' function.
101
+ -- The parameter 'components' is a table with all components created by the
102
+ -- previous levels builders and that must be used to store the components
103
+ -- created by the builder.
104
+ --
105
+ -- Components created by a previous builder should not be replaced by components
106
+ -- created by following builders.
107
+ -- After all level components are they are assembled by assembler modules
108
+ -- registered under namespace 'oil.arch.*' that must provide a
109
+ -- 'assemble(components)' function.
110
+ -- The parameter 'components' is a table with all components created by the
111
+ -- levels builders.
112
+ --
113
+ -- NOTE: A default assembly is created when the 'oil' package is first required
114
+ -- with levels "corba;typed;cooperative;base" or the one defined by global
115
+ -- variable 'OIL_FLAVOR'.
116
+ --
117
+ -- @param flavor string Semi-colom separated list of component archtectures.
118
+ -- @param [comps] table Table where assembled components must be stored.
119
+ -- @return table Table with assembled components.
120
+ --
121
+ -- @usage comps = assemble("corba;typed;cooperative;base") .
122
+ -- @usage comps = assemble("corba;typed;base") .
123
+ -- @usage comps = assemble("ludo;cooperative;base") .
124
+ --
125
+ function assemble(flavor, comps)
126
+ assert.type(flavor, "string", "OiL flavor name")
127
+ return builder.build(flavor, comps)
128
+ end
129
+
130
+ assemble(OIL_FLAVOR or "corba;typed;cooperative;base", _M)
131
+ -- UNCOMMENT THIS LINE FOR COMPATIBILITY WITH VERSION 0.3
132
+ --assemble(OIL_FLAVOR or "corba;typed;base", _M)
133
+
134
+ --------------------------------------------------------------------------------
135
+ -- Internal interface repository used by the ORB.
136
+ --
137
+ -- This is a alias for a facet of the Type Respository component of the internal
138
+ -- architecture.
139
+ -- If the current assembly does not provide this component, this field is 'nil'.
140
+ --
141
+ -- @usage oil.types:register(oil.corba.idl.sequence{oil.corba.idl.string}) .
142
+ -- @usage oil.types:lookup("CORBA::StructDescription") .
143
+ -- @usage oil.types:lookup_id("IDL:omg.org/CORBA/InterfaceDef:1.0") .
144
+ --
145
+ types = TypeRepository and TypeRepository.types
146
+
147
+ --------------------------------------------------------------------------------
148
+ -- Loads an IDL code strip into the internal interface repository.
149
+ --
150
+ -- The IDL specified will be parsed by the LuaIDL compiler and the resulting
151
+ -- definitions are updated in the internal interface repository.
152
+ -- If any errors occurs during the parse no definitions are loaded into the IR.
153
+ --
154
+ -- @param idlspec string The IDL code strip to be loaded into the local IR.
155
+ -- @return ... object IDL descriptors that represents the loaded definitions.
156
+ --
157
+ -- @usage oil.loadidl [[
158
+ -- interface Hello {
159
+ -- attribute boolean quiet;
160
+ -- readonly attribute unsigned long count;
161
+ -- string say_hello_to(in string msg);
162
+ -- };
163
+ -- ]] .
164
+ --
165
+ function loadidl(idlspec)
166
+ assert.type(idlspec, "string", "IDL specification")
167
+ return assert.results(TypeRepository.compiler:load(idlspec))
168
+ end
169
+
170
+ --------------------------------------------------------------------------------
171
+ -- Loads an IDL file into the internal interface repository.
172
+ --
173
+ -- The file specified will be parsed by the LuaIDL compiler and the resulting
174
+ -- definitions are updated in the internal interface repository.
175
+ -- If any errors occurs during the parse no definitions are loaded into the IR.
176
+ --
177
+ -- @param filename string The path to the IDL file that must be loaded.
178
+ -- @return ... object IDL descriptors that represents the loaded definitions.
179
+ --
180
+ -- @usage oil.loadidlfile "/usr/local/corba/idl/CosNaming.idl" .
181
+ -- @usage oil.loadidlfile("HelloWorld.idl", "/tmp/preprocessed.idl") .
182
+ --
183
+ function loadidlfile(filepath)
184
+ assert.type(filepath, "string", "IDL file path")
185
+ return assert.results(TypeRepository.compiler:loadfile(filepath))
186
+ end
187
+
188
+ --------------------------------------------------------------------------------
189
+ -- Get the servant of the internal interface repository.
190
+ --
191
+ -- Function used to retrieve a reference to the integrated Interface Repository.
192
+ -- It returns a reference to the object that implements the internal Interface
193
+ -- Repository and exports local cached interface definitions.
194
+ --
195
+ -- @return proxy CORBA object that exports the local interface repository.
196
+ --
197
+ -- @usage oil.writeto("ir.ior", oil.tostring(oil.getLIR())) .
198
+ --
199
+ function getLIR()
200
+ return newservant(TypeRepository.types,
201
+ "IDL:omg.org/CORBA/Repository:1.0",
202
+ "InterfaceRepository")
203
+ end
204
+
205
+ --------------------------------------------------------------------------------
206
+ -- Get the remote interface repository used to retrieve interface definitions.
207
+ --
208
+ -- Function used to set the remote Interface Repository that must be used to
209
+ -- retrieve interface definitions not stored in the internal IR.
210
+ -- Once these definitions are acquired, they are stored in the internal IR.
211
+ --
212
+ -- @return proxy Proxy for the remote IR currently used.
213
+ --
214
+ function getIR()
215
+ return TypeRepository.delegated
216
+ end
217
+
218
+ --------------------------------------------------------------------------------
219
+ -- Defines a remote interface repository used to retrieve interface definitions.
220
+ --
221
+ -- Function used to get a reference to the Interface Repository used to retrieve
222
+ -- interface definitions not stored in the internal IR.
223
+ --
224
+ -- @param ir proxy Proxy for the remote IR to be used.
225
+ --
226
+ -- @usage oil.setIR(oil.newproxy("corbaloc::cos_host/InterfaceRepository",
227
+ -- "IDL:omg.org/CORBA/Repository:1.0")) .
228
+ --
229
+ function setIR(ir)
230
+ TypeRepository.delegated = ir
231
+ end
232
+
233
+ --------------------------------------------------------------------------------
234
+ -- Creates a proxy for a remote object defined by a textual reference.
235
+ --
236
+ -- The value of reference must be a string containing reference information of
237
+ -- the object the new new proxy will represent like a stringfied IOR
238
+ -- (Inter-operable Object Reference) or corbaloc.
239
+ -- Optionally, an interface supported by the remote object may be defined, in
240
+ -- this case no attempt is made to determine the actual object interface, i.e.
241
+ -- no network communication is made to check the object's interface.
242
+ --
243
+ -- @param object string Textual representation of object's reference the new
244
+ -- proxy will represent.
245
+ -- @param interface string [optional] Interface identification in the interface
246
+ -- repository, like a repID or absolute name of a interface the remote object
247
+ -- supports (no interface or type check is done).
248
+ --
249
+ -- @return table Proxy to the remote object.
250
+ --
251
+ -- @usage oil.newproxy("IOR:00000002B494...") .
252
+ -- @usage oil.newproxy("IOR:00000002B494...", "HelloWorld::Hello") .
253
+ -- @usage oil.newproxy("IOR:00000002B494...", "IDL:HelloWorld/Hello:1.0") .
254
+ -- @usage oil.newproxy("corbaloc::host:8080/Key", "IDL:HelloWorld/Hello:1.0") .
255
+ --
256
+ function newproxy(object, type)
257
+ if Config then init(Config) end
258
+ assert.type(object, "string", "object reference")
259
+ return assert.results(ProxyManager.proxies:fromstring(object, type))
260
+ end
261
+
262
+ --------------------------------------------------------------------------------
263
+ -- Narrow an object reference into some more specific interface supported by the
264
+ -- remote object.
265
+ --
266
+ -- The object's reference is defined as a proxy object.
267
+ -- If you wish to create a proxy to an object specified by a textual reference
268
+ -- like an IOR (Inter-operable Object Reference) that is already narrowed into
269
+ -- function.
270
+ -- The interface the object reference must be narrowed into is defined by the
271
+ -- parameter 'interface' (e.g. an interface repository ID).
272
+ -- If no interface is defined, then the object reference is narrowed to the most
273
+ -- specific interface supported by the remote object.
274
+ -- Note that in the former case, no attempt is made to determine the actual
275
+ -- object interface, i.e. no network communication is made to check the object's
276
+ -- interface.
277
+ --
278
+ -- @param proxy table Proxy that represents the remote object which reference
279
+ -- must be narrowed.
280
+ -- @param interface string [optional] Identification of the interface the
281
+ -- object reference must be narrowed into (no interface or type check is
282
+ -- made).
283
+ --
284
+ -- @return table New proxy to the remote object narrowed into some interface
285
+ -- supported by the object.
286
+ --
287
+ -- @usage oil.narrow(ns:resolve_str("HelloWorld")) .
288
+ -- @usage oil.narrow(ns:resolve_str("HelloWorld"), "IDL:HelloWorld/Hello:1.0") .
289
+ --
290
+ -- @see newproxy
291
+ --
292
+ function narrow(object, type)
293
+ assert.type(object, "table", "object proxy")
294
+ if type then assert.type(type, "string", "interface definition") end
295
+ return object and object:_narrow(type)
296
+ end
297
+
298
+ --------------------------------------------------------------------------------
299
+ -- Creates a new servant implemented in Lua that supports some interface.
300
+ --
301
+ -- Function used to create a new servant from a table containing attribute
302
+ -- values and operation implementations.
303
+ -- The value of impl is used as the implementation of the a servant with
304
+ -- interface defined by parameter interface (e.g. repository ID or absolute
305
+ -- name of a given IDL interface stored in the IR).
306
+ -- Optionally, an object key value may be specified to create persistent
307
+ -- references.
308
+ -- The servant returned by this function offers all servant attributes and
309
+ -- methods, as well as implicit basic operations like CORBA's _interface or
310
+ -- _is_a.
311
+ -- After this call any requests which object key matches the key of the servant
312
+ -- are dispathed to its implementation.
313
+ --
314
+ -- @param object table Value used as the servant implementation (may be any
315
+ -- indexable value, e.g. userdata with a metatable that defined the __index
316
+ -- field).
317
+ -- @param interface string Interface identification line an absolute name of the
318
+ -- interface in the internal interface repository.
319
+ -- @param key string [optional] User-defined object key used in creation of the
320
+ -- object reference.
321
+ --
322
+ -- @return table servant created.
323
+ --
324
+ -- @usage oil.newservant({say_hello_to=print},"IDL:HelloWorld/Hello:1.0") .
325
+ -- @usage oil.newservant({say_hello_to=print},"::HelloWorld::Hello") .
326
+ -- @usage oil.newservant({say_hello_to=print},"::HelloWorld::Hello", "Key") .
327
+ --
328
+ function newservant(impl, type, key)
329
+ if Config then init(Config) end
330
+ if not impl then assert.illegal(impl, "servant's implementation") end
331
+ if type then assert.type(type, "string", "interface definition") end
332
+ if key then assert.type(key, "string", "servant's key") end
333
+ return assert.results(ServantManager.servants:register(impl, key, type))
334
+ end
335
+
336
+ --------------------------------------------------------------------------------
337
+ -- Deactivates a servant by removing its implementation from the object map.
338
+ --
339
+ -- If 'object' is a servant (i.e. the object returned by 'newservant') then it
340
+ -- is deactivated.
341
+ -- Alternatively, the 'object' parameter may be the servant's object key.
342
+ -- Only in the case that the servant was created with an implicitly created key
343
+ -- by the ORB then the 'object' can be the servant's implementation.
344
+ -- Since a single implementation object can be used to create many servants with
345
+ -- different interface, in this case the 'type' parameter must be provided with
346
+ -- the exact servant's interface.
347
+ --
348
+ -- @param object string|object Servant's object key, servant's implementation or
349
+ -- servant itself.
350
+ -- @param type string Identification of the servant's interface (e.g. repository
351
+ -- ID or absolute name).
352
+ --
353
+ -- @usage oil.deactivate(oil.newservant(impl, "::MyInterface", "objkey")) .
354
+ -- @usage oil.deactivate("objkey") .
355
+ -- @usage oil.deactivate(impl, "MyInterface") .
356
+ --
357
+ function deactivate(object, type)
358
+ if not object then
359
+ assert.illegal(object,
360
+ "object reference (servant, implementation or object key expected)")
361
+ end
362
+ return ServantManager.servants:remove(object, type)
363
+ end
364
+
365
+ --------------------------------------------------------------------------------
366
+ -- Returns textual information that identifies the servant.
367
+ --
368
+ -- This function is used to get textual information that references a servant
369
+ -- or proxy like an IOR (Inter-operable Object Reference).
370
+ --
371
+ -- @param servant object Servant which textual referecence must be taken.
372
+ --
373
+ -- @return string Textual referecence to the servant.
374
+ --
375
+ -- @usage oil.writeto("ref.ior", oil.tostring(oil.newservant(impl, "::Hello"))).
376
+ --
377
+ function tostring(object)
378
+ assert.type(object, "table", "servant object")
379
+ return assert.results(ServantManager.servants:tostring(object))
380
+ end
381
+
382
+ --------------------------------------------------------------------------------
383
+ -- Default configuration for creation of the default ORB instance.
384
+ --
385
+ -- The configuration values may differ accordingly to the underlying protocol.
386
+ -- For Internet IOP (IIOP) protocol the current options are the host name or IP
387
+ -- address and port that ORB must bind to, as well as the host name or IP
388
+ -- address and port that must be used in creation of object references.
389
+ --
390
+ -- @field tag number Tag of the IOP protocol the ORB shall use. The default is
391
+ -- 0, that indicates the Internet IOP (IIOP).
392
+ -- @field host string Host name or IP address. If none is provided the ORB binds
393
+ -- to all current net interfaces.
394
+ -- @field port number Port the ORB must listen. If none is provided, the ORB
395
+ -- tries to bind to a port in the range [2809; 9999].
396
+ -- @field refhost string Host name or IP address informed in object references.
397
+ -- @field refport number Port informed in object references.
398
+ --
399
+ -- @usage oil.Config.host = "middleware.inf.puc-rio.br" .
400
+ -- @usage oil.Config.host = "10.223.10.56" .
401
+ -- @usage oil.Config.port = 8080 .
402
+ -- @usage oil.Config = {host = "10.223.10.56", port = 8080 } .
403
+ --
404
+ -- @see init
405
+ --
406
+ Config = {}
407
+
408
+ --------------------------------------------------------------------------------
409
+ -- Initialize the OiL main ORB.
410
+ --
411
+ -- Initialize the default ORB instance with the provided configurations like
412
+ -- described in 'Config'.
413
+ -- If the default ORB already is created then this instance is returned.
414
+ -- This default ORB is used by all objects and proxies created by newservant and
415
+ -- newproxy functions.
416
+ --
417
+ -- @param config table Configuration used to create the default ORB instance.
418
+ -- @return table Configuration values actually used by the ORB instance.
419
+ --
420
+ -- @usage oil.init() .
421
+ -- @usage oil.init{ host = "middleware.inf.puc-rio.br" } .
422
+ -- @usage oil.init{ host = "10.223.10.56", port = 8080 } .
423
+ --
424
+ -- @see Config
425
+ --
426
+ function init(config)
427
+ config, Config = config or Config, nil
428
+ assert.type(config, "table", "ORB configuration")
429
+ return assert.results(self.RequestReceiver.acceptor:initialize(config))
430
+ end
431
+
432
+ --------------------------------------------------------------------------------
433
+ -- Checks whether there is some request pending
434
+ --
435
+ -- Function used to checks whether there is some unprocessed ORB request
436
+ -- pending.
437
+ -- It returns true if there is some request pending that must be processed by
438
+ -- the main ORB or false otherwise.
439
+ --
440
+ -- @return boolean True if there is some ORB request pending or false otherwise.
441
+ --
442
+ -- @usage while oil.pending() do oil.step() end .
443
+ --
444
+ function pending()
445
+ return assert.results(RequestReceiver.acceptor:hasrequest())
446
+ end
447
+
448
+ --------------------------------------------------------------------------------
449
+ -- Waits for an ORB request and process it.
450
+ --
451
+ -- Function used to wait for an ORB request and process it.
452
+ -- Only one single ORB request is processed at each call.
453
+ -- It returns true if no exception is raised during request processing, or 'nil'
454
+ -- and the raised exception otherwise.
455
+ --
456
+ -- @usage while oil.pending() do oil.step() end .
457
+ --
458
+ function step()
459
+ return assert.results(RequestReceiver.acceptor:acceptone())
460
+ end
461
+
462
+ --------------------------------------------------------------------------------
463
+ -- Runs the ORB main loop.
464
+ --
465
+ -- Function used to process all remote requisitions continuously until some
466
+ -- exception is raised.
467
+ -- If an exception is raised during the processing of requests this function
468
+ -- returns nil and the raised exception.
469
+ -- This function implicitly initiates the ORB if it was not initialized yet.
470
+ --
471
+ -- @see init
472
+ --
473
+ function run()
474
+ if Config then init(Config) end
475
+ return assert.results(RequestReceiver.acceptor:acceptall())
476
+ end
477
+
478
+ --------------------------------------------------------------------------------
479
+ -- Shuts down the ORB.
480
+ --
481
+ -- Stops the ORB main loop if it is executing, handles all pending requests and
482
+ -- closes all connections.
483
+ --
484
+ -- @usage oil.shutdown()
485
+ --
486
+ function shutdown()
487
+ return assert.results(RequestReceiver.acceptor:halt())
488
+ end
489
+
490
+ --------------------------------------------------------------------------------
491
+ -- Internal coroutine scheduler used by OiL.
492
+ --
493
+ -- This is a alias for a facet of the Task Manager component of the internal
494
+ -- architecture.
495
+ -- If the current assembly does not provide this component, this field is 'nil'.
496
+ -- It provides the same API of the 'loop.thread.Scheduler' class.
497
+ --
498
+ -- @usage thread = oil.tasks:current()
499
+ -- @usage oil.tasks:suspend()
500
+ -- @usage oil.tasks:resume(thread)
501
+ --
502
+ tasks = BasicSystem and BasicSystem.tasks
503
+
504
+ --------------------------------------------------------------------------------
505
+ -- Function that must be used to perform protected calls in applications.
506
+ --
507
+ -- It is a 'coroutine-safe' version of the 'pcall' function of the Lua standard
508
+ -- library.
509
+ --
510
+ -- @param func function Function to be executed in protected mode.
511
+ -- @param ... any Additional parameters passed to protected function.
512
+ --
513
+ -- @param success boolean 'true' if function execution did not raised any errors
514
+ -- or 'false' otherwise.
515
+ -- @param ... any Values returned by the function or an the error raised by the
516
+ -- function.
517
+ --
518
+ pcall = tasks and tasks.pcall or luapcall
519
+
520
+ --------------------------------------------------------------------------------
521
+ -- Function executes the main function of the application.
522
+ --
523
+ -- The application's main function is executed in a new thread if the current
524
+ -- assembly provides thread support.
525
+ -- This may only return when the application terminates.
526
+ --
527
+ -- @param main function Appplication's main function.
528
+ --
529
+ -- @usage oil.main(oil.run)
530
+ -- @usage oil.main(function() print(oil.tostring(oil.getLIR())) oil.run() end)
531
+ --
532
+ function main(main, ...)
533
+ assert.type(main, "function", "main function")
534
+ if tasks then
535
+ assert.results(tasks:register(coroutine.create(main), tasks.currentkey))
536
+ return BasicSystem.control:run(...)
537
+ else
538
+ return main(...)
539
+ end
540
+ end
541
+
542
+ --------------------------------------------------------------------------------
543
+ -- Creates and starts the execution of a new the thread.
544
+ --
545
+ -- Creates a new thread to execute the function 'func' with the extra parameters
546
+ -- provided.
547
+ -- This function imediately starts the execution of the new thread and the
548
+ -- original thread is only resumed again acordingly to the the scheduler's
549
+ -- internal policy.
550
+ -- This function can only be invocated from others threads, including the one
551
+ -- executing the application's main function (see 'main').
552
+ --
553
+ -- @param func function Function that the new thread will execute.
554
+ -- @param ... any Additional parameters passed to the 'func' function.
555
+ --
556
+ -- @usage oil.main(function() oil.newthread(oil.run) oil.newproxy(oil.readfrom("ior")):register(localobj) end)
557
+ --
558
+ -- @see main
559
+ --
560
+ function newthread(func, ...)
561
+ assert.type(func, "function", "thread body")
562
+ return BasicSystem.tasks:start(func, ...)
563
+ end
564
+
565
+ --------------------------------------------------------------------------------
566
+ -- Suspends the execution of the current thread for some time.
567
+ --
568
+ -- @param time number Delay in seconds that the execution must be resumed.
569
+ --
570
+ -- @usage oil.sleep(5.5)
571
+ --
572
+ function sleep(time)
573
+ assert.type(time, "number", "time")
574
+ return BasicSystem.sockets:sleep(time)
575
+ end
576
+
577
+ --------------------------------------------------------------------------------
578
+ -- Get the current system time.
579
+ --
580
+ -- @return number Number of seconds since a fixed point in the past.
581
+ --
582
+ -- @usage local start = oil.time(); oil.sleep(3); print("I slept for", oil.time() - start)
583
+ --
584
+ function time()
585
+ return BasicSystem.sockets:gettime()
586
+ end
587
+
588
+ --------------------------------------------------------------------------------
589
+ -- Creates a new value encoder that marshal values into strings.
590
+ --
591
+ -- The encoder marshals values in a CORBA's CDR encapsulated stream, i.e.
592
+ -- includes an indication of the endianess used in value codification.
593
+ --
594
+ -- @return object Value encoder that provides operation 'put(value, [type])' to
595
+ -- marshal values and operation 'getdata()' to get the marshaled stream.
596
+ --
597
+ -- @usage encoder = oil.newencoder(); encoder:put({1,2,3}, oil.corba.idl.sequence{oil.corba.idl.long})
598
+ -- @usage encoder = oil.newencoder(); encoder:put({1,2,3}, oil.types:lookup("MyLongSeq"))
599
+ --
600
+ function newencoder()
601
+ return assert.results(ValueEncoder.codec:encoder(true))
602
+ end
603
+
604
+ --------------------------------------------------------------------------------
605
+ -- Creates a new value decoder that extracts marshaled values from strings.
606
+ --
607
+ -- The decoder reads CORBA's CDR encapsulated streams, i.e. includes an
608
+ -- indication of the endianess used in value codification.
609
+ --
610
+ -- @param stream string String containing a stream with marshaled values.
611
+ --
612
+ -- @return object Value decoder that provides operation 'get([type])' to
613
+ -- unmarshal values from a marshaled stream.
614
+ --
615
+ -- @usage decoder = oil.newdecoder(stream); val = decoder:get(oil.corba.idl.sequence{oil.corba.idl.long})
616
+ -- @usage decoder = oil.newdecoder(stream); val = decoder:get(oil.types:lookup("MyLongSeq"))
617
+ --
618
+ function newdecoder(stream)
619
+ assert.type(stream, "string", "byte stream")
620
+ return assert.results(ValueEncoder.codec:decoder(stream, true))
621
+ end
622
+
623
+ --------------------------------------------------------------------------------
624
+ -- Creates a new exception object with the given body.
625
+ --
626
+ -- The 'body' must contain the values of the exceptions fields and must also
627
+ -- contain the exception identification in index 1 (in CORBA this
628
+ -- identification is a repID).
629
+ --
630
+ -- @param body table Exception body with all its field values and exception ID.
631
+ --
632
+ -- @return object Exception that provides meta-method '__tostring' that provides
633
+ -- a pretty-printing.
634
+ --
635
+ -- @usage error(oil.newexcept{ "IDL:omg.org.CORBA/INTERNAL:1.0", minor_code_value = 2 })
636
+ --
637
+ function newexcept(body)
638
+ assert.type(body, "table", "exception body")
639
+ local except = assert.results(TypeRepository.types:resolve(body[1]))
640
+ assert.type(except, "idl except", "referenced exception type")
641
+ body[1] = except.repID
642
+ return assert.Exception(body)
643
+ end
644
+
645
+ --------------------------------------------------------------------------------
646
+ -- Defines a exception handling function for proxies.
647
+ --
648
+ -- The handling function receives the following parameters:
649
+ -- proxy : object proxy that perfomed the operation.
650
+ -- exception: exception/error raised.
651
+ -- operation: descriptor of the operation that raised the exception.
652
+ -- If the parameter 'type' is provided, then the exception handling function
653
+ -- will be applied only to proxies of that type (i.e. interface).
654
+ -- Exception handling functions are nor cumulative.
655
+ -- For example, is the is an exception handling function defined for all proxies
656
+ -- and other only for proxies of a given type, then the later will be used for
657
+ -- proxies of that given type.
658
+ -- Additionally, exceptions handlers are not inherited through interface
659
+ -- hierarchies.
660
+ --
661
+ -- @param handler function Exception handling function.
662
+ -- @param type string Interface ID of a group of proxies (e.g. repID).
663
+ --
664
+ -- @usage oil.setexcatch(function(_, except) error(tostring(except)) end)
665
+ --
666
+ function setexcatch(handler, type)
667
+ assert.results(ProxyManager.proxies:excepthandler(handler, type))
668
+ end
669
+
670
+ --------------------------------------------------------------------------------
671
+ -- This feature is disabled by default.
672
+ -- To enable this feature use the following command before requiring the 'oil'
673
+ -- package for the first time.
674
+ --
675
+ -- package.loaded["oil.component"] = require "loop.component.wrapped"
676
+ -- package.loaded["oil.port"] = require "loop.component.intercepted"
677
+ --
678
+ local port = require "oil.port"
679
+ local ClientSide = require "oil.corba.interceptors.ClientSide"
680
+ local ServerSide = require "oil.corba.interceptors.ServerSide"
681
+
682
+ --------------------------------------------------------------------------------
683
+ -- Sets a CORBA-specific interceptor for operation invocations in the client-size.
684
+ --
685
+ -- The interceptor must provide the following operations
686
+ --
687
+ -- send_request(request): 'request' structure is described below.
688
+ -- response_expected: [boolean] (read-only)
689
+ -- object_key: [string] (read-only)
690
+ -- operation: [string] (read-only) Operation name.
691
+ -- service_context: [table] Set this value to define a service context
692
+ -- values. See 'ServiceContextList' in CORBA specs.
693
+ -- success: [boolean] set this value to cancel invocation:
694
+ -- true ==> invocation successfull
695
+ -- false ==> invocation raised an exception
696
+ -- Note: The integer indexes store the operation's parameter values and
697
+ -- should also be used to store the results values if the request is canceled
698
+ -- (see note below).
699
+ --
700
+ -- receive_reply(reply): 'reply' structure is described below.
701
+ -- service_context: [table] (read-only) See 'ServiceContextList' in CORBA
702
+ -- specs.
703
+ -- reply_status: [string] (read-only)
704
+ -- success: [boolean] Identifies the kind of result:
705
+ -- true ==> invocation successfull
706
+ -- false ==> invocation raised an exception
707
+ -- Note: The integer indexes store the results that will be sent as request
708
+ -- result. For successful invocations these values must be the operation's
709
+ -- results (return, out and inout parameters) in the same order they appear
710
+ -- in the IDL description. For failed invocations, index 1 must be the
711
+ -- exception that identifies the failure.
712
+ --
713
+ -- The 'request' and 'reply' are the same table in a single invocation.
714
+ -- Therefore, the fields of 'request' are also available in 'reply' except for
715
+ -- those defined in the description of 'reply'.
716
+ --
717
+ function setclientinterceptor(iceptor)
718
+ if iceptor then
719
+ iceptor = ClientSide{ interceptor = iceptor }
720
+ end
721
+ local port = require "loop.component.intercepted"
722
+ port.intercept(OperationRequester, "requests", "method", iceptor)
723
+ port.intercept(OperationRequester, "messenger", "method", iceptor)
724
+ end
725
+
726
+ --------------------------------------------------------------------------------
727
+ -- Sets a CORBA-specific interceptor for operation invocations in the server-size.
728
+ --
729
+ -- The interceptor must provide the following operations
730
+ --
731
+ -- receive_request(request): 'request' structure is described below.
732
+ -- service_context: [table] (read-only) See 'ServiceContextList' in CORBA
733
+ -- specs.
734
+ -- request_id: [number] (read-only)
735
+ -- response_expected: [boolean] (read-only)
736
+ -- object_key: [string] (read-only)
737
+ -- operation: [string] (read-only) Operation name.
738
+ -- servant: [object] (read-only) Local object the invocation will be dispatched to.
739
+ -- method: [function] (read-only) Function that will be invoked on object 'servant'.
740
+ -- success: [boolean] Set this value to cancel invocation:
741
+ -- true ==> invocation successfull
742
+ -- false ==> invocation raised an exception
743
+ -- Note: The integer indexes store the operation's parameter values and
744
+ -- should also be used to store the results values if the request is canceled
745
+ -- (see note below).
746
+ --
747
+ -- send_reply(reply): 'reply' structure is described below.
748
+ -- service_context: [table] Set this value to define a service context
749
+ -- values. See 'ServiceContextList' in CORBA specs.
750
+ -- success: [boolean] identifies the kind of result:
751
+ -- true ==> invocation successfull
752
+ -- false ==> invocation raised an exception
753
+ -- Note: The integer indexes store the results that will be sent as request
754
+ -- result. For successful invocations these values must be the operation's
755
+ -- results (return, out and inout parameters) in the same order they appear
756
+ -- in the IDL description. For failed invocations, index 1 must be the
757
+ -- exception that identifies the failure.
758
+ --
759
+ -- The 'request' and 'reply' are the same table in a single invocation.
760
+ -- Therefore, the fields of 'request' are also available in 'reply' except for
761
+ -- those defined in the description of 'reply'.
762
+ --
763
+ function setserverinterceptor(iceptor)
764
+ if iceptor then
765
+ iceptor = ServerSide{ interceptor = iceptor }
766
+ end
767
+ local port = require "loop.component.intercepted"
768
+ port.intercept(RequestListener, "messenger", "method", iceptor)
769
+ port.intercept(RequestDispatcher, "dispatcher", "method", iceptor)
770
+ end
771
+
772
+ --------------------------------------------------------------------------------
773
+ -- Alias of 'newservant' function.
774
+ --
775
+ -- For compatibility with old OiL applications.
776
+ --
777
+ -- @see newservant
778
+ --
779
+ newobject = newservant
780
+
781
+ --------------------------------------------------------------------------------
782
+ -- Alias of 'newservant' function.
783
+ --
784
+ -- For compatibility with LuaOrb applications.
785
+ --
786
+ -- @see newservant
787
+ --
788
+ createservant = newservant
789
+
790
+ --------------------------------------------------------------------------------
791
+ -- Alias of 'newproxy' function.
792
+ --
793
+ -- For compatibility with LuaOrb applications.
794
+ --
795
+ -- @see newproxy
796
+ --
797
+ createproxy = newproxy
798
+
799
+ --------------------------------------------------------------------------------
800
+ -- Writes a text into file.
801
+ --
802
+ -- Utility function for writing stringfied IORs into a file.
803
+ --
804
+ function writeto(filepath, text)
805
+ local result, errmsg = io.open(filepath, "w")
806
+ if result then
807
+ local file = result
808
+ result, errmsg = file:write(text)
809
+ file:close()
810
+ end
811
+ return result, errmsg
812
+ end
813
+
814
+ --------------------------------------------------------------------------------
815
+ -- Read the contents of a file.
816
+ --
817
+ -- Utility function for reading stringfied IORs from a file.
818
+ --
819
+ function readfrom(filepath)
820
+ local result, errmsg = io.open(filepath)
821
+ if result then
822
+ local file = result
823
+ result, errmsg = file:read("*a")
824
+ file:close()
825
+ end
826
+ return result, errmsg
827
+ end
828
+
829
+ --------------------------------------------------------------------------------
830
+ -- Creates a file with the IOR of an object.
831
+ --
832
+ -- For compatibility with older versions of OiL.
833
+ --
834
+ function writeIOR(object, file)
835
+ return writeto(file, tostring(object))
836
+ end
837
+
838
+ --------------------------------------------------------------------------------
839
+ -- Alias of 'readfrom' function.
840
+ --
841
+ -- For compatibility with older versions of OiL.
842
+
843
+ readIOR = readfrom
844
+
845
+ --------------------------------------------------------------------------------
846
+ return _M