Files
skynet/lualib/sharedata.lua

44 lines
892 B
Lua

local skynet = require "skynet"
local sd = require "sharedata.corelib"
local service
skynet.init(function()
service = skynet.uniqueservice "sharedatad"
end)
local sharedata = {}
local function monitor(name, obj, cobj)
local newobj = cobj
while true do
newobj = skynet.call(service, "lua", "monitor", name, newobj)
if newobj == nil then
break
end
sd.update(obj, newobj)
end
end
function sharedata.query(name)
local obj = skynet.call(service, "lua", "query", name)
local r = sd.box(obj)
skynet.send(service, "lua", "confirm" , obj)
skynet.fork(monitor,name, r, obj)
return r
end
function sharedata.new(name, v, ...)
skynet.call(service, "lua", "new", name, v, ...)
end
function sharedata.update(name, v, ...)
skynet.call(service, "lua", "update", name, v, ...)
end
function sharedata.delete(name)
skynet.call(service, "lua", "delete", name)
end
return sharedata