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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +69 -0
- data/Rakefile +1 -0
- data/lib/rufus/lua/win.rb +18 -0
- data/lib/rufus/lua/win/version.rb +7 -0
- data/rufus-lua-win.gemspec +23 -0
- data/vendor/lua/bin/liblua.dll +0 -0
- data/vendor/lua/lib/lua/LuaXml.lua +119 -0
- data/vendor/lua/lib/lua/alien.lua +250 -0
- data/vendor/lua/lib/lua/alien/core.dll +0 -0
- data/vendor/lua/lib/lua/alien/struct.dll +0 -0
- data/vendor/lua/lib/lua/base.lua +536 -0
- data/vendor/lua/lib/lua/bin.lua +20 -0
- data/vendor/lua/lib/lua/bit.dll +0 -0
- data/vendor/lua/lib/lua/cdlua.dll +0 -0
- data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
- data/vendor/lua/lib/lua/cdluagl.dll +0 -0
- data/vendor/lua/lib/lua/cdluaim.dll +0 -0
- data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
- data/vendor/lua/lib/lua/copas.lua +543 -0
- data/vendor/lua/lib/lua/coxpcall.lua +57 -0
- data/vendor/lua/lib/lua/date.lua +745 -0
- data/vendor/lua/lib/lua/debug_ext.lua +84 -0
- data/vendor/lua/lib/lua/debug_init.lua +2 -0
- data/vendor/lua/lib/lua/des56.dll +0 -0
- data/vendor/lua/lib/lua/dist/config.lua +109 -0
- data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
- data/vendor/lua/lib/lua/dist/depends.lua +601 -0
- data/vendor/lua/lib/lua/dist/git.lua +307 -0
- data/vendor/lua/lib/lua/dist/init.lua +278 -0
- data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
- data/vendor/lua/lib/lua/dist/package.lua +583 -0
- data/vendor/lua/lib/lua/dist/sys.lua +367 -0
- data/vendor/lua/lib/lua/dist/utils.lua +130 -0
- data/vendor/lua/lib/lua/ex.dll +0 -0
- data/vendor/lua/lib/lua/fstable.lua +116 -0
- data/vendor/lua/lib/lua/getopt.lua +273 -0
- data/vendor/lua/lib/lua/git.lua +5 -0
- data/vendor/lua/lib/lua/git/core.dll +0 -0
- data/vendor/lua/lib/lua/git/objects.lua +121 -0
- data/vendor/lua/lib/lua/git/pack.lua +316 -0
- data/vendor/lua/lib/lua/git/protocol.lua +188 -0
- data/vendor/lua/lib/lua/git/repo.lua +283 -0
- data/vendor/lua/lib/lua/git/util.lua +233 -0
- data/vendor/lua/lib/lua/gzio.dll +0 -0
- data/vendor/lua/lib/lua/gzip.lua +81 -0
- data/vendor/lua/lib/lua/iconv.dll +0 -0
- data/vendor/lua/lib/lua/imlua.dll +0 -0
- data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
- data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
- data/vendor/lua/lib/lua/io_ext.lua +115 -0
- data/vendor/lua/lib/lua/iuplua.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
- data/vendor/lua/lib/lua/iupluacd.dll +0 -0
- data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
- data/vendor/lua/lib/lua/iupluagl.dll +0 -0
- data/vendor/lua/lib/lua/iupluaim.dll +0 -0
- data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
- data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
- data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
- data/vendor/lua/lib/lua/lanes.lua +591 -0
- data/vendor/lua/lib/lua/lanes/core.dll +0 -0
- data/vendor/lua/lib/lua/lcs.lua +55 -0
- data/vendor/lua/lib/lua/lemock.lua +659 -0
- data/vendor/lua/lib/lua/lfs.dll +0 -0
- data/vendor/lua/lib/lua/list.lua +375 -0
- data/vendor/lua/lib/lua/logging.lua +189 -0
- data/vendor/lua/lib/lua/logging/console.lua +22 -0
- data/vendor/lua/lib/lua/logging/email.lua +44 -0
- data/vendor/lua/lib/lua/logging/file.lua +55 -0
- data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
- data/vendor/lua/lib/lua/logging/socket.lua +35 -0
- data/vendor/lua/lib/lua/logging/sql.lua +64 -0
- data/vendor/lua/lib/lua/loop/base.lua +68 -0
- data/vendor/lua/lib/lua/loop/cached.lua +312 -0
- data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
- data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
- data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
- data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
- data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
- data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
- data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
- data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
- data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
- data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
- data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
- data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
- data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
- data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
- data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
- data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
- data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
- data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
- data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
- data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
- data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
- data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
- data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
- data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
- data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
- data/vendor/lua/lib/lua/loop/simple.lua +75 -0
- data/vendor/lua/lib/lua/loop/table.lua +71 -0
- data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
- data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
- data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
- data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
- data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
- data/vendor/lua/lib/lua/lpeg.dll +0 -0
- data/vendor/lua/lib/lua/ltn12.lua +292 -0
- data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
- data/vendor/lua/lib/lua/luacurl.dll +0 -0
- data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
- data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
- data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
- data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
- data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
- data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
- data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
- data/vendor/lua/lib/lua/luagl.dll +0 -0
- data/vendor/lua/lib/lua/luaglu.dll +0 -0
- data/vendor/lua/lib/lua/luaidl.lua +113 -0
- data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
- data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
- data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
- data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
- data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
- data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
- data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
- data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
- data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
- data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
- data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
- data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
- data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
- data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
- data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
- data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
- data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
- data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
- data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
- data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
- data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
- data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
- data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
- data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
- data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
- data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
- data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
- data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
- data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
- data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
- data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
- data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
- data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
- data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
- data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
- data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
- data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
- data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
- data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
- data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
- data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
- data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
- data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
- data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
- data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
- data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
- data/vendor/lua/lib/lua/luars232.dll +0 -0
- data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
- data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
- data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
- data/vendor/lua/lib/lua/luaunit.lua +601 -0
- data/vendor/lua/lib/lua/lxp.dll +0 -0
- data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
- data/vendor/lua/lib/lua/math_ext.lua +27 -0
- data/vendor/lua/lib/lua/mbox.lua +53 -0
- data/vendor/lua/lib/lua/md5.lua +19 -0
- data/vendor/lua/lib/lua/md5/core.dll +0 -0
- data/vendor/lua/lib/lua/metalua.lua +0 -0
- data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
- data/vendor/lua/lib/lua/metalua/base.lua +104 -0
- data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
- data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
- data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
- data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
- data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
- data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
- data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
- data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
- data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
- data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
- data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
- data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
- data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
- data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
- data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
- data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
- data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
- data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
- data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
- data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
- data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
- data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
- data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
- data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
- data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
- data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
- data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
- data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
- data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
- data/vendor/lua/lib/lua/mime.lua +87 -0
- data/vendor/lua/lib/lua/mime/core.dll +0 -0
- data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
- data/vendor/lua/lib/lua/modules.lua +16 -0
- data/vendor/lua/lib/lua/object.lua +56 -0
- data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
- data/vendor/lua/lib/lua/oil/arch.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
- data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
- data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
- data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
- data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
- data/vendor/lua/lib/lua/oil/assert.lua +87 -0
- data/vendor/lua/lib/lua/oil/builder.lua +45 -0
- data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
- data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
- data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
- data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/compat.lua +846 -0
- data/vendor/lua/lib/lua/oil/component.lua +1 -0
- data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
- data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
- data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
- data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
- data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
- data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
- data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
- data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
- data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
- data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
- data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
- data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
- data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
- data/vendor/lua/lib/lua/oil/oo.lua +1 -0
- data/vendor/lua/lib/lua/oil/port.lua +1 -0
- data/vendor/lua/lib/lua/oil/properties.lua +57 -0
- data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
- data/vendor/lua/lib/lua/package_ext.lua +15 -0
- data/vendor/lua/lib/lua/parser.lua +268 -0
- data/vendor/lua/lib/lua/pl/Date.lua +555 -0
- data/vendor/lua/lib/lua/pl/List.lua +613 -0
- data/vendor/lua/lib/lua/pl/Map.lua +113 -0
- data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
- data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
- data/vendor/lua/lib/lua/pl/Set.lua +153 -0
- data/vendor/lua/lib/lua/pl/app.lua +165 -0
- data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
- data/vendor/lua/lib/lua/pl/class.lua +180 -0
- data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
- data/vendor/lua/lib/lua/pl/config.lua +176 -0
- data/vendor/lua/lib/lua/pl/data.lua +606 -0
- data/vendor/lua/lib/lua/pl/dir.lua +475 -0
- data/vendor/lua/lib/lua/pl/file.lua +70 -0
- data/vendor/lua/lib/lua/pl/func.lua +376 -0
- data/vendor/lua/lib/lua/pl/init.lua +68 -0
- data/vendor/lua/lib/lua/pl/input.lua +173 -0
- data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
- data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
- data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
- data/vendor/lua/lib/lua/pl/operator.lua +201 -0
- data/vendor/lua/lib/lua/pl/path.lua +398 -0
- data/vendor/lua/lib/lua/pl/permute.lua +63 -0
- data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
- data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
- data/vendor/lua/lib/lua/pl/seq.lua +551 -0
- data/vendor/lua/lib/lua/pl/sip.lua +344 -0
- data/vendor/lua/lib/lua/pl/strict.lua +70 -0
- data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
- data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
- data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
- data/vendor/lua/lib/lua/pl/template.lua +103 -0
- data/vendor/lua/lib/lua/pl/test.lua +135 -0
- data/vendor/lua/lib/lua/pl/text.lua +243 -0
- data/vendor/lua/lib/lua/pl/utils.lua +550 -0
- data/vendor/lua/lib/lua/pl/xml.lua +689 -0
- data/vendor/lua/lib/lua/profiler.dll +0 -0
- data/vendor/lua/lib/lua/re.lua +248 -0
- data/vendor/lua/lib/lua/rex_onig.dll +0 -0
- data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
- data/vendor/lua/lib/lua/rex_posix.dll +0 -0
- data/vendor/lua/lib/lua/rings.dll +0 -0
- data/vendor/lua/lib/lua/serialize.lua +193 -0
- data/vendor/lua/lib/lua/set.lua +149 -0
- data/vendor/lua/lib/lua/socket.lua +133 -0
- data/vendor/lua/lib/lua/socket/core.dll +0 -0
- data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
- data/vendor/lua/lib/lua/socket/http.lua +350 -0
- data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
- data/vendor/lua/lib/lua/socket/tp.lua +123 -0
- data/vendor/lua/lib/lua/socket/url.lua +297 -0
- data/vendor/lua/lib/lua/ssl.dll +0 -0
- data/vendor/lua/lib/lua/ssl.lua +93 -0
- data/vendor/lua/lib/lua/ssl/https.lua +138 -0
- data/vendor/lua/lib/lua/stable.lua +28 -0
- data/vendor/lua/lib/lua/std.lua +16 -0
- data/vendor/lua/lib/lua/strbuf.lua +32 -0
- data/vendor/lua/lib/lua/strict.lua +45 -0
- data/vendor/lua/lib/lua/string_ext.lua +274 -0
- data/vendor/lua/lib/lua/table_ext.lua +117 -0
- data/vendor/lua/lib/lua/tar.lua +262 -0
- data/vendor/lua/lib/lua/task.dll +0 -0
- data/vendor/lua/lib/lua/tree.lua +81 -0
- data/vendor/lua/lib/lua/unicode.dll +0 -0
- data/vendor/lua/lib/lua/verbose_require.lua +11 -0
- data/vendor/lua/lib/lua/vstruct.lua +86 -0
- data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
- data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
- data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
- data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
- data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
- data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
- data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
- data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
- data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
- data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
- data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
- data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
- data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
- data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
- data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
- data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
- data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
- data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
- data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
- data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
- data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
- data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
- data/vendor/lua/lib/lua/wx.dll +0 -0
- data/vendor/lua/lib/lua/xml.lua +75 -0
- data/vendor/lua/lib/lua/zip.dll +0 -0
- data/vendor/lua/lib/lua/zlib.dll +0 -0
- metadata +529 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
local oo = require "oil.oo"
|
|
2
|
+
local Exception = require "oil.Exception"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
local giop = require "oil.corba.giop" --[[VERBOSE]] local verbose = require "oil.verbose"
|
|
5
|
+
|
|
6
|
+
module("oil.corba.giop.Exception", oo.class)
|
|
7
|
+
|
|
8
|
+
__concat = Exception.__concat
|
|
9
|
+
__tostring = Exception.__tostring
|
|
10
|
+
|
|
11
|
+
minor_code_value = 0
|
|
12
|
+
completion_status = 2
|
|
13
|
+
|
|
14
|
+
function __init(self, except, ...)
|
|
15
|
+
if except then
|
|
16
|
+
local sysex = giop.SystemExceptionIDs[ except[1] ]
|
|
17
|
+
if sysex then
|
|
18
|
+
except[1] = sysex
|
|
19
|
+
except.exception_id = sysex
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
return Exception.__init(self, except, ...)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
assert.Exception = _M -- use GIOP exception as the default exception
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
--------------------------------------------------------------------------------
|
|
2
|
+
------------------------------ ##### ## ------------------------------
|
|
3
|
+
------------------------------ ## ## # ## ------------------------------
|
|
4
|
+
------------------------------ ## ## ## ## ------------------------------
|
|
5
|
+
------------------------------ ## ## # ## ------------------------------
|
|
6
|
+
------------------------------ ##### ### ###### ------------------------------
|
|
7
|
+
-------------------------------- --------------------------------
|
|
8
|
+
----------------------- An Object Request Broker in Lua ------------------------
|
|
9
|
+
--------------------------------------------------------------------------------
|
|
10
|
+
-- Project: OiL - ORB in Lua: An Object Request Broker in Lua --
|
|
11
|
+
-- Release: 0.5 --
|
|
12
|
+
-- Title : CORBA Interface Indexer --
|
|
13
|
+
-- Authors: Renato Maia <maia@inf.puc-rio.br> --
|
|
14
|
+
--------------------------------------------------------------------------------
|
|
15
|
+
-- members:Receptacle
|
|
16
|
+
-- member:table valueof(interface:table, name:string)
|
|
17
|
+
--------------------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
local oo = require "oil.oo"
|
|
20
|
+
local giop = require "oil.corba.giop"
|
|
21
|
+
local Indexer = require "oil.corba.idl.Indexer" --[[VERBOSE]] local verbose = require "oil.verbose"
|
|
22
|
+
|
|
23
|
+
module "oil.corba.giop.Indexer"
|
|
24
|
+
|
|
25
|
+
oo.class(_M, Indexer)
|
|
26
|
+
|
|
27
|
+
local CurrentInterface
|
|
28
|
+
|
|
29
|
+
function giop.ObjectOperations._is_a:implementation(repid)
|
|
30
|
+
local interface = CurrentInterface -- get current interface
|
|
31
|
+
CurrentInterface = nil -- clear current interface
|
|
32
|
+
if interface then
|
|
33
|
+
for base in interface:hierarchy() do
|
|
34
|
+
if base.repID == repid then
|
|
35
|
+
return true
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
return false
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
function giop.ObjectOperations._interface:implementation()
|
|
43
|
+
local interface = CurrentInterface -- get current interface
|
|
44
|
+
CurrentInterface = nil -- clear current interface
|
|
45
|
+
return interface
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
function giop.ObjectOperations._non_existent:implementation()
|
|
49
|
+
return false
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
function giop.ObjectOperations._component:implementation()
|
|
53
|
+
return nil
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
function valueof(self, interface, name)
|
|
57
|
+
local operation = Indexer.valueof(self, interface, name)
|
|
58
|
+
if not operation then
|
|
59
|
+
CurrentInterface = interface -- setup current interface to be used by impls.
|
|
60
|
+
operation = giop.ObjectOperations[name]
|
|
61
|
+
end
|
|
62
|
+
return operation
|
|
63
|
+
end
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
--------------------------------------------------------------------------------
|
|
2
|
+
------------------------------ ##### ## ------------------------------
|
|
3
|
+
------------------------------ ## ## # ## ------------------------------
|
|
4
|
+
------------------------------ ## ## ## ## ------------------------------
|
|
5
|
+
------------------------------ ## ## # ## ------------------------------
|
|
6
|
+
------------------------------ ##### ### ###### ------------------------------
|
|
7
|
+
-------------------------------- --------------------------------
|
|
8
|
+
----------------------- An Object Request Broker in Lua ------------------------
|
|
9
|
+
--------------------------------------------------------------------------------
|
|
10
|
+
-- Project: OiL - ORB in Lua --
|
|
11
|
+
-- Release: 0.5 --
|
|
12
|
+
-- Title : Server-side CORBA GIOP Protocol --
|
|
13
|
+
-- Authors: Renato Maia <maia@inf.puc-rio.br> --
|
|
14
|
+
--------------------------------------------------------------------------------
|
|
15
|
+
-- Notes: --
|
|
16
|
+
-- See chapter 15 of CORBA 3.0 specification. --
|
|
17
|
+
--------------------------------------------------------------------------------
|
|
18
|
+
-- listener:Facet
|
|
19
|
+
-- configs:table default([configs:table])
|
|
20
|
+
-- channel:object, [except:table] getchannel(configs:table)
|
|
21
|
+
-- success:boolean, [except:table] freeaccess(configs:table)
|
|
22
|
+
-- success:boolean, [except:table] freechannel(channel:object)
|
|
23
|
+
-- request:object, [except:table], [requests:table] = getrequest(channel:object, [probe:boolean])
|
|
24
|
+
--
|
|
25
|
+
-- channels:HashReceptacle
|
|
26
|
+
-- channel:object retieve(configs:table)
|
|
27
|
+
-- channel:object dispose(configs:table)
|
|
28
|
+
-- configs:table default([configs:table])
|
|
29
|
+
--------------------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
local assert = assert
|
|
32
|
+
local ipairs = ipairs
|
|
33
|
+
local pairs = pairs
|
|
34
|
+
local select = select
|
|
35
|
+
local type = type
|
|
36
|
+
local unpack = unpack
|
|
37
|
+
local stderr = io and io.stderr
|
|
38
|
+
|
|
39
|
+
local table = require "table"
|
|
40
|
+
|
|
41
|
+
local oo = require "oil.oo"
|
|
42
|
+
local bit = require "oil.bit"
|
|
43
|
+
local idl = require "oil.corba.idl"
|
|
44
|
+
local giop = require "oil.corba.giop"
|
|
45
|
+
local Exception = require "oil.corba.giop.Exception"
|
|
46
|
+
local Messenger = require "oil.corba.giop.Messenger" --[[VERBOSE]] local verbose = require "oil.verbose"
|
|
47
|
+
|
|
48
|
+
module "oil.corba.giop.Listener"
|
|
49
|
+
|
|
50
|
+
oo.class(_M, Messenger)
|
|
51
|
+
|
|
52
|
+
--------------------------------------------------------------------------------
|
|
53
|
+
|
|
54
|
+
local RequestID = giop.RequestID
|
|
55
|
+
local ReplyID = giop.ReplyID
|
|
56
|
+
local LocateRequestID = giop.LocateRequestID
|
|
57
|
+
local LocateReplyID = giop.LocateReplyID
|
|
58
|
+
local CancelRequestID = giop.CancelRequestID
|
|
59
|
+
local CloseConnectionID = giop.CloseConnectionID
|
|
60
|
+
local MessageErrorID = giop.MessageErrorID
|
|
61
|
+
local MessageType = giop.MessageType
|
|
62
|
+
local SystemExceptionIDs = giop.SystemExceptionIDs
|
|
63
|
+
|
|
64
|
+
local COMPLETED_YES = 0
|
|
65
|
+
local COMPLETED_NO = 1
|
|
66
|
+
local COMPLETED_MAYBE = 2
|
|
67
|
+
|
|
68
|
+
local Empty = {}
|
|
69
|
+
|
|
70
|
+
local SystemExceptions = {}
|
|
71
|
+
|
|
72
|
+
for _, repID in pairs(SystemExceptionIDs) do
|
|
73
|
+
SystemExceptions[repID] = true
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
--------------------------------------------------------------------------------
|
|
77
|
+
|
|
78
|
+
function setupaccess(self, configs)
|
|
79
|
+
local channels = self.channels[configs and configs.tag or 0]
|
|
80
|
+
if channels then
|
|
81
|
+
return channels:default(configs)
|
|
82
|
+
else
|
|
83
|
+
return nil, Exception{ "IMP_LIMIT", minor_code_value = 1,
|
|
84
|
+
message = "no supported GIOP profile found for configuration",
|
|
85
|
+
reason = "protocol",
|
|
86
|
+
configuration = configs,
|
|
87
|
+
}
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
function freeaccess(self, accesspoint) --[[VERBOSE]] verbose:listen(true, "closing all channels with accesspoint ",accesspoint)
|
|
92
|
+
local channels = self.channels[accesspoint.tag or 0]
|
|
93
|
+
local result, except = channels:dispose(accesspoint)
|
|
94
|
+
if result then
|
|
95
|
+
for _, channel in ipairs(result) do
|
|
96
|
+
result, except = self:sendmsg(channel, CloseConnectionID)
|
|
97
|
+
if not result and except.reason ~= "closed" then
|
|
98
|
+
break
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end --[[VERBOSE]] verbose:listen(false)
|
|
102
|
+
return result, except
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
--------------------------------------------------------------------------------
|
|
106
|
+
|
|
107
|
+
function getchannel(self, accesspoint, probe) --[[VERBOSE]] verbose:listen(true, "get channel from accesspoint ",accesspoint)
|
|
108
|
+
local result, except = self.channels[accesspoint.tag or 0]
|
|
109
|
+
if result then
|
|
110
|
+
result, except = result:retrieve(accesspoint, probe)
|
|
111
|
+
else
|
|
112
|
+
except = Exception{ "IMP_LIMIT", minor_code_value = 1,
|
|
113
|
+
message = "no supported GIOP profile found for accesspoint",
|
|
114
|
+
reason = "protocol",
|
|
115
|
+
accesspoint = accesspoint,
|
|
116
|
+
}
|
|
117
|
+
end --[[VERBOSE]] verbose:listen(false)
|
|
118
|
+
return result, except
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
function putchannel(self, channel) --[[VERBOSE]] verbose:listen "put channel back"
|
|
122
|
+
return channel:release()
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
function freechannel(self, channel) --[[VERBOSE]] verbose:listen "close channel"
|
|
126
|
+
if table.maxn(channel) > 0 then
|
|
127
|
+
channel.freed = true
|
|
128
|
+
return true
|
|
129
|
+
else
|
|
130
|
+
return self:sendmsg(channel, CloseConnectionID)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
--------------------------------------------------------------------------------
|
|
135
|
+
|
|
136
|
+
local SysExReply = {
|
|
137
|
+
service_context = Empty,
|
|
138
|
+
request_id = nil, -- defined later
|
|
139
|
+
reply_status = "SYSTEM_EXCEPTION",
|
|
140
|
+
}
|
|
141
|
+
local SysExType = { giop.SystemExceptionIDL }
|
|
142
|
+
local SysExBody = { n = 1, --[[defined later]] }
|
|
143
|
+
|
|
144
|
+
function sysexreply(self, requestid, body) --[[VERBOSE]] verbose:listen("new system exception ",body[1]," for request ",requestid)
|
|
145
|
+
SysExReply.request_id = requestid
|
|
146
|
+
SysExBody[1] = body
|
|
147
|
+
body.exception_id = body[1]
|
|
148
|
+
return SysExReply, SysExType, SysExBody
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
--------------------------------------------------------------------------------
|
|
152
|
+
|
|
153
|
+
Request = oo.class{ n = 0, pcall = pcall }
|
|
154
|
+
|
|
155
|
+
function Request:preinvoke(iface, member)
|
|
156
|
+
if iface ~= nil then
|
|
157
|
+
local inputs = member.inputs
|
|
158
|
+
local count = #inputs
|
|
159
|
+
self.n = count
|
|
160
|
+
self.outputs = member.outputs
|
|
161
|
+
self.exceptions = member.exceptions
|
|
162
|
+
local decoder = self.decoder
|
|
163
|
+
for i = 1, count do
|
|
164
|
+
local ok, result = self.pcall(decoder.get, decoder, inputs[i])
|
|
165
|
+
if not ok then
|
|
166
|
+
assert(type(result) == "table", result)
|
|
167
|
+
self.success = false
|
|
168
|
+
self.n = 1
|
|
169
|
+
self[1] = result
|
|
170
|
+
return -- request cancelled
|
|
171
|
+
end
|
|
172
|
+
self[i] = result
|
|
173
|
+
end
|
|
174
|
+
return self.object_key, self.operation
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
function Request:params()
|
|
179
|
+
return unpack(self, 1, self.n)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
function Request:results(success, ...)
|
|
183
|
+
local count = select("#", ...)
|
|
184
|
+
self.success = success
|
|
185
|
+
self.n = count
|
|
186
|
+
for i = 1, count do
|
|
187
|
+
self[i] = select(i, ...)
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
--------------------------------------------------------------------------------
|
|
192
|
+
|
|
193
|
+
function getrequest(self, channel, probe) --[[VERBOSE]] verbose:listen(true, "get request from channel")
|
|
194
|
+
local result, except = true, nil
|
|
195
|
+
if channel:trylock("read", not probe) then
|
|
196
|
+
if not probe or channel:probe() then
|
|
197
|
+
local bypassed = false
|
|
198
|
+
local msgid, header, decoder = self:receivemsg(channel)
|
|
199
|
+
if msgid == RequestID then
|
|
200
|
+
local requestid = header.request_id
|
|
201
|
+
if not channel[requestid] then
|
|
202
|
+
header.decoder = decoder
|
|
203
|
+
if header.response_expected then
|
|
204
|
+
header.channel = channel
|
|
205
|
+
channel[requestid] = header --[[VERBOSE]] else verbose:listen "no response expected"
|
|
206
|
+
end
|
|
207
|
+
result, except = self.Request(header)
|
|
208
|
+
else --[[VERBOSE]] verbose:listen("got replicated request id ",requestid)
|
|
209
|
+
result, except = self:sendmsg(channel, MessageErrorID)
|
|
210
|
+
bypassed = result
|
|
211
|
+
end
|
|
212
|
+
elseif msgid == CancelRequestID then --[[VERBOSE]] verbose:listen("got cancelling of request ",header.request_id)
|
|
213
|
+
channel[header.request_id] = nil
|
|
214
|
+
result, except = true, nil
|
|
215
|
+
bypassed = true
|
|
216
|
+
elseif msgid == LocateRequestID then --[[VERBOSE]] verbose:listen("got locate request ",header.request_id)
|
|
217
|
+
local reply = { request_id = header.request_id }
|
|
218
|
+
if self.servants:retrieve(header.object_key)
|
|
219
|
+
then reply.locate_status = "OBJECT_HERE"
|
|
220
|
+
else reply.locate_status = "UNKNOWN_OBJECT"
|
|
221
|
+
end
|
|
222
|
+
reply[1] = reply
|
|
223
|
+
result, except = self:sendmsg(channel, LocateReplyID, reply)
|
|
224
|
+
bypassed = result
|
|
225
|
+
elseif result == MessageErrorID then --[[VERBOSE]] verbose:listen "got message error notification"
|
|
226
|
+
result, except = self:sendmsg(channel, CloseConnectionID)
|
|
227
|
+
bypassed = result
|
|
228
|
+
elseif MessageType[msgid] then --[[VERBOSE]] verbose:listen("got unknown message ",msgid,", sending message error notification")
|
|
229
|
+
result, except = self:sendmsg(channel, MessageErrorID)
|
|
230
|
+
bypassed = result
|
|
231
|
+
else
|
|
232
|
+
result, except = nil, header
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
if bypassed then --[[VERBOSE]] verbose:listen(false, "reissuing request read")
|
|
236
|
+
return self:getrequest(channel, probe)
|
|
237
|
+
elseif not result and except.reason == "closed" then --[[VERBOSE]] verbose:listen("client closed the connection")
|
|
238
|
+
result, except = true, nil
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
channel:freelock("read")
|
|
242
|
+
end --[[VERBOSE]] verbose:listen(false)
|
|
243
|
+
return result, except
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
--------------------------------------------------------------------------------
|
|
247
|
+
|
|
248
|
+
local ExceptionReplyTypes = { idl.string }
|
|
249
|
+
local ExceptionReplyBody = { n = 2, --[[defined later]] }
|
|
250
|
+
|
|
251
|
+
function handlereply(self, request)
|
|
252
|
+
if request.success then --[[VERBOSE]] verbose:listen "got successful results"
|
|
253
|
+
request.service_context = Empty
|
|
254
|
+
request.reply_status = "NO_EXCEPTION"
|
|
255
|
+
return request, request.outputs, request
|
|
256
|
+
else
|
|
257
|
+
local requestid = request.request_id
|
|
258
|
+
local except = request[1]
|
|
259
|
+
local extype = type(except)
|
|
260
|
+
if extype == "table" then --[[VERBOSE]] verbose:listen("got exception ",except)
|
|
261
|
+
local excepttype = request.exceptions
|
|
262
|
+
excepttype = excepttype and excepttype[ except[1] ]
|
|
263
|
+
if excepttype then
|
|
264
|
+
request.service_context = Empty
|
|
265
|
+
request.reply_status = "USER_EXCEPTION"
|
|
266
|
+
ExceptionReplyTypes[2] = excepttype
|
|
267
|
+
ExceptionReplyBody[1] = except[1]
|
|
268
|
+
ExceptionReplyBody[2] = except
|
|
269
|
+
return request, ExceptionReplyTypes, ExceptionReplyBody
|
|
270
|
+
else
|
|
271
|
+
if except.reason == "badkey" then
|
|
272
|
+
except[1] = "IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"
|
|
273
|
+
except.minor_code_value = 1
|
|
274
|
+
except.completion_status = COMPLETED_NO
|
|
275
|
+
elseif except.reason == "noimplement" then
|
|
276
|
+
except[1] = "IDL:omg.org/CORBA/NO_IMPLEMENT:1.0"
|
|
277
|
+
except.minor_code_value = 1
|
|
278
|
+
except.completion_status = COMPLETED_NO
|
|
279
|
+
elseif except.reason == "badoperation" then
|
|
280
|
+
except[1] = "IDL:omg.org/CORBA/BAD_OPERATION:1.0"
|
|
281
|
+
except.minor_code_value = 1
|
|
282
|
+
except.completion_status = COMPLETED_NO
|
|
283
|
+
elseif except.reason == "badrequestid" then
|
|
284
|
+
except[1] = "IDL:omg.org/CORBA/INTERNAL:1.0"
|
|
285
|
+
except.minor_code_value = 1
|
|
286
|
+
except.completion_status = COMPLETED_NO
|
|
287
|
+
elseif not SystemExceptions[ except[1] ] then --[[VERBOSE]] verbose:listen("got unexpected exception ",except)
|
|
288
|
+
except[1] = "IDL:omg.org/CORBA/UNKNOWN:1.0"
|
|
289
|
+
except.minor_code_value = 0
|
|
290
|
+
except.completion_status = COMPLETED_MAYBE --[[VERBOSE]] else verbose:listen("got system exception ",except)
|
|
291
|
+
end
|
|
292
|
+
return self:sysexreply(requestid, except)
|
|
293
|
+
end
|
|
294
|
+
elseif extype == "string" then --[[VERBOSE]] verbose:listen("got unexpected error ", except)
|
|
295
|
+
if stderr then stderr:write(except, "\n") end
|
|
296
|
+
return self:sysexreply(requestid, {
|
|
297
|
+
"IDL:omg.org/CORBA/UNKNOWN:1.0",
|
|
298
|
+
minor_code_value = 0,
|
|
299
|
+
completion_status = COMPLETED_MAYBE,
|
|
300
|
+
message = "servant error: "..except,
|
|
301
|
+
reason = "servant",
|
|
302
|
+
operation = operation,
|
|
303
|
+
servant = servant,
|
|
304
|
+
error = except,
|
|
305
|
+
})
|
|
306
|
+
else --[[VERBOSE]] verbose:listen("got illegal exception ", except)
|
|
307
|
+
return self:sysexreply(requestid, {
|
|
308
|
+
"IDL:omg.org/CORBA/UNKNOWN:1.0",
|
|
309
|
+
minor_code_value = 0,
|
|
310
|
+
completion_status = COMPLETED_MAYBE,
|
|
311
|
+
message = "invalid exception, got "..extype,
|
|
312
|
+
reason = "exception",
|
|
313
|
+
exception = except,
|
|
314
|
+
})
|
|
315
|
+
end
|
|
316
|
+
end
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
function sendreply(self, request) --[[VERBOSE]] verbose:listen(true, "got reply for request ",request.request_id)
|
|
320
|
+
local success, except = true, nil
|
|
321
|
+
local channel = request.channel
|
|
322
|
+
local requestid = request.request_id
|
|
323
|
+
if channel and channel[requestid] == request then
|
|
324
|
+
success, except = self:sendmsg(channel, ReplyID,
|
|
325
|
+
self:handlereply(request))
|
|
326
|
+
if success then
|
|
327
|
+
channel[requestid] = nil
|
|
328
|
+
if channel.freed and table.maxn(channel) == 0 then --[[VERBOSE]] verbose:listen "all pending requests replied, connection being closed"
|
|
329
|
+
success, except = self:sendmsg(channel, CloseConnectionID)
|
|
330
|
+
end
|
|
331
|
+
elseif SystemExceptions[ except[1] ] then --[[VERBOSE]] verbose:listen("got system exception ",except," at reply send")
|
|
332
|
+
except.completion_status = COMPLETED_YES
|
|
333
|
+
success, except = self:sendmsg(channel, ReplyID,
|
|
334
|
+
self:sysexreply(requestid, except))
|
|
335
|
+
end
|
|
336
|
+
else --[[VERBOSE]] verbose:listen("no pending request found with id ",requestid,", reply discarded")
|
|
337
|
+
success = true
|
|
338
|
+
end
|
|
339
|
+
if not success and except.reason == "closed" then
|
|
340
|
+
success, except = true, nil
|
|
341
|
+
end --[[VERBOSE]] verbose:listen(false)
|
|
342
|
+
return success, except
|
|
343
|
+
end
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
--------------------------------------------------------------------------------
|
|
2
|
+
------------------------------ ##### ## ------------------------------
|
|
3
|
+
------------------------------ ## ## # ## ------------------------------
|
|
4
|
+
------------------------------ ## ## ## ## ------------------------------
|
|
5
|
+
------------------------------ ## ## # ## ------------------------------
|
|
6
|
+
------------------------------ ##### ### ###### ------------------------------
|
|
7
|
+
-------------------------------- --------------------------------
|
|
8
|
+
----------------------- An Object Request Broker in Lua ------------------------
|
|
9
|
+
--------------------------------------------------------------------------------
|
|
10
|
+
-- Project: OiL - ORB in Lua --
|
|
11
|
+
-- Release: 0.5 --
|
|
12
|
+
-- Title : Client-side CORBA GIOP Protocol --
|
|
13
|
+
-- Authors: Renato Maia <maia@inf.puc-rio.br> --
|
|
14
|
+
--------------------------------------------------------------------------------
|
|
15
|
+
-- Notes: --
|
|
16
|
+
-- See section 15.4.1 of CORBA 3.0 specification. --
|
|
17
|
+
--------------------------------------------------------------------------------
|
|
18
|
+
-- messenger:Facet
|
|
19
|
+
-- success:booelan, [except:table] = sendmsg(channel:object, type:number, header:table, types:table, values)
|
|
20
|
+
-- type:number, header:table, decoder:object = receivemsg(channel:object , [wait:boolean])
|
|
21
|
+
--
|
|
22
|
+
-- codec:Receptacle
|
|
23
|
+
-- encoder:object encoder()
|
|
24
|
+
-- decoder:object decoder(stream:string)
|
|
25
|
+
--------------------------------------------------------------------------------
|
|
26
|
+
|
|
27
|
+
local assert = assert
|
|
28
|
+
local ipairs = ipairs
|
|
29
|
+
local luapcall = pcall
|
|
30
|
+
local select = select
|
|
31
|
+
local type = type
|
|
32
|
+
|
|
33
|
+
local oo = require "oil.oo"
|
|
34
|
+
local bit = require "oil.bit"
|
|
35
|
+
local giop = require "oil.corba.giop"
|
|
36
|
+
local Exception = require "oil.corba.giop.Exception" --[[VERBOSE]] local verbose = require "oil.verbose"
|
|
37
|
+
|
|
38
|
+
module("oil.corba.giop.Messenger", oo.class)
|
|
39
|
+
|
|
40
|
+
pcall = luapcall
|
|
41
|
+
|
|
42
|
+
--------------------------------------------------------------------------------
|
|
43
|
+
|
|
44
|
+
magictag = giop.MagicTag
|
|
45
|
+
headersize = giop.HeaderSize
|
|
46
|
+
headertype = giop.Header_v1_[0]
|
|
47
|
+
messagetype = giop.MessageHeader_v1_[0]
|
|
48
|
+
|
|
49
|
+
header = {
|
|
50
|
+
magic = magictag,
|
|
51
|
+
GIOP_version = {major=1, minor=0},
|
|
52
|
+
byte_order = (bit.endianess() == "little"),
|
|
53
|
+
message_type = nil, -- defined later
|
|
54
|
+
message_size = nil, -- defined later
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
--------------------------------------------------------------------------------
|
|
58
|
+
|
|
59
|
+
function sendmsg(self, channel, msgtype, message, types, values) --[[VERBOSE]] verbose:message(true, "send message ",msgtype," ",message)
|
|
60
|
+
--
|
|
61
|
+
-- Create GIOP message body
|
|
62
|
+
--
|
|
63
|
+
local encoder = self.codec:encoder()
|
|
64
|
+
encoder:shift(self.headersize) -- alignment accordingly to GIOP header size
|
|
65
|
+
if message then
|
|
66
|
+
encoder:put(message, self.messagetype[msgtype])
|
|
67
|
+
end
|
|
68
|
+
if types then
|
|
69
|
+
local count = values.n or #values
|
|
70
|
+
for index, idltype in ipairs(types) do
|
|
71
|
+
local value
|
|
72
|
+
if index <= count then
|
|
73
|
+
value = values[index]
|
|
74
|
+
end
|
|
75
|
+
local ok, errmsg = self.pcall(encoder.put, encoder, value, idltype)
|
|
76
|
+
if not ok then
|
|
77
|
+
assert(type(errmsg) == "table", errmsg)
|
|
78
|
+
return nil, errmsg
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
local stream = encoder:getdata()
|
|
83
|
+
|
|
84
|
+
--
|
|
85
|
+
-- Create GIOP message header
|
|
86
|
+
--
|
|
87
|
+
local header = self.header
|
|
88
|
+
header.message_size = #stream
|
|
89
|
+
header.message_type = msgtype
|
|
90
|
+
encoder = self.codec:encoder()
|
|
91
|
+
encoder:struct(header, self.headertype)
|
|
92
|
+
stream = encoder:getdata()..stream
|
|
93
|
+
|
|
94
|
+
--
|
|
95
|
+
-- Send stream over the channel
|
|
96
|
+
--
|
|
97
|
+
local success, except, reset
|
|
98
|
+
repeat
|
|
99
|
+
channel:trylock("write", true)
|
|
100
|
+
success, except = channel:send(stream)
|
|
101
|
+
if not success then
|
|
102
|
+
if except == "closed" then
|
|
103
|
+
-- only clients have 'reset' op.
|
|
104
|
+
if reset == nil and channel.reset then
|
|
105
|
+
success, except = channel:reset()
|
|
106
|
+
if success then
|
|
107
|
+
reset, success, except = true, nil, nil
|
|
108
|
+
end
|
|
109
|
+
else
|
|
110
|
+
channel:close()
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
-- else
|
|
114
|
+
--TODO:[maia] How can I assure that someone is actually listening
|
|
115
|
+
-- to this channel? Because if the server has closed
|
|
116
|
+
-- the connection, we have received a FIN, but the RST
|
|
117
|
+
-- may not have been received yet, so we might be sending
|
|
118
|
+
-- data to a socket no one is listening to. (see page 132
|
|
119
|
+
-- of R. Stevens, UNIX network programming, 2nd ed, 1997)
|
|
120
|
+
end
|
|
121
|
+
channel:freelock("write")
|
|
122
|
+
until success or except
|
|
123
|
+
if except then
|
|
124
|
+
except = Exception{ "COMM_FAILURE", minor_code_value = 0,
|
|
125
|
+
message = "unable to write into connection ("..except..")",
|
|
126
|
+
reason = "closed",
|
|
127
|
+
connection = channel,
|
|
128
|
+
}
|
|
129
|
+
end --[[VERBOSE]] verbose:message(false)
|
|
130
|
+
|
|
131
|
+
return success, except
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
--------------------------------------------------------------------------------
|
|
135
|
+
|
|
136
|
+
function receivemsg(self, channel) --[[VERBOSE]] verbose:message(true, "receive message from channel")
|
|
137
|
+
local success, except = channel:receive(self.headersize)
|
|
138
|
+
if success then
|
|
139
|
+
local decoder = self.codec:decoder(success)
|
|
140
|
+
--
|
|
141
|
+
-- Read GIOP message header
|
|
142
|
+
--
|
|
143
|
+
local header = self.headertype
|
|
144
|
+
local magic = decoder:array(header[1].type)
|
|
145
|
+
if magic == self.magictag then
|
|
146
|
+
local version = decoder:struct(header[2].type)
|
|
147
|
+
if version.major == 1 and version.minor == 0 then
|
|
148
|
+
decoder:order(decoder:boolean())
|
|
149
|
+
local type = decoder:octet()
|
|
150
|
+
local size = decoder:ulong()
|
|
151
|
+
--
|
|
152
|
+
-- Read GIOP message body
|
|
153
|
+
--
|
|
154
|
+
if size > 0 then
|
|
155
|
+
success, except = channel:receive(size)
|
|
156
|
+
else
|
|
157
|
+
success, except = "", nil
|
|
158
|
+
end
|
|
159
|
+
if success then
|
|
160
|
+
decoder:append(success)
|
|
161
|
+
success = type
|
|
162
|
+
header = self.messagetype[type]
|
|
163
|
+
if header then
|
|
164
|
+
except = decoder:struct(header)
|
|
165
|
+
channel = decoder
|
|
166
|
+
elseif header == nil then
|
|
167
|
+
success = nil
|
|
168
|
+
except = Exception{ "INTERNAL", minor_code_value = 0,
|
|
169
|
+
message = "GIOP 1.0 message type not supported",
|
|
170
|
+
reason = "messageid",
|
|
171
|
+
major = version.major,
|
|
172
|
+
minor = version.minor,
|
|
173
|
+
type = type,
|
|
174
|
+
}
|
|
175
|
+
end
|
|
176
|
+
else
|
|
177
|
+
if except == "closed" then channel:close() end
|
|
178
|
+
except = Exception{ "COMM_FAILURE", minor_code_value = 0,
|
|
179
|
+
message = "unable to read from connection ("..except..")",
|
|
180
|
+
reason = "closed",
|
|
181
|
+
connection = channel,
|
|
182
|
+
}
|
|
183
|
+
end
|
|
184
|
+
else
|
|
185
|
+
success = nil
|
|
186
|
+
except = Exception{ "INTERNAL", minor_code_value = 0,
|
|
187
|
+
message = "GIOP version not supported",
|
|
188
|
+
reason = "version",
|
|
189
|
+
procotol = "GIOP",
|
|
190
|
+
version = version,
|
|
191
|
+
}
|
|
192
|
+
end
|
|
193
|
+
else
|
|
194
|
+
success = nil
|
|
195
|
+
except = Exception{ "MARSHAL", minor_code_value = 8,
|
|
196
|
+
message = "illegal GIOP message magic tag",
|
|
197
|
+
reason = "magictag",
|
|
198
|
+
tag = magic,
|
|
199
|
+
}
|
|
200
|
+
end
|
|
201
|
+
else
|
|
202
|
+
if except == "closed" then channel:close() end
|
|
203
|
+
except = Exception{ "COMM_FAILURE", minor_code_value = 0,
|
|
204
|
+
message = "unable to read from connection",
|
|
205
|
+
reason = except,
|
|
206
|
+
connection = channel,
|
|
207
|
+
}
|
|
208
|
+
end --[[VERBOSE]] verbose:message(false, "got message ",success, except)
|
|
209
|
+
return success, except, channel
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
--------------------------------------------------------------------------------
|
|
213
|
+
--------------------------------------------------------------------------------
|
|
214
|
+
|
|
215
|
+
--[[VERBOSE]] function verbose.custom:message(...)
|
|
216
|
+
--[[VERBOSE]] local viewer = self.viewer
|
|
217
|
+
--[[VERBOSE]] local output = viewer.output
|
|
218
|
+
--[[VERBOSE]] for i = 1, select("#", ...) do
|
|
219
|
+
--[[VERBOSE]] local value = select(i, ...)
|
|
220
|
+
--[[VERBOSE]] if giop.MessageType[value] then
|
|
221
|
+
--[[VERBOSE]] output:write(giop.MessageType[value])
|
|
222
|
+
--[[VERBOSE]] elseif type(value) == "string" then
|
|
223
|
+
--[[VERBOSE]] output:write(value)
|
|
224
|
+
--[[VERBOSE]] else
|
|
225
|
+
--[[VERBOSE]] viewer:write(value)
|
|
226
|
+
--[[VERBOSE]] end
|
|
227
|
+
--[[VERBOSE]] end
|
|
228
|
+
--[[VERBOSE]] end
|