Software /
code /
prosody
Diff
util/events.lua @ 3498:3f52f3d9db5a
util.events: Removed dispatcher creation functions (these weren't being used).
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Fri, 17 Sep 2010 04:09:58 +0500 |
parent | 2925:692b3c6c5bd2 |
child | 3499:91c55ae31ef3 |
line wrap: on
line diff
--- a/util/events.lua Fri Sep 17 04:06:07 2010 +0500 +++ b/util/events.lua Fri Sep 17 04:09:58 2010 +0500 @@ -7,16 +7,13 @@ -- -local ipairs = ipairs; local pairs = pairs; local t_insert = table.insert; local t_sort = table.sort; -local select = select; module "events" function new() - local dispatchers = {}; local handlers = {}; local event_map = {}; local function _rebuild_index(event) -- TODO optimize index rebuilding @@ -57,22 +54,7 @@ remove_handler(event, handler); end end; - local function _create_dispatcher(event) -- FIXME duplicate code in fire_event - local h = handlers[event]; - if not h then h = {}; handlers[event] = h; end - local dispatcher = function(...) - for i=1,#h do - local ret = h[i](...); - if ret ~= nil then return ret; end - end - end; - dispatchers[event] = dispatcher; - return dispatcher; - end; - local function get_dispatcher(event) - return dispatchers[event] or _create_dispatcher(event); - end; - local function fire_event(event, ...) -- FIXME duplicates dispatcher code + local function fire_event(event, ...) local h = handlers[event]; if h then for i=1,#h do @@ -81,24 +63,12 @@ end end end; - local function get_named_arg_dispatcher(event, ...) - local dispatcher = get_dispatcher(event); - local keys = {...}; - local data = {}; - return function(...) - for i, key in ipairs(keys) do data[key] = select(i, ...); end - dispatcher(data); - end; - end; return { add_handler = add_handler; remove_handler = remove_handler; add_plugin = add_plugin; remove_plugin = remove_plugin; - get_dispatcher = get_dispatcher; fire_event = fire_event; - get_named_arg_dispatcher = get_named_arg_dispatcher; - _dispatchers = dispatchers; _handlers = handlers; _event_map = event_map; };