File

core/eventmanager.lua @ 3068:fc7c693e094a

mod_privacy: Remove validation that checks a roster group you block actually exists - it would be time-consuming on large rosters, and isn't important (or correct?) anyway.
author Matthew Wild <mwild1@gmail.com>
date Fri, 21 May 2010 19:19:29 +0100
parent 2923:b7049746bd29
child 2986:fff153f7f4de
line wrap: on
line source

-- Prosody IM
-- Copyright (C) 2008-2010 Matthew Wild
-- Copyright (C) 2008-2010 Waqas Hussain
-- 
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--


local t_insert = table.insert;
local ipairs = ipairs;

module "eventmanager"

local event_handlers = {};

function add_event_hook(name, handler)
	if not event_handlers[name] then
		event_handlers[name] = {};
	end
	t_insert(event_handlers[name] , handler);
end

function fire_event(name, ...)
	local event_handlers = event_handlers[name];
	if event_handlers then
		for name, handler in ipairs(event_handlers) do
			handler(...);
		end
	end
end

return _M;