35 lines
1.2 KiB
Lua
35 lines
1.2 KiB
Lua
require "oil"
|
|
oil.main(function()
|
|
local orb = oil.init()
|
|
------------------------------------------------------------------------------
|
|
orb:loadidl [[
|
|
module Adaptation {
|
|
interface Server {
|
|
boolean do_something_for(in long seconds);
|
|
};
|
|
interface Adaptor {
|
|
void update_definition(in string definition);
|
|
};
|
|
};
|
|
]]
|
|
------------------------------------------------------------------------------
|
|
local server_impl = {}
|
|
function server_impl:do_something_for(seconds)
|
|
print("about to sleep for "..seconds.." seconds")
|
|
oil.sleep(seconds)
|
|
return true
|
|
end
|
|
local adaptor_impl = {}
|
|
function adaptor_impl:update_definition(definition)
|
|
orb:loadidl(definition)
|
|
end
|
|
------------------------------------------------------------------------------
|
|
local server = orb:newservant(server_impl, nil, "IDL:Adaptation/Server:1.0")
|
|
local adaptor = orb:newservant(adaptor_impl, nil, "IDL:Adaptation/Adaptor:1.0")
|
|
------------------------------------------------------------------------------
|
|
oil.writeto("server.ior", orb:tostring(server))
|
|
oil.writeto("serveradaptor.ior", orb:tostring(adaptor))
|
|
------------------------------------------------------------------------------
|
|
orb:run()
|
|
end)
|