mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
38 lines
794 B
Lua
38 lines
794 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 = skynet.call(service, "lua", "monitor", name, cobj)
|
|
sd.update(obj, newobj)
|
|
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
|