aboutsummaryrefslogtreecommitdiffstats
path: root/core/eventmanager.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2008-12-06 03:41:49 +0000
committerMatthew Wild <mwild1@gmail.com>2008-12-06 03:41:49 +0000
commitdfeabed19fd81dabeb88477c716ecd4c132484c0 (patch)
treea5ccac952fd39818218b3f2e571f70545f52d142 /core/eventmanager.lua
parentc0334a2ad92f5bff979f309a6276b067487c03a8 (diff)
downloadprosody-dfeabed19fd81dabeb88477c716ecd4c132484c0.tar.gz
prosody-dfeabed19fd81dabeb88477c716ecd4c132484c0.zip
Add hostmanager, and eventmanager
Diffstat (limited to 'core/eventmanager.lua')
-rw-r--r--core/eventmanager.lua25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/eventmanager.lua b/core/eventmanager.lua
new file mode 100644
index 00000000..169be8e9
--- /dev/null
+++ b/core/eventmanager.lua
@@ -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