use sproto global slot

This commit is contained in:
Cloud Wu
2015-02-28 13:33:56 +08:00
parent 318ee300e3
commit 688cc843ce
8 changed files with 86 additions and 40 deletions

View File

@@ -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
View 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