Blame view

publish/skynet/lualib/sprotoloader.lua 576 Bytes
4d6f285d   zhouhaihai   增加发布功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  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 sp = core.newproto(parser.parse(data))
  	core.saveproto(sp, index)
  end
  
  function loader.save(bin, index)
  	local sp = core.newproto(bin)
  	core.saveproto(sp, index)
  end
  
  function loader.load(index)
  	local sp = core.loadproto(index)
  	--  no __gc in metatable
  	return sproto.sharenew(sp)
  end
  
  return loader