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,50 @@
1
+ local oil = require "oil"
2
+ local oo = require "oil.oo"
3
+ local assert = require "oil.assert"
4
+ local UnorderedArraySet = require "loop.collection.UnorderedArraySet"
5
+ local ProxyPushConsumer = require "oil.corba.services.event.ProxyPushConsumer"
6
+
7
+ module("oil.corba.services.event.SupplierAdmin", oo.class)
8
+
9
+ function __init(class, channel)
10
+ return oo.rawnew(class, {
11
+ channel = channel,
12
+ proxypushconsumers = UnorderedArraySet()
13
+ })
14
+ end
15
+
16
+ -- The obtain_push_consumer operation returns a ProxyPushConsumer object.
17
+ -- The ProxyPushConsumer object is then used to connect a push-style supplier.
18
+
19
+ function obtain_push_consumer(self)
20
+ return ProxyPushConsumer(self)
21
+ end
22
+
23
+ -- invoked by ProxyPushConsumer to signal it's connected
24
+
25
+ function add_push_supplier(self, proxy, push_supplier)
26
+ self.proxypushconsumers:add(proxy)
27
+ self.channel:add_push_supplier(push_supplier)
28
+ end
29
+
30
+ -- invoked by ProxyPushConsumer to signal it's connected
31
+
32
+ function rem_push_supplier(self, proxy, push_supplier)
33
+ assert.results(self.proxypushconsumers:contains(proxy))
34
+ self.proxypushconsumers:remove(proxy)
35
+ self.channel:rem_push_supplier(push_supplier)
36
+ end
37
+
38
+ -- invoked by the channel to disconnect all proxies of the admin
39
+ -- must reverse iterate over proxypushconsumers because the disconnection
40
+ -- removes the supplier from the array.
41
+
42
+ function destroy(self)
43
+ for i=#self.proxypushconsumers,1,-1 do
44
+ local proxy = self.proxypushconsumers[i]
45
+ oil.pcall(proxy.disconnect_push_consumer, proxy)
46
+ end
47
+ self.proxypushconsumers = nil
48
+ self.channel = nil
49
+ end
50
+
@@ -0,0 +1,436 @@
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 : Interoperable Naming Service --
13
+ -- Authors: Leonardo S. A. Maciel <leonardo@maciel.org> --
14
+ --------------------------------------------------------------------------------
15
+ -- Interface: --
16
+ -- new() Creates a new instance of a CORBA Naming Service --
17
+ --------------------------------------------------------------------------------
18
+ -- Notes: --
19
+ -- See Naming Service Specification v1.3 --
20
+ -- See section 13.6.10.3 of CORBA 3.0 specification for IIOP corbaloc. --
21
+ -- --
22
+ -- Altough corbaname is specified in section 2.5.3 of Naming Service --
23
+ -- Specification v1.3, it is the responsibility of the ORB to implement it. --
24
+ -- --
25
+ -- There are no limitations on the length of a name component. --
26
+ -- There are no limitations on the number of name components in a name. --
27
+ -- There are no limitations on the maximum number of bindings in a context. --
28
+ -- There are no limitations on the total number of bindings. --
29
+ -- There are no limitations on the maximum number of contexts. --
30
+ -- There are no limitations on character values or character sequences that --
31
+ -- may be used on a name component. --
32
+ -- There are no means or policies to deal with orphaned contexts, bindings --
33
+ -- or binding iterators. --
34
+ -- The CannotProceed exception is raised whenever any but the last name --
35
+ -- component of a name is not a context. --
36
+ --------------------------------------------------------------------------------
37
+
38
+ local string = require "string"
39
+ local table = require "table"
40
+
41
+ local oo = require "oil.oo"
42
+ local assert = require "oil.assert"
43
+ local MapWithArrayOfKey = require "loop.collection.MapWithArrayOfKeys"
44
+ local UnorderedArray = require "loop.collection.UnorderedArray" --[[VERBOSE]] local verbose = require "oil.verbose"
45
+
46
+ module "oil.corba.services.naming"
47
+
48
+ --------------------------------------------------------------------------------
49
+ -- Converting between CosNames, Stringified Names and URLs ---------------------
50
+
51
+ local function to_url_escape(s)
52
+ return string.gsub(s, "([^a-zA-Z0-9;/:%?@&=%+%$,%-_%.!%~*'%(%)])", function(s)
53
+ return string.format("%%%x", string.byte(s))
54
+ end)
55
+ end
56
+
57
+ local function to_string_escape(s)
58
+ return string.gsub(s, "([/\\.])", "\\%1")
59
+ end
60
+
61
+ local function to_string(n)
62
+ assert.type(n, "table", "name")
63
+ for i = 1,#n do
64
+ local id = n[i].id
65
+ local kind = n[i].kind
66
+ if kind == "" then
67
+ if id == "" then
68
+ n[i] = "."
69
+ else
70
+ n[i] = to_string_escape(id)
71
+ end
72
+ else
73
+ n[i] = to_string_escape(id).."."..to_string_escape(kind)
74
+ end
75
+ --TODO:[lsam] verificar iso-8859-1 ???
76
+ --valid range 32-126 160-255
77
+ end
78
+ local sn = table.concat(n, "/")
79
+ if sn == "" then
80
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/InvalidName:1.0" }
81
+ end
82
+ return sn
83
+ end
84
+
85
+ local function to_name(sn)
86
+ local n = {}
87
+ local id = ""
88
+ local kind = ""
89
+ local inEscapeMode = false
90
+ local inKindMode = false
91
+ local last = "/"
92
+ --TODO:[lsam] verificar iso-8859-1 ???
93
+ --valid range 32-126 160-255
94
+ for i=1,string.len(sn)+1 do
95
+ local cur = string.sub(sn,i,i)
96
+ if inEscapeMode then
97
+ if inKindMode then
98
+ kind = kind..cur
99
+ else
100
+ id = id..cur
101
+ end
102
+ inEscapeMode = false
103
+ else
104
+ if cur == "\\" then
105
+ inEscapeMode = true
106
+ elseif cur == "." then
107
+ inKindMode = true
108
+ elseif cur == "/" or i == string.len(sn)+1 then
109
+ if last == "/" then
110
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/InvalidName:1.0" }
111
+ else
112
+ table.insert(n, {id=id, kind=kind})
113
+ id = ""
114
+ kind = ""
115
+ inKindMode = false
116
+ end
117
+ else
118
+ if inKindMode then
119
+ kind = kind..cur
120
+ else
121
+ id = id..cur
122
+ end
123
+ end
124
+ end
125
+ last = cur
126
+ end
127
+ return n
128
+ end
129
+
130
+ --------------------------------------------------------------------------------
131
+ -- BindingIterator interface implementation ------------------------------------
132
+
133
+ BindingIterator = oo.class()
134
+
135
+ function BindingIterator:__init(bindings)
136
+ return oo.rawnew(self, {bindings = bindings})
137
+ end
138
+
139
+ function BindingIterator:next_one()
140
+ if not self.bindings then
141
+ assert.exception{"IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"}
142
+ end
143
+ local obj = table.remove(self.bindings, 1)
144
+ return (obj~=nil), obj
145
+ end
146
+
147
+ function BindingIterator:next_n(how_many)
148
+ if not self.bindings then
149
+ assert.exception{"IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"}
150
+ end
151
+ local bl = {}
152
+ if how_many == 0 then
153
+ assert.exception{"IDL:omg.org/CORBA/BAD_PARAM:1.0"}
154
+ end
155
+ for i=1,#self.bindings do
156
+ if i > how_many then break end
157
+ table.insert(bl, table.remove(self.bindings,1))
158
+ end
159
+ return (#bl > 0), bl
160
+ end
161
+
162
+ function BindingIterator:destroy()
163
+ if not self.bindings then
164
+ assert.exception{"IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"}
165
+ end
166
+ self.bindings = nil
167
+ end
168
+
169
+ --------------------------------------------------------------------------------
170
+ -- NamingContext interface implementation --------------------------------------
171
+
172
+ NamingContext = oo.class()
173
+
174
+ function NamingContext:__init()
175
+ return oo.rawnew(self, {bindings = MapWithArrayOfKey()})
176
+ end
177
+
178
+ function NamingContext:bind(n, obj)
179
+ local sn, except = to_string({n[1]})
180
+ local r = self.bindings:value(sn)
181
+ if #n > 1 then
182
+ if not r then
183
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
184
+ why = "missing_node",
185
+ rest_of_name = n
186
+ }
187
+ else
188
+ if r.binding_type ~= "ncontext" then
189
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0",
190
+ cxt = self,
191
+ rest_of_name = n
192
+ }
193
+ else
194
+ table.remove(n,1)
195
+ return (r.obj):bind(n, obj)
196
+ end
197
+ end
198
+ else
199
+ if r then
200
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/AlreadyBound:1.0"}
201
+ else
202
+ self.bindings:add(sn, {binding_type="nobject", obj=obj})
203
+ end
204
+ end
205
+ end
206
+
207
+ function NamingContext:rebind(n, obj)
208
+ local sn, except = to_string({n[1]})
209
+ local r = self.bindings:value(sn)
210
+ if #n > 1 then
211
+ if not r then
212
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
213
+ why = "missing_node",
214
+ rest_of_name = n
215
+ }
216
+ else
217
+ if r.binding_type ~= "ncontext" then
218
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0",
219
+ cxt = self,
220
+ rest_of_name = n
221
+ }
222
+ else
223
+ table.remove(n,1)
224
+ return (r.obj):rebind(n, obj)
225
+ end
226
+ end
227
+ else
228
+ if r then
229
+ if r.binding_type ~= "nobject" then
230
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
231
+ why = "not_object",
232
+ rest_of_name = {n[1]}
233
+ }
234
+ else
235
+ r.obj = obj
236
+ end
237
+ else
238
+ self.bindings:add(sn, {binding_type="nobject", obj=obj})
239
+ end
240
+ end
241
+ end
242
+
243
+ function NamingContext:bind_context(n, nc)
244
+ if not nc then assert.exception{"IDL:omg.org/CORBA/BAD_PARAM:1.0"} end
245
+ local sn, except = to_string({n[1]})
246
+ local r = self.bindings:value(sn)
247
+ if #n > 1 then
248
+ if not r then
249
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
250
+ why = "missing_node",
251
+ rest_of_name = n
252
+ }
253
+ else
254
+ if r.binding_type ~= "ncontext" then
255
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0",
256
+ cxt = self,
257
+ rest_of_name = n
258
+ }
259
+ else
260
+ table.remove(n,1)
261
+ return (r.obj):bind_context(n, nc)
262
+ end
263
+ end
264
+ else
265
+ if r then
266
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/AlreadyBound:1.0"}
267
+ else
268
+ self.bindings:add(sn, {binding_type="ncontext", obj=nc})
269
+ end
270
+ end
271
+ end
272
+
273
+ function NamingContext:rebind_context(n, nc)
274
+ if not nc then assert.exception{"IDL:omg.org/CORBA/BAD_PARAM:1.0"} end
275
+ local sn, except = to_string({n[1]})
276
+ local r = self.bindings:value(sn)
277
+ if #n > 1 then
278
+ if not r then
279
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
280
+ why = "missing_node",
281
+ rest_of_name = n
282
+ }
283
+ else
284
+ if r.binding_type ~= "ncontext" then
285
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0",
286
+ cxt = self,
287
+ rest_of_name = n
288
+ }
289
+ else
290
+ table.remove(n,1)
291
+ return (r.obj):rebind_context(n, nc)
292
+ end
293
+ end
294
+ else
295
+ if r then
296
+ if r.binding_type ~= "ncontext" then
297
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
298
+ why = "not_context",
299
+ rest_of_name = {n[1]}
300
+ }
301
+ else
302
+ r.obj = nc
303
+ end
304
+ else
305
+ self.bindings:add(sn, {binding_type="ncontext", obj=nc})
306
+ end
307
+ end
308
+ end
309
+
310
+ function NamingContext:resolve(n)
311
+ local sn, except = to_string({n[1]})
312
+ local r = self.bindings:value(sn)
313
+ if not r then
314
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
315
+ why = "missing_node",
316
+ rest_of_name = n
317
+ }
318
+ elseif #n > 1 then
319
+ if r.binding_type ~= "ncontext" then
320
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0",
321
+ cxt = self,
322
+ rest_of_name = n
323
+ }
324
+ else
325
+ table.remove(n,1)
326
+ return (r.obj):resolve(n)
327
+ end
328
+ else
329
+ return r.obj
330
+ end
331
+ end
332
+
333
+ function NamingContext:unbind(n)
334
+ local sn, except = to_string({n[1]})
335
+ local r = self.bindings:value(sn)
336
+ if not r then
337
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotFound:1.0",
338
+ why = "missing_node",
339
+ rest_of_name = n
340
+ }
341
+ elseif #n > 1 then
342
+ if r.binding_type ~= "ncontext" then
343
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/CannotProceed:1.0",
344
+ cxt = self,
345
+ rest_of_name = n
346
+ }
347
+ else
348
+ table.remove(n,1)
349
+ return (r.obj):unbind(n)
350
+ end
351
+ else
352
+ self.bindings:remove(sn)
353
+ end
354
+ end
355
+
356
+ function NamingContext:new_context()
357
+ local nc = NamingContext()
358
+ return nc
359
+ end
360
+
361
+ function NamingContext:bind_new_context(n)
362
+ local nc = self:new_context()
363
+ self:bind_context(n, nc)
364
+ return nc
365
+ end
366
+
367
+ function NamingContext:destroy()
368
+ if self.bindings:size() > 0 then
369
+ assert.exception{"IDL:omg.org/CosNaming/NamingContext/NotEmpty:1.0" }
370
+ else
371
+ self.bindings = nil
372
+ end
373
+ end
374
+
375
+ local function BindingList(b, how_many)
376
+ return bl, bi
377
+ end
378
+
379
+ function NamingContext:list(how_many)
380
+ local i = 1
381
+ local bl = {}
382
+ local bi = {}
383
+ for i=1,self.bindings:size() do
384
+ local k = self.bindings:keyat(i)
385
+ local v = self.bindings:valueat(i)
386
+ if i > how_many then
387
+ table.insert(bi, {binding_name=to_name(k), binding_type=v.binding_type})
388
+ else
389
+ table.insert(bl, {binding_name=to_name(k), binding_type=v.binding_type})
390
+ end
391
+ end
392
+ return bl, BindingIterator(bi)
393
+ end
394
+
395
+ --------------------------------------------------------------------------------
396
+ -- NamingContextExt interface implementation -----------------------------------
397
+
398
+ NamingContextExt = oo.class({}, NamingContext)
399
+
400
+ function NamingContextExt:to_string(n)
401
+ return to_string(n)
402
+ end
403
+
404
+ function NamingContextExt:to_name(sn)
405
+ return to_name(sn)
406
+ end
407
+
408
+ function NamingContextExt:to_url(addr, sn)
409
+ local url = {"corbaname:", addr}
410
+ if not addr or addr == "" then
411
+ assert.exception{"IDL:omg.org/CosNaming/NamingContextExt/InvalidAddress:1.0"}
412
+ end
413
+ if sn and string.len(sn) > 0 then
414
+ local esn = to_url_escape(sn)
415
+ table.insert(url, "#")
416
+ table.insert(url, esn)
417
+ end
418
+ return table.concat(url)
419
+ end
420
+
421
+ function NamingContextExt:resolve_str(sn)
422
+ return self:resolve(to_name(sn))
423
+ end
424
+
425
+ --------------------------------------------------------------------------------
426
+ -- Resolve initial Name Service ------------------------------------------------
427
+
428
+ -- @return 1 table CORBA object which is the root context of the Naming Service.
429
+ -- @return 2 string Repository ID of interface supported by the Naming Service.
430
+ -- @return 3 string Object key used in the Naming Service object reference.
431
+
432
+ function new()
433
+ return NamingContextExt(),
434
+ "NameService",
435
+ "IDL:omg.org/CosNaming/NamingContextExt:1.0"
436
+ end