35 lines
677 B
Lua
35 lines
677 B
Lua
local Server = { data = { a_number = 1234 } }
|
|
|
|
function Server:read(tag)
|
|
local value = Server.data[tag]
|
|
if value == nil then
|
|
error(orb:newexcept{"Control::AccessError",
|
|
tagname=tag,
|
|
reason="unknown tag name",
|
|
})
|
|
end
|
|
return value
|
|
end
|
|
|
|
function Server:write(tag, value)
|
|
local old = Server.data[tag]
|
|
if type(old) ~= type(value) then
|
|
error(orb:newexcept{"Control::AccessError",
|
|
tagname=tag,
|
|
reason="invalid value for tag",
|
|
})
|
|
end
|
|
Server.data[tag] = value
|
|
end
|
|
|
|
require "oil"
|
|
|
|
oil.main(function()
|
|
orb = oil.init()
|
|
orb:loadidlfile("control.idl")
|
|
oil.writeto("ref.ior",
|
|
orb:tostring(
|
|
orb:newservant(Server, nil, "Control::Server")))
|
|
orb:run()
|
|
end)
|