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,597 @@
|
|
|
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 : Interface Definition Language (IDL) specifications in Lua --
|
|
13
|
+
-- Authors: Renato Maia <maia@inf.puc-rio.br> --
|
|
14
|
+
--------------------------------------------------------------------------------
|
|
15
|
+
-- Interface: --
|
|
16
|
+
-- istype(object) Checks whether object is an IDL type --
|
|
17
|
+
-- isspec(object) Checks whether object is an IDL specification --
|
|
18
|
+
-- --
|
|
19
|
+
-- null IDL null type --
|
|
20
|
+
-- void IDL void type --
|
|
21
|
+
-- short IDL integer type short --
|
|
22
|
+
-- long IDL integer type long --
|
|
23
|
+
-- ushort IDL integer type unsigned short --
|
|
24
|
+
-- ulong IDL integer type unsigned long --
|
|
25
|
+
-- float IDL floating-point numeric type --
|
|
26
|
+
-- double IDL double-precision floating-point numeric type --
|
|
27
|
+
-- boolean IDL boolean type --
|
|
28
|
+
-- char IDL character type --
|
|
29
|
+
-- octet IDL raw byte type --
|
|
30
|
+
-- any IDL generic type --
|
|
31
|
+
-- TypeCode IDL meta-type --
|
|
32
|
+
-- string IDL string type --
|
|
33
|
+
-- --
|
|
34
|
+
-- Object(definition) IDL Object type construtor --
|
|
35
|
+
-- struct(definition) IDL struct type construtor --
|
|
36
|
+
-- union(definition) IDL union type construtor --
|
|
37
|
+
-- enum(definition) IDL enumeration type construtor --
|
|
38
|
+
-- sequence(definition) IDL sequence type construtor --
|
|
39
|
+
-- array(definition) IDL array type construtor --
|
|
40
|
+
-- valuetype(definition) IDL value type construtor --
|
|
41
|
+
-- typedef(definition) IDL type definition construtor --
|
|
42
|
+
-- except(definition) IDL expection construtor --
|
|
43
|
+
-- --
|
|
44
|
+
-- attribute(definition) IDL attribute construtor --
|
|
45
|
+
-- operation(definition) IDL operation construtor --
|
|
46
|
+
-- module(definition) IDL module structure constructor --
|
|
47
|
+
-- interface(definition) IDL object interface structure constructor --
|
|
48
|
+
-- --
|
|
49
|
+
-- OctetSequence IDL type used in OiL implementation --
|
|
50
|
+
-- Version IDL type used in OiL implementation --
|
|
51
|
+
-- --
|
|
52
|
+
-- ScopeMemberList Class that defines behavior of interface member list-
|
|
53
|
+
--------------------------------------------------------------------------------
|
|
54
|
+
-- Notes: --
|
|
55
|
+
-- The syntax used for description of IDL specifications is strongly based --
|
|
56
|
+
-- on the work provided by Let�cia Nogeira (i.e. LuaRep), which was mainly --
|
|
57
|
+
-- inteded to provide an user-friendly syntax. This approach may change to --
|
|
58
|
+
-- allow better fitting into CORBA model, since the use of LuaIDL parsing --
|
|
59
|
+
-- facilities already provides an user-friendly way to define IDL --
|
|
60
|
+
-- specifications. However backward compatibility may be provided whenever --
|
|
61
|
+
-- possible. --
|
|
62
|
+
--------------------------------------------------------------------------------
|
|
63
|
+
|
|
64
|
+
local type = type
|
|
65
|
+
local newproxy = newproxy
|
|
66
|
+
local pairs = pairs
|
|
67
|
+
local ipairs = ipairs
|
|
68
|
+
local rawset = rawset
|
|
69
|
+
local require = require
|
|
70
|
+
local rawget = rawget
|
|
71
|
+
|
|
72
|
+
-- backup of string package functions to avoid name crash with string IDL type
|
|
73
|
+
local match = require("string").match
|
|
74
|
+
local format = require("string").format
|
|
75
|
+
local table = require "table"
|
|
76
|
+
|
|
77
|
+
local OrderedSet = require "loop.collection.OrderedSet"
|
|
78
|
+
local UnorderedArraySet = require "loop.collection.UnorderedArraySet"
|
|
79
|
+
|
|
80
|
+
local oo = require "oil.oo"
|
|
81
|
+
local assert = require "oil.assert"
|
|
82
|
+
|
|
83
|
+
module "oil.corba.idl" --[[VERBOSE]] local verbose = require "oil.verbose"
|
|
84
|
+
|
|
85
|
+
--------------------------------------------------------------------------------
|
|
86
|
+
-- IDL element types -----------------------------------------------------------
|
|
87
|
+
|
|
88
|
+
BasicTypes = {
|
|
89
|
+
null = true,
|
|
90
|
+
void = true,
|
|
91
|
+
short = true,
|
|
92
|
+
long = true,
|
|
93
|
+
longlong = true,
|
|
94
|
+
ushort = true,
|
|
95
|
+
ulong = true,
|
|
96
|
+
ulonglong = true,
|
|
97
|
+
float = true,
|
|
98
|
+
double = true,
|
|
99
|
+
longdouble = true,
|
|
100
|
+
boolean = true,
|
|
101
|
+
char = true,
|
|
102
|
+
octet = true,
|
|
103
|
+
any = true,
|
|
104
|
+
TypeCode = true,
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
UserTypes = {
|
|
108
|
+
string = true,
|
|
109
|
+
Object = true,
|
|
110
|
+
struct = true,
|
|
111
|
+
union = true,
|
|
112
|
+
enum = true,
|
|
113
|
+
sequence = true,
|
|
114
|
+
array = true,
|
|
115
|
+
valuetype = true,
|
|
116
|
+
valuebox = true,
|
|
117
|
+
typedef = true,
|
|
118
|
+
except = true,
|
|
119
|
+
interface = true,
|
|
120
|
+
abstract_interface = true,
|
|
121
|
+
local_interface = true,
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
InterfaceElements = {
|
|
125
|
+
attribute = true,
|
|
126
|
+
operation = true,
|
|
127
|
+
module = true,
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
--------------------------------------------------------------------------------
|
|
131
|
+
-- Auxilary module functions ---------------------------------------------------
|
|
132
|
+
|
|
133
|
+
function istype(object)
|
|
134
|
+
return type(object) == "table" and (
|
|
135
|
+
BasicTypes[object._type] == object or
|
|
136
|
+
UserTypes[object._type]
|
|
137
|
+
)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
function isspec(object)
|
|
141
|
+
return type(object) == "table" and (
|
|
142
|
+
BasicTypes[object._type] == object or
|
|
143
|
+
UserTypes[object._type] or
|
|
144
|
+
InterfaceElements[object._type]
|
|
145
|
+
)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
assert.TypeCheckers["idl type"] = istype
|
|
149
|
+
assert.TypeCheckers["idl def."] = isspec
|
|
150
|
+
assert.TypeCheckers["^idl (%l+)$"] = function(value, name)
|
|
151
|
+
if istype(value)
|
|
152
|
+
then return (value._type == name), ("idl "..name.." type")
|
|
153
|
+
else return false, name
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
--------------------------------------------------------------------------------
|
|
158
|
+
--------------------------------------------------------------------------------
|
|
159
|
+
|
|
160
|
+
local function checkfield(field)
|
|
161
|
+
assert.type(field.name, "string", "field name")
|
|
162
|
+
assert.type(field.type, "idl type", "field type")
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
local function checkfields(fields)
|
|
166
|
+
for _, field in ipairs(fields) do checkfield(field) end
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
--------------------------------------------------------------------------------
|
|
170
|
+
-- Basic types -----------------------------------------------------------------
|
|
171
|
+
|
|
172
|
+
for name in pairs(BasicTypes) do
|
|
173
|
+
local basictype = {_type = name}
|
|
174
|
+
_M[name] = basictype
|
|
175
|
+
BasicTypes[name] = basictype
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
--------------------------------------------------------------------------------
|
|
179
|
+
-- Scoped definitions management -----------------------------------------------
|
|
180
|
+
|
|
181
|
+
function setnameof(contained, name)
|
|
182
|
+
contained.name = name
|
|
183
|
+
local container = contained.defined_in
|
|
184
|
+
if container then
|
|
185
|
+
local start, default = match(container.repID, "^(IDL:.*):(%d+%.%d+)$")
|
|
186
|
+
if not start then
|
|
187
|
+
assert.illegal(container.repID, "parent scope repository ID")
|
|
188
|
+
end
|
|
189
|
+
contained.repID = format("%s/%s:%s", start, contained.name,
|
|
190
|
+
contained.version or default)
|
|
191
|
+
else
|
|
192
|
+
contained.repID = format("IDL:%s:%s", contained.name,
|
|
193
|
+
contained.version or "1.0")
|
|
194
|
+
end
|
|
195
|
+
if contained.definitions then
|
|
196
|
+
for _, contained in ipairs(contained.definitions) do
|
|
197
|
+
setnameof(contained, contained.name)
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
--------------------------------------------------------------------------------
|
|
203
|
+
|
|
204
|
+
ContainerKey = newproxy()
|
|
205
|
+
|
|
206
|
+
Contents = oo.class()
|
|
207
|
+
|
|
208
|
+
function Contents:__newindex(name, contained)
|
|
209
|
+
if type(name) == "string" then
|
|
210
|
+
contained.defined_in = self[ContainerKey]
|
|
211
|
+
setnameof(contained, name)
|
|
212
|
+
return self:_add(contained)
|
|
213
|
+
end
|
|
214
|
+
rawset(self, name, contained)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
function Contents:_add(contained)
|
|
218
|
+
UnorderedArraySet.add(self, contained)
|
|
219
|
+
rawset(self, contained.name, contained)
|
|
220
|
+
return contained
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
function Contents:_remove(contained)
|
|
224
|
+
contained = UnorderedArraySet.remove(self, contained)
|
|
225
|
+
if contained then
|
|
226
|
+
self[contained.name] = nil
|
|
227
|
+
return contained
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
function Contents:_removeat(index)
|
|
232
|
+
return self:remove(self[index])
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
Contents._removebyname = Contents._removeat
|
|
236
|
+
|
|
237
|
+
--------------------------------------------------------------------------------
|
|
238
|
+
|
|
239
|
+
function Container(self)
|
|
240
|
+
if not oo.instanceof(self.definitions, Contents) then
|
|
241
|
+
local contents = Contents{ [ContainerKey] = self }
|
|
242
|
+
if self.definitions then
|
|
243
|
+
for _, value in ipairs(self.definitions) do
|
|
244
|
+
assert.type(value.name, "string", "IDL definition name")
|
|
245
|
+
contents:__newindex(value.name, value)
|
|
246
|
+
end
|
|
247
|
+
for field, value in pairs(self.definitions) do
|
|
248
|
+
if type(field) == "string" then
|
|
249
|
+
contents:__newindex(field, value)
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
self.definitions = contents
|
|
254
|
+
end
|
|
255
|
+
return self
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
--------------------------------------------------------------------------------
|
|
259
|
+
|
|
260
|
+
function Contained(self)
|
|
261
|
+
assert.type(self, "table", "IDL definition")
|
|
262
|
+
if self.name == nil then self.name = "" end
|
|
263
|
+
if self.repID == nil then setnameof(self, self.name) end
|
|
264
|
+
assert.type(self.name, "string", "IDL definition name")
|
|
265
|
+
assert.type(self.repID, "string", "repository ID")
|
|
266
|
+
return self
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
--------------------------------------------------------------------------------
|
|
270
|
+
-- User-defined type constructors ----------------------------------------------
|
|
271
|
+
|
|
272
|
+
-- Note: internal structure is optimized for un/marshalling.
|
|
273
|
+
|
|
274
|
+
string = { _type = "string", maxlength = 0 }
|
|
275
|
+
|
|
276
|
+
function Object(self)
|
|
277
|
+
assert.type(self, "table", "Object type definition")
|
|
278
|
+
if self.name == nil then self.name = "" end
|
|
279
|
+
if self.repID == nil then setnameof(self, self.name) end
|
|
280
|
+
assert.type(self.name, "string", "Object type name")
|
|
281
|
+
assert.type(self.repID, "string", "Object type repository ID")
|
|
282
|
+
if self.repID == "IDL:omg.org/CORBA/Object:1.0"
|
|
283
|
+
then self = object
|
|
284
|
+
else self._type = "Object"
|
|
285
|
+
end
|
|
286
|
+
return self
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
function struct(self)
|
|
290
|
+
self = Container(Contained(self))
|
|
291
|
+
self._type = "struct"
|
|
292
|
+
if self.fields == nil then self.fields = self end
|
|
293
|
+
checkfields(self.fields)
|
|
294
|
+
return self
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
function union(self)
|
|
298
|
+
self = Container(Contained(self))
|
|
299
|
+
self._type = "union"
|
|
300
|
+
if self.options == nil then self.options = self end
|
|
301
|
+
if self.default == nil then self.default = -1 end -- indicates no default in CDR
|
|
302
|
+
|
|
303
|
+
assert.type(self.switch, "idl type", "union type discriminant")
|
|
304
|
+
assert.type(self.options, "table", "union options definition")
|
|
305
|
+
assert.type(self.default, "number", "union default option definition")
|
|
306
|
+
|
|
307
|
+
self.selector = {} -- maps field names to labels (option selector)
|
|
308
|
+
self.selection = {} -- maps labels (option selector) to options
|
|
309
|
+
for index, option in ipairs(self.options) do
|
|
310
|
+
checkfield(option)
|
|
311
|
+
if option.label == nil then assert.illegal(nil, "option label value") end
|
|
312
|
+
self.selector[option.name] = option.label
|
|
313
|
+
if index ~= self.default + 1 then
|
|
314
|
+
self.selection[option.label] = option
|
|
315
|
+
end
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
function self.__index(union, field)
|
|
319
|
+
if rawget(union, "_switch") == self.selector[field] then
|
|
320
|
+
return rawget(union, "_value")
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
function self.__newindex(union, field, value)
|
|
324
|
+
local label = self.selector[field]
|
|
325
|
+
if label then
|
|
326
|
+
rawset(union, "_switch", label)
|
|
327
|
+
rawset(union, "_value", value)
|
|
328
|
+
rawset(union, "_field", field)
|
|
329
|
+
end
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
return self
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
function enum(self)
|
|
336
|
+
self = Contained(self)
|
|
337
|
+
self._type = "enum"
|
|
338
|
+
if self.enumvalues == nil then self.enumvalues = self end
|
|
339
|
+
assert.type(self.enumvalues, "table", "enumeration values definition")
|
|
340
|
+
|
|
341
|
+
self.labelvalue = {}
|
|
342
|
+
for index, label in ipairs(self.enumvalues) do
|
|
343
|
+
assert.type(label, "string", "enumeration value label")
|
|
344
|
+
self.labelvalue[label] = index - 1
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
return self
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
function sequence(self)
|
|
351
|
+
self._type = "sequence"
|
|
352
|
+
if self.maxlength == nil then self.maxlength = 0 end
|
|
353
|
+
if self.elementtype == nil then self.elementtype = self[1] end
|
|
354
|
+
assert.type(self.maxlength, "number", "sequence type maximum length ")
|
|
355
|
+
assert.type(self.elementtype, "idl type", "sequence element type")
|
|
356
|
+
return self
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
function array(self)
|
|
360
|
+
self._type = "array"
|
|
361
|
+
assert.type(self.length, "number", "array type length")
|
|
362
|
+
if self.elementtype == nil then self.elementtype = self[1] end
|
|
363
|
+
assert.type(self.elementtype, "idl type", "array element type")
|
|
364
|
+
return self
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
ValueKind = {
|
|
368
|
+
none = 0,
|
|
369
|
+
custom = 1,
|
|
370
|
+
abstract = 2,
|
|
371
|
+
truncatable = 3,
|
|
372
|
+
}
|
|
373
|
+
ValueMemberAccess = {
|
|
374
|
+
private = 0,
|
|
375
|
+
public = 1,
|
|
376
|
+
}
|
|
377
|
+
for list in pairs{[ValueKind]=true, [ValueMemberAccess]=true} do
|
|
378
|
+
local values = {}
|
|
379
|
+
for _,value in pairs(list) do values[value] = true end
|
|
380
|
+
for value in pairs(values) do list[value] = value end
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
function valuemember(self)
|
|
384
|
+
self = Contained(self)
|
|
385
|
+
self._type = "valuemember"
|
|
386
|
+
checkfield(self)
|
|
387
|
+
local access = ValueMemberAccess[self.access]
|
|
388
|
+
if access == nil then
|
|
389
|
+
assert.illegal(self.access, "value member access")
|
|
390
|
+
end
|
|
391
|
+
self.access = access
|
|
392
|
+
return self
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
function valuetype(self)
|
|
396
|
+
self = Container(Contained(self))
|
|
397
|
+
self._type = "valuetype"
|
|
398
|
+
local kind = self.kind or (self.truncatable and ValueKind.truncatable)
|
|
399
|
+
or (self.abstract and ValueKind.abstract)
|
|
400
|
+
or ValueKind.none
|
|
401
|
+
kind = ValueKind[kind]
|
|
402
|
+
if kind == nil then
|
|
403
|
+
assert.illegal(self.kind, "value kind")
|
|
404
|
+
end
|
|
405
|
+
self.kind = kind
|
|
406
|
+
local base = self.base_value
|
|
407
|
+
if base == nil then
|
|
408
|
+
self.base_value = null
|
|
409
|
+
elseif base ~= null then
|
|
410
|
+
assert.type(base, "idl valuetype", "base in value definition")
|
|
411
|
+
end
|
|
412
|
+
if self.members == nil then self.members = self end
|
|
413
|
+
local members = self.members
|
|
414
|
+
local definitions = self.definitions
|
|
415
|
+
for index, member in ipairs(members) do
|
|
416
|
+
member = valuemember(member)
|
|
417
|
+
members[index] = member
|
|
418
|
+
definitions:__newindex(member.name, member)
|
|
419
|
+
end
|
|
420
|
+
return self
|
|
421
|
+
end
|
|
422
|
+
|
|
423
|
+
function valuebox(self)
|
|
424
|
+
self = Contained(self)
|
|
425
|
+
self._type = "valuebox"
|
|
426
|
+
if self.original_type == nil then self.original_type = self[1] end
|
|
427
|
+
local type = self.original_type
|
|
428
|
+
assert.type(type, "idl type", "type in typedef definition")
|
|
429
|
+
local kind = type._type
|
|
430
|
+
if kind == "valuetype" or kind == "valuebox" then
|
|
431
|
+
assert.illegal(type, "type of value box")
|
|
432
|
+
end
|
|
433
|
+
return self
|
|
434
|
+
end
|
|
435
|
+
|
|
436
|
+
function typedef(self)
|
|
437
|
+
self = Contained(self)
|
|
438
|
+
self._type = "typedef"
|
|
439
|
+
if self.original_type == nil then self.original_type = self[1] end
|
|
440
|
+
assert.type(self.original_type, "idl type", "type in typedef definition")
|
|
441
|
+
return self
|
|
442
|
+
end
|
|
443
|
+
|
|
444
|
+
function except(self)
|
|
445
|
+
self = Container(Contained(self))
|
|
446
|
+
self._type = "except"
|
|
447
|
+
if self.members == nil then self.members = self end
|
|
448
|
+
checkfields(self.members)
|
|
449
|
+
return self
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
--------------------------------------------------------------------------------
|
|
453
|
+
-- IDL interface definitions ---------------------------------------------------
|
|
454
|
+
|
|
455
|
+
-- Note: construtor syntax is optimized for use with Interface Repository
|
|
456
|
+
|
|
457
|
+
function attribute(self)
|
|
458
|
+
self = Contained(self)
|
|
459
|
+
self._type = "attribute"
|
|
460
|
+
if self.type == nil then self.type = self[1] end
|
|
461
|
+
assert.type(self.type, "idl type", "attribute type")
|
|
462
|
+
|
|
463
|
+
local mode = self.mode
|
|
464
|
+
if mode == "ATTR_READONLY" then
|
|
465
|
+
self.readonly = true
|
|
466
|
+
elseif mode ~= nil and mode ~= "ATTR_NORMAL" then
|
|
467
|
+
assert.illegal(self.mode, "attribute mode")
|
|
468
|
+
end
|
|
469
|
+
|
|
470
|
+
return self
|
|
471
|
+
end
|
|
472
|
+
|
|
473
|
+
function operation(self)
|
|
474
|
+
self = Contained(self)
|
|
475
|
+
self._type = "operation"
|
|
476
|
+
|
|
477
|
+
local mode = self.mode
|
|
478
|
+
if mode == "OP_ONEWAY" then
|
|
479
|
+
self.oneway = true
|
|
480
|
+
elseif mode ~= nil and mode ~= "OP_NORMAL" then
|
|
481
|
+
assert.illegal(self.mode, "operation mode")
|
|
482
|
+
end
|
|
483
|
+
|
|
484
|
+
self.inputs = {}
|
|
485
|
+
self.outputs = {}
|
|
486
|
+
if self.result and self.result ~= void then
|
|
487
|
+
self.outputs[#self.outputs+1] = self.result
|
|
488
|
+
end
|
|
489
|
+
if self.parameters then
|
|
490
|
+
for _, param in ipairs(self.parameters) do
|
|
491
|
+
checkfield(param)
|
|
492
|
+
if param.mode then
|
|
493
|
+
assert.type(param.mode, "string", "operation parameter mode")
|
|
494
|
+
if param.mode == "PARAM_IN" then
|
|
495
|
+
self.inputs[#self.inputs+1] = param.type
|
|
496
|
+
elseif param.mode == "PARAM_OUT" then
|
|
497
|
+
self.outputs[#self.outputs+1] = param.type
|
|
498
|
+
elseif param.mode == "PARAM_INOUT" then
|
|
499
|
+
self.inputs[#self.inputs+1] = param.type
|
|
500
|
+
self.outputs[#self.outputs+1] = param.type
|
|
501
|
+
else
|
|
502
|
+
assert.illegal(param.mode, "operation parameter mode")
|
|
503
|
+
end
|
|
504
|
+
else
|
|
505
|
+
self.inputs[#self.inputs+1] = param.type
|
|
506
|
+
end
|
|
507
|
+
end
|
|
508
|
+
end
|
|
509
|
+
|
|
510
|
+
if self.exceptions then
|
|
511
|
+
for _, except in ipairs(self.exceptions) do
|
|
512
|
+
assert.type(except, "idl except", "raised exception")
|
|
513
|
+
if self.exceptions[except.repID] ~= nil then
|
|
514
|
+
assert.illegal(except.repID,
|
|
515
|
+
"exception raise defintion, got duplicated repository ID")
|
|
516
|
+
end
|
|
517
|
+
self.exceptions[except.repID] = except
|
|
518
|
+
end
|
|
519
|
+
else
|
|
520
|
+
self.exceptions = {}
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
return self
|
|
524
|
+
end
|
|
525
|
+
|
|
526
|
+
function module(self)
|
|
527
|
+
self = Container(Contained(self))
|
|
528
|
+
self._type = "module"
|
|
529
|
+
return self
|
|
530
|
+
end
|
|
531
|
+
|
|
532
|
+
--------------------------------------------------------------------------------
|
|
533
|
+
|
|
534
|
+
local function ibases(queue, interface)
|
|
535
|
+
interface = queue[interface]
|
|
536
|
+
if interface then
|
|
537
|
+
for _, base in ipairs(interface.base_interfaces) do
|
|
538
|
+
queue:enqueue(base)
|
|
539
|
+
end
|
|
540
|
+
return interface
|
|
541
|
+
end
|
|
542
|
+
end
|
|
543
|
+
function basesof(self)
|
|
544
|
+
local queue = OrderedSet()
|
|
545
|
+
queue:enqueue(self)
|
|
546
|
+
return ibases, queue, OrderedSet.firstkey
|
|
547
|
+
end
|
|
548
|
+
|
|
549
|
+
function interface(self)
|
|
550
|
+
self = Container(Contained(self))
|
|
551
|
+
self._type = "interface"
|
|
552
|
+
if self.base_interfaces == nil then self.base_interfaces = self end
|
|
553
|
+
assert.type(self.base_interfaces, "table", "interface base list")
|
|
554
|
+
for _, base in ipairs(self.base_interfaces) do
|
|
555
|
+
if base._type ~= "abstract_interface" then
|
|
556
|
+
assert.type(base, "idl interface", "interface base")
|
|
557
|
+
end
|
|
558
|
+
end
|
|
559
|
+
self.hierarchy = basesof
|
|
560
|
+
return self
|
|
561
|
+
end
|
|
562
|
+
|
|
563
|
+
function abstract_interface(self)
|
|
564
|
+
self = interface(self)
|
|
565
|
+
for _, base in ipairs(self.base_interfaces) do
|
|
566
|
+
assert.type(base, "idl abstract_interface", "abstract interface base")
|
|
567
|
+
end
|
|
568
|
+
self._type = "abstract_interface"
|
|
569
|
+
return self
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
function local_interface(self)
|
|
573
|
+
self = interface(self)
|
|
574
|
+
for _, base in ipairs(self.base_interfaces) do
|
|
575
|
+
if base._type ~= "local_interface" then
|
|
576
|
+
assert.type(base, "idl interface", "local interface base")
|
|
577
|
+
end
|
|
578
|
+
end
|
|
579
|
+
self._type = "local_interface"
|
|
580
|
+
return self
|
|
581
|
+
end
|
|
582
|
+
|
|
583
|
+
--------------------------------------------------------------------------------
|
|
584
|
+
-- IDL types used in the implementation of OiL ---------------------------------
|
|
585
|
+
|
|
586
|
+
object = interface{
|
|
587
|
+
repID = "IDL:omg.org/CORBA/Object:1.0",
|
|
588
|
+
name = "Object",
|
|
589
|
+
}
|
|
590
|
+
ValueBase = valuetype{
|
|
591
|
+
repID = "IDL:omg.org/CORBA/ValueBase:1.0",
|
|
592
|
+
name = "ValueBase",
|
|
593
|
+
abstract = true,
|
|
594
|
+
}
|
|
595
|
+
OctetSeq = sequence{octet}
|
|
596
|
+
Version = struct{{ type = octet, name = "major" },
|
|
597
|
+
{ type = octet, name = "minor" }}
|