34 lines
1.2 KiB
Lua

local require = require
local builder = require "oil.builder"
local base = require "oil.arch.base"
local corba = require "oil.arch.corba"
local component = require "loop.component.wrapped"
local port = require "loop.component.intercepted"
module "oil.builder.intercepted"
-- Avoid using a typed request dispatcher because the GIOP protocol already
-- does type checks prior to decode marshaled values in invocation requests.
-- See notes below:
arch = {
OperationRequester = component.Template({
requests = port.Facet,
messenger = port.Receptacle,
}, corba.OperationRequester),
RequestListener = component.Template({
messenger = port.Receptacle,
}, corba.RequestListener),
RequestDispatcher = component.Template({
dispatcher = port.Facet,
}, base.RequestDispatcher), -- use template from base architecture
}
OperationRequester = arch.OperationRequester{require "oil.corba.giop.Requester" }
RequestListener = arch.RequestListener {require "oil.corba.giop.Listener" }
RequestDispatcher = arch.RequestDispatcher {require "oil.kernel.base.Dispatcher"} -- use implementation from base kernel
function create(comps)
return builder.create(_M, comps)
end