mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 20:23:06 +00:00
use sproto global slot
This commit is contained in:
@@ -12,8 +12,8 @@ function sproto_mt:__gc()
|
||||
core.deleteproto(self.__cobj)
|
||||
end
|
||||
|
||||
function sproto.new(pbin)
|
||||
local cobj = assert(core.newproto(pbin))
|
||||
function sproto.new(...)
|
||||
local cobj = assert(core.newproto(...))
|
||||
local self = {
|
||||
__cobj = cobj,
|
||||
__tcache = setmetatable( {} , weak_mt ),
|
||||
|
||||
23
lualib/sprotoloader.lua
Normal file
23
lualib/sprotoloader.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
local parser = require "sprotoparser"
|
||||
local core = require "sproto.core"
|
||||
local sproto = require "sproto"
|
||||
|
||||
local loader = {}
|
||||
|
||||
function loader.register(filename, index)
|
||||
local f = assert(io.open(filename), "Can't open sproto file")
|
||||
local data = f:read "a"
|
||||
f:close()
|
||||
local bin = parser.parse(data)
|
||||
core.saveproto(bin, index)
|
||||
end
|
||||
|
||||
loader.save = core.saveproto
|
||||
|
||||
function loader.load(index)
|
||||
local bin, sz = core.loadproto(index)
|
||||
return sproto.new(bin,sz)
|
||||
end
|
||||
|
||||
return loader
|
||||
|
||||
Reference in New Issue
Block a user