util/events.lua
changeset 3498 3f52f3d9db5a
parent 2925 692b3c6c5bd2
child 3499 91c55ae31ef3
--- 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;
 	};