66 lines
1.6 KiB
Lua

local port = require "oil.port"
local component = require "oil.component"
local arch = require "oil.arch"
module "oil.arch.base"
-- UNDERPINNINGS
SocketChannels = component.Template{
channels = port.Facet,
sockets = port.Receptacle,
}
BasicSystem = component.Template{
sockets = port.Facet,
}
-- CLIENT SIDE
ClientBroker = component.Template{
broker = port.Facet,
proxies = port.Receptacle,
references = port.Receptacle,
}
ObjectProxies = component.Template{
proxies = port.Facet,
invoker = port.Receptacle,
}
OperationInvoker = component.Template{
invoker = port.Facet,
requester = port.Receptacle,
}
-- SERVER SIDE
ServerBroker = component.Template{
broker = port.Facet,
objects = port.Receptacle,
acceptor = port.Receptacle,
references = port.Receptacle,
}
RequestDispatcher = component.Template{
objects = port.Facet,
dispatcher = port.Facet,
}
RequestReceiver = component.Template{
acceptor = port.Facet,
dispatcher = port.Receptacle,
listener = port.Receptacle,
}
function assemble(components)
arch.start(components)
-- CLIENT SIDE
OperationInvoker.requester = OperationRequester.requests
ObjectProxies.invoker = OperationInvoker.invoker
ClientBroker.proxies = ObjectProxies.proxies
ClientBroker.references = ObjectReferrer.references
-- SERVER SIDE
RequestReceiver.listener = RequestListener.listener
RequestReceiver.dispatcher = RequestDispatcher.dispatcher
ServerBroker.objects = RequestDispatcher.objects
ServerBroker.acceptor = RequestReceiver.acceptor
ServerBroker.references = ObjectReferrer.references
arch.finish(components)
end