helium/core/events.lua
Elmārs Āboliņš b6e29a3ed7 layout start
2020-09-03 01:21:36 +03:00

53 lines
852 B
Lua

local eventClass = {}
eventClass.__index = eventClass
function eventClass.new()
local self = {
eventSubs = {}
}
return setmetatable(self, eventClass)
end
function eventClass:sub(name, func)
local sub = { func = func }
self:provideQueue(name)
self.eventSubs[name][func] = func
return sub
end
function eventClass:push(name, event)
if self.eventSubs[name] then
table.insert(self.eventSubs[name].queue, event)
end
end
function eventClass:flush(name)
end
function eventClass:flushAll()
for i, subs in pairs(self.eventSubs) do
local assembledEvent = {}
for i, e in ipairs(subs.queue) do
end
end
end
function eventClass:provideQueue(name)
if not self.eventSubs[name] then
self.eventSubs[name] = {
queue = {}
}
end
end
function eventClass:unsub(name, event)
self.eventSubs[name][event] = nil
end
return eventClass