forked from sean-lin/protoc-gen-lua
-
Notifications
You must be signed in to change notification settings - Fork 0
/
listener.lua
50 lines (44 loc) · 1.26 KB
/
listener.lua
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
--
--------------------------------------------------------------------------------
-- FILE: listener.lua
-- DESCRIPTION: protoc-gen-lua
-- Google's Protocol Buffers project, ported to lua.
-- https://code.google.com/p/protoc-gen-lua/
--
-- Copyright (c) 2010 , 林卓毅 (Zhuoyi Lin) [email protected]
-- All rights reserved.
--
-- Use, modification and distribution are subject to the "New BSD License"
-- as listed at <url: http://www.opensource.org/licenses/bsd-license.php >.
--
-- COMPANY: NetEase
-- CREATED: 2010年08月02日 17时35分25秒 CST
--------------------------------------------------------------------------------
--
local setmetatable = setmetatable
module "listener"
local _null_listener = {
Modified = function()
end
}
function NullMessageListener()
return _null_listener
end
local _listener_meta = {
Modified = function(self)
if self.dirty then
return
end
if self._parent_message then
self._parent_message:_Modified()
end
end
}
_listener_meta.__index = _listener_meta
function Listener(parent_message)
local o = {}
o.__mode = "v"
o._parent_message = parent_message
o.dirty = false
return setmetatable(o, _listener_meta)
end