Software /
code /
prosody
Diff
core/eventmanager.lua @ 569:5216efe6088b
Add hostmanager, and eventmanager
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 06 Dec 2008 03:41:49 +0000 |
child | 1514:0c706c3d2e30 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/eventmanager.lua Sat Dec 06 03:41:49 2008 +0000 @@ -0,0 +1,25 @@ + +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; \ No newline at end of file