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,126 @@
|
|
|
1
|
+
--------------------------------------------------------------------------------
|
|
2
|
+
------------------------------ ##### ## ------------------------------
|
|
3
|
+
------------------------------ ## ## # ## ------------------------------
|
|
4
|
+
------------------------------ ## ## ## ## ------------------------------
|
|
5
|
+
------------------------------ ## ## # ## ------------------------------
|
|
6
|
+
------------------------------ ##### ### ###### ------------------------------
|
|
7
|
+
-------------------------------- --------------------------------
|
|
8
|
+
----------------------- An Object Request Broker in Lua ------------------------
|
|
9
|
+
--------------------------------------------------------------------------------
|
|
10
|
+
-- Project: OiL - ORB in Lua: An Object Request Broker in Lua --
|
|
11
|
+
-- Release: 0.5 alpha --
|
|
12
|
+
-- Title : Event Service --
|
|
13
|
+
-- Authors: Leonardo S. A. Maciel <leonardo@maciel.org> --
|
|
14
|
+
--------------------------------------------------------------------------------
|
|
15
|
+
-- Interface: --
|
|
16
|
+
-- new() Creates a new instance of a CORBA Event Channel --
|
|
17
|
+
--------------------------------------------------------------------------------
|
|
18
|
+
-- Notes: --
|
|
19
|
+
-- This implementation currently does not support typed events. --
|
|
20
|
+
-- This implementation currently does not support pull event model. --
|
|
21
|
+
--------------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
local oil = require "oil"
|
|
24
|
+
local oo = require "oil.oo"
|
|
25
|
+
local assert = require "oil.assert"
|
|
26
|
+
local EventQueue = require "oil.corba.services.event.EventQueue"
|
|
27
|
+
local EventFactory = require "oil.corba.services.event.EventFactory"
|
|
28
|
+
local EventDispatcher = require "oil.corba.services.event.SingleSynchronousDispatcher"
|
|
29
|
+
--local EventDispatcher = require "oil.corba.services.event.SingleDeferredDispatcher"
|
|
30
|
+
local ConsumerAdmin = require "oil.corba.services.event.ConsumerAdmin"
|
|
31
|
+
local SupplierAdmin = require "oil.corba.services.event.SupplierAdmin"
|
|
32
|
+
|
|
33
|
+
module "oil.corba.services.event"
|
|
34
|
+
|
|
35
|
+
--------------------------------------------------------------------------------
|
|
36
|
+
-- In this new version, ConsumerAdmin and SupplierAdmin objects were
|
|
37
|
+
-- suppressed and the event channel implements their interface.
|
|
38
|
+
--
|
|
39
|
+
|
|
40
|
+
local EventChannel = oo.class()
|
|
41
|
+
|
|
42
|
+
function EventChannel.__init(class)
|
|
43
|
+
self = oo.rawnew(class, {
|
|
44
|
+
push_consumer_count = 0,
|
|
45
|
+
push_supplier_count = 0,
|
|
46
|
+
event_queue = EventQueue(),
|
|
47
|
+
event_factory = EventFactory()
|
|
48
|
+
})
|
|
49
|
+
self.event_dispatcher = EventDispatcher(self.event_queue)
|
|
50
|
+
self.consumer_admin = ConsumerAdmin(self)
|
|
51
|
+
self.supplier_admin = SupplierAdmin(self)
|
|
52
|
+
return self
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
-- The destroy operation destroys the event channel. Destroying an event channel
|
|
56
|
+
-- destroys all ConsumerAdmin and SupplierAdmin objects that were created via
|
|
57
|
+
-- that channel. Destruction of a ConsumerAdmin or SupplierAdmin object causes
|
|
58
|
+
-- the implementation to invoke the disconnect operation on all proxies that were
|
|
59
|
+
-- created via that ConsumerAdmin or SupplierAdmin object.
|
|
60
|
+
|
|
61
|
+
function EventChannel:destroy()
|
|
62
|
+
self.event_queue = nil
|
|
63
|
+
self.event_factory = nil
|
|
64
|
+
self.consumer_admin:destroy()
|
|
65
|
+
self.consumer_admin = nil
|
|
66
|
+
self.supplier_admin:destroy()
|
|
67
|
+
self.supplier_admin = nil
|
|
68
|
+
self.event_dispatcher = nil
|
|
69
|
+
self.push_consumer_count = 0
|
|
70
|
+
self.push_supplier_count = 0
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
-- returns an object reference that supports the ConsumerAdmin interface
|
|
74
|
+
|
|
75
|
+
function EventChannel:for_consumers()
|
|
76
|
+
return self.consumer_admin
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
-- returns an object reference that supports the SupplierAdmin interface
|
|
80
|
+
|
|
81
|
+
function EventChannel:for_suppliers()
|
|
82
|
+
return self.supplier_admin
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
-- invoked by ConsumerAdmin
|
|
86
|
+
|
|
87
|
+
function EventChannel:add_push_consumer(push_consumer)
|
|
88
|
+
self.event_dispatcher:add_consumer(push_consumer)
|
|
89
|
+
self.push_consumer_count = self.push_consumer_count + 1
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
-- invoked by ConsumerAdmin
|
|
93
|
+
|
|
94
|
+
function EventChannel:rem_push_consumer(push_consumer)
|
|
95
|
+
self.event_dispatcher:rem_consumer(push_consumer)
|
|
96
|
+
self.push_consumer_count = self.push_consumer_count - 1
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
-- invoked by SupplierAdmin
|
|
100
|
+
|
|
101
|
+
function EventChannel:add_push_supplier(push_supplier)
|
|
102
|
+
self.push_supplier_count = self.push_supplier_count + 1
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
-- invoked by SupplierAdmin
|
|
106
|
+
|
|
107
|
+
function EventChannel:rem_push_supplier(push_supplier)
|
|
108
|
+
self.push_supplier_count = self.push_supplier_count - 1
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
--------------------------------------------------------------------------------
|
|
113
|
+
-- Creates a new instance of a CORBA Event Channel -----------------------------
|
|
114
|
+
|
|
115
|
+
-- @param props table [optional] Properties instance.
|
|
116
|
+
|
|
117
|
+
-- @return 1 table CORBA object which is an untyped Event Channel.
|
|
118
|
+
-- @return 2 string Repository ID of interface supported by the Event Channel.
|
|
119
|
+
-- @return 3 string Default Event Channel object key.
|
|
120
|
+
|
|
121
|
+
function new()
|
|
122
|
+
return EventChannel(),
|
|
123
|
+
"DefaultEventChannel",
|
|
124
|
+
"IDL:omg.org/CosEventChannelAdmin/EventChannel:1.0"
|
|
125
|
+
end
|
|
126
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
local oil = require "oil"
|
|
2
|
+
local oo = require "oil.oo"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
local UnorderedArraySet = require "loop.collection.UnorderedArraySet"
|
|
5
|
+
local ProxyPushSupplier = require "oil.corba.services.event.ProxyPushSupplier"
|
|
6
|
+
|
|
7
|
+
module("oil.corba.services.event.ConsumerAdmin", oo.class)
|
|
8
|
+
|
|
9
|
+
function __init(class, channel)
|
|
10
|
+
return oo.rawnew(class, {
|
|
11
|
+
channel = channel,
|
|
12
|
+
proxypushsuppliers = UnorderedArraySet()
|
|
13
|
+
})
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
-- The obtain_push_supplier operation returns a ProxyPushSupplier object. The
|
|
17
|
+
-- ProxyPushSupplier object is then used to connect a push-style consumer.
|
|
18
|
+
|
|
19
|
+
function obtain_push_supplier(self)
|
|
20
|
+
return ProxyPushSupplier(self)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
-- invoked by ProxyPushSupplier to signal it's connected
|
|
24
|
+
|
|
25
|
+
function add_push_consumer(self, proxy, push_consumer)
|
|
26
|
+
self.proxypushsuppliers:add(proxy)
|
|
27
|
+
self.channel:add_push_consumer(push_consumer)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
-- invoked by ProxyPushSupplier to signal it's disconnected
|
|
31
|
+
|
|
32
|
+
function rem_push_consumer(self, proxy, push_consumer)
|
|
33
|
+
assert.results(self.proxypushsuppliers:contains(proxy))
|
|
34
|
+
self.proxypushsuppliers:remove(proxy)
|
|
35
|
+
self.channel:rem_push_consumer(push_consumer)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
-- invoked by the channel to disconnect all proxies of the admin.
|
|
39
|
+
-- must reverse iterate over proxypushsuppliers because the disconnection
|
|
40
|
+
-- removes the consumer from the array.
|
|
41
|
+
|
|
42
|
+
function destroy(self)
|
|
43
|
+
for i=#self.proxypushsuppliers,1,-1 do
|
|
44
|
+
local proxy = self.proxypushsuppliers[i]
|
|
45
|
+
oil.pcall(proxy.disconnect_push_supplier, proxy)
|
|
46
|
+
end
|
|
47
|
+
self.proxypushsuppliers = nil
|
|
48
|
+
self.channel = nil
|
|
49
|
+
end
|
|
50
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
local oil = require "oil"
|
|
2
|
+
local oo = require "oil.oo"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
local os = require "os"
|
|
5
|
+
|
|
6
|
+
module("oil.corba.services.event.EventFactory", oo.class)
|
|
7
|
+
|
|
8
|
+
function create(self, data)
|
|
9
|
+
assert.type(data, "table")
|
|
10
|
+
return {
|
|
11
|
+
created = os.time(),
|
|
12
|
+
data = data
|
|
13
|
+
}
|
|
14
|
+
end
|
|
15
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
local oil = require "oil"
|
|
2
|
+
local oo = require "oil.oo"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
|
|
5
|
+
module("oil.corba.services.event.EventQueue", oo.class)
|
|
6
|
+
|
|
7
|
+
-- filo por enquanto
|
|
8
|
+
|
|
9
|
+
function __init(class, scheduler)
|
|
10
|
+
return oo.rawnew(class, {
|
|
11
|
+
count = 0,
|
|
12
|
+
scheduler = scheduler or oil.tasks
|
|
13
|
+
})
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
function enqueue(self, event)
|
|
17
|
+
self.count = self.count + 1
|
|
18
|
+
self[self.count] = event
|
|
19
|
+
if self.count > 0 and self.waiting_thread then
|
|
20
|
+
local t = self.waiting_thread
|
|
21
|
+
self.waiting_thread = nil
|
|
22
|
+
self.scheduler:resume(t)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
function dequeue(self)
|
|
27
|
+
if self.count == 0 then
|
|
28
|
+
assert.results(self.waiting_thread == nil)
|
|
29
|
+
self.waiting_thread = self.scheduler.current
|
|
30
|
+
self.scheduler:suspend()
|
|
31
|
+
end
|
|
32
|
+
local e = self[self.count]
|
|
33
|
+
self[self.count] = nil
|
|
34
|
+
self.count = self.count - 1
|
|
35
|
+
return e
|
|
36
|
+
end
|
|
37
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
local oil = require "oil"
|
|
2
|
+
local oo = require "oil.oo"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
|
|
5
|
+
module("oil.corba.services.event.ProxyPushConsumer", oo.class)
|
|
6
|
+
|
|
7
|
+
-- Proxies are in one of three states: disconnected, connected, or destroyed.
|
|
8
|
+
-- Push/pull operations are only valid in the connected state.
|
|
9
|
+
|
|
10
|
+
function __init(class, admin)
|
|
11
|
+
assert.results(admin)
|
|
12
|
+
return oo.rawnew(class, {
|
|
13
|
+
admin = admin,
|
|
14
|
+
connected = false,
|
|
15
|
+
push_supplier = nil
|
|
16
|
+
})
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
-- A supplier communicates event data to the consumer by invoking the push
|
|
20
|
+
-- operation and passing the event data as a parameter.
|
|
21
|
+
|
|
22
|
+
function push(self, data)
|
|
23
|
+
if not self.connected then
|
|
24
|
+
assert.exception{"IDL:omg.org/CosEventComm/Disconnected:1.0"}
|
|
25
|
+
end
|
|
26
|
+
local channel = self.admin.channel
|
|
27
|
+
local event = channel.event_factory:create(data)
|
|
28
|
+
channel.event_queue:enqueue(event)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
-- A nil object reference may be passed to the connect_push_supplier operation.
|
|
32
|
+
-- If so a channel cannot invoke the disconnect_push_supplier operation on the
|
|
33
|
+
-- supplier. The supplier may be disconnected from the channel without being
|
|
34
|
+
-- informed. If a nonnil reference is passed to connect_push_supplier, the
|
|
35
|
+
-- implementation calls disconnect_push_supplier via that reference when the
|
|
36
|
+
-- ProxyPushConsumer is destroyed.
|
|
37
|
+
--
|
|
38
|
+
-- If the ProxyPushConsumer is already connected to a PushSupplier, then the
|
|
39
|
+
-- AlreadyConnected exception is raised.
|
|
40
|
+
|
|
41
|
+
function connect_push_supplier(self, push_supplier)
|
|
42
|
+
if self.connected then
|
|
43
|
+
assert.exception{"IDL:omg.org/CosEventChannelAdmin/AlreadyConnected:1.0"}
|
|
44
|
+
end
|
|
45
|
+
self.push_supplier = push_supplier
|
|
46
|
+
self.admin:add_push_supplier(self, push_supplier)
|
|
47
|
+
self.connected = true
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
-- The disconnect_push_consumer operation terminates the event communication.
|
|
51
|
+
-- It releases resources used at the consumer to support the event
|
|
52
|
+
-- communication. The PushConsumer object reference is disposed. Calling
|
|
53
|
+
-- disconnect_push_consumer causes the implementation to call the
|
|
54
|
+
-- disconnect_push_supplier operation on the corresponding PushSupplier
|
|
55
|
+
-- interface (if that interface is known).
|
|
56
|
+
--
|
|
57
|
+
-- Calling a disconnect operation on a consumer or supplier interface may cause
|
|
58
|
+
-- a call to the corresponding disconnect operation on the connected supplier
|
|
59
|
+
-- or consumer. Implementations must take care to avoid infinite recursive
|
|
60
|
+
-- calls to these disconnect operations. If a consumer or supplier has received
|
|
61
|
+
-- a disconnect call and subsequently receives another disconnect call, it shall
|
|
62
|
+
-- raise a CORBA::OBJECT_NOT_EXIST exception.
|
|
63
|
+
|
|
64
|
+
function disconnect_push_consumer(self)
|
|
65
|
+
if not self.connected then
|
|
66
|
+
assert.exception{"IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"}
|
|
67
|
+
end
|
|
68
|
+
self.connected = false
|
|
69
|
+
if self.push_supplier then -- supplier may be nil
|
|
70
|
+
self.admin:rem_push_supplier(self, push_supplier)
|
|
71
|
+
oil.pcall(self.push_supplier.disconnect_push_supplier, self.push_supplier)
|
|
72
|
+
self.push_supplier = nil
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
local oil = require "oil"
|
|
2
|
+
local oo = require "oil.oo"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
|
|
5
|
+
module("oil.corba.services.event.ProxyPushSupplier", oo.class)
|
|
6
|
+
|
|
7
|
+
function __init(class, admin)
|
|
8
|
+
return oo.rawnew(class, {
|
|
9
|
+
admin = admin,
|
|
10
|
+
connected = false,
|
|
11
|
+
push_consumer = nil
|
|
12
|
+
})
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
-- Implementations shall raise the CORBA standard BAD_PARAM exception if a nil
|
|
16
|
+
-- object reference is passed to the connect_push_consumer operation. If the
|
|
17
|
+
-- ProxyPushSupplier is already connected to a PushConsumer, then the
|
|
18
|
+
-- AlreadyConnected exception is raised.
|
|
19
|
+
--
|
|
20
|
+
-- An implementation of a ProxyPushSupplier may put additional requirements on
|
|
21
|
+
-- the interface supported by the push consumer. If the push consumer does not
|
|
22
|
+
-- meet those requirements, the ProxyPushSupplier raises the TypeError
|
|
23
|
+
-- exception.
|
|
24
|
+
|
|
25
|
+
function connect_push_consumer(self, push_consumer)
|
|
26
|
+
if self.connected then
|
|
27
|
+
assert.exception{"IDL:omg.org/CosEventChannelAdmin/AlreadyConnected:1.0"}
|
|
28
|
+
elseif not push_consumer then
|
|
29
|
+
assert.exception{"IDL:omg.org/CORBA/BAD_PARAM:1.0"}
|
|
30
|
+
end
|
|
31
|
+
self.push_consumer = push_consumer
|
|
32
|
+
self.connected = true
|
|
33
|
+
self.admin:add_push_consumer(self, self.push_consumer)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
-- The disconnect_push_supplier operation terminates the event communication; it
|
|
37
|
+
-- releases resources used at the supplier to support the event communication.
|
|
38
|
+
-- The PushSupplier object reference is disposed. Calling
|
|
39
|
+
-- disconnect_push_supplier causes the implementation to call the
|
|
40
|
+
-- disconnect_push_consumer operation on the corresponding PushConsumer
|
|
41
|
+
-- interface (if that interface is known).
|
|
42
|
+
--
|
|
43
|
+
-- Calling a disconnect operation on a consumer or supplier interface may cause
|
|
44
|
+
-- a call to the corresponding disconnect operation on the connected supplier or
|
|
45
|
+
-- consumer.
|
|
46
|
+
--
|
|
47
|
+
-- Implementations must take care to avoid infinite recursive calls to these
|
|
48
|
+
-- disconnect operations. If a consumer or supplier has received a disconnect
|
|
49
|
+
-- call and subsequently receives another disconnect call, it shall raise a
|
|
50
|
+
-- CORBA::OBJECT_NOT_EXIST exception.
|
|
51
|
+
|
|
52
|
+
function disconnect_push_supplier(self)
|
|
53
|
+
if not self.connected then
|
|
54
|
+
assert.exception{"IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0"}
|
|
55
|
+
end
|
|
56
|
+
self.connected = false
|
|
57
|
+
assert.results(self.push_consumer)
|
|
58
|
+
self.admin:rem_push_consumer(self, self.push_consumer)
|
|
59
|
+
oil.pcall(self.push_consumer.disconnect_push_consumer, self.push_consumer)
|
|
60
|
+
self.push_consumer = nil
|
|
61
|
+
end
|
|
62
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
local oil = require "oil"
|
|
2
|
+
local oo = require "oil.oo"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
local pairs = pairs
|
|
5
|
+
local next = next
|
|
6
|
+
local io = io
|
|
7
|
+
local coroutine = coroutine
|
|
8
|
+
|
|
9
|
+
module("oil.corba.services.event.SingleDeferredDispatcher", oo.class)
|
|
10
|
+
|
|
11
|
+
local calls = {} -- futures
|
|
12
|
+
|
|
13
|
+
local function dispatch(consumer, event)
|
|
14
|
+
calls[consumer.__deferred:push(event.data)] = consumer
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
local function waitforresults()
|
|
18
|
+
repeat
|
|
19
|
+
for call, id in pairs(calls) do
|
|
20
|
+
if call:ready() then
|
|
21
|
+
--io.write("ready, ")
|
|
22
|
+
if call:results()
|
|
23
|
+
then --io.write("success\n"); io.flush()
|
|
24
|
+
else io.write("failure\n"); io.flush() -- TODO retry
|
|
25
|
+
end
|
|
26
|
+
calls[call] = nil
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
coroutine.yield()
|
|
30
|
+
until next(calls) == nil
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
function __init(class, event_queue, consumers)
|
|
34
|
+
assert.type(event_queue, "table")
|
|
35
|
+
local self = oo.rawnew(class, {
|
|
36
|
+
event_queue = event_queue,
|
|
37
|
+
consumers = consumers or {},
|
|
38
|
+
})
|
|
39
|
+
oil.tasks:start(self.run, self)
|
|
40
|
+
return self
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
function add_consumer(self, push_consumer)
|
|
44
|
+
self.consumers[push_consumer] = true
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
function rem_consumer(self, push_consumer)
|
|
48
|
+
self.consumers[push_consumer] = nil
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
function run(self)
|
|
52
|
+
while true do
|
|
53
|
+
local e = self.event_queue:dequeue()
|
|
54
|
+
for c in pairs(self.consumers) do
|
|
55
|
+
dispatch(c, e)
|
|
56
|
+
end
|
|
57
|
+
waitforresults()
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
local oil = require "oil"
|
|
2
|
+
local oo = require "oil.oo"
|
|
3
|
+
local assert = require "oil.assert"
|
|
4
|
+
local pairs = pairs
|
|
5
|
+
|
|
6
|
+
module("oil.corba.services.event.SingleSynchronousDispatcher", oo.class)
|
|
7
|
+
|
|
8
|
+
local function dispatch(consumer, event)
|
|
9
|
+
local b,e = oil.pcall(consumer.push, consumer, event.data)
|
|
10
|
+
assert.results(b)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
function __init(class, event_queue, consumers)
|
|
14
|
+
assert.type(event_queue, "table")
|
|
15
|
+
local self = oo.rawnew(class, {
|
|
16
|
+
event_queue = event_queue,
|
|
17
|
+
consumers = consumers or {},
|
|
18
|
+
})
|
|
19
|
+
oil.tasks:start(self.run, self)
|
|
20
|
+
return self
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
function add_consumer(self, push_consumer)
|
|
24
|
+
self.consumers[push_consumer] = true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
function rem_consumer(self, push_consumer)
|
|
28
|
+
self.consumers[push_consumer] = nil
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
function run(self)
|
|
32
|
+
while true do
|
|
33
|
+
local e = self.event_queue:dequeue()
|
|
34
|
+
for c in pairs(self.consumers) do
|
|
35
|
+
dispatch(c, e)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|