parent
99b1ddf44c
commit
ce9e443c60
@ -1,44 +0,0 @@
|
|||||||
--[[
|
|
||||||
@Authors: Ben Dol (BeniS)
|
|
||||||
@Details: CallbackEvent class shell for callback events
|
|
||||||
]]
|
|
||||||
|
|
||||||
CallbackEvent = newclass("CallbackEvent")
|
|
||||||
|
|
||||||
CallbackEvent.create = function(id, callback)
|
|
||||||
local event = CallbackEvent.internalCreate()
|
|
||||||
|
|
||||||
event.id = id
|
|
||||||
event.callback = callback
|
|
||||||
|
|
||||||
return event
|
|
||||||
end
|
|
||||||
|
|
||||||
-- gets/sets
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:getId()
|
|
||||||
return self.id
|
|
||||||
end
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:setId(id)
|
|
||||||
self.id = id
|
|
||||||
end
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:getCallback()
|
|
||||||
return self.callback
|
|
||||||
end
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:setCallback(callback)
|
|
||||||
self.callback = callback
|
|
||||||
end
|
|
||||||
|
|
||||||
-- logic
|
|
||||||
|
|
||||||
--@RequiredBy:Queue
|
|
||||||
function CallbackEvent:start()
|
|
||||||
-- Do nothing by default
|
|
||||||
end
|
|
@ -1,70 +0,0 @@
|
|||||||
--[[
|
|
||||||
@Authors: Ben Dol (BeniS)
|
|
||||||
@Details: Queue class for event queuing.
|
|
||||||
]]
|
|
||||||
|
|
||||||
Queue = newclass("Queue")
|
|
||||||
|
|
||||||
Queue.create = function(callback)
|
|
||||||
local obj = Queue.internalCreate()
|
|
||||||
|
|
||||||
obj.queue = {}
|
|
||||||
obj.callback = callback
|
|
||||||
|
|
||||||
return obj
|
|
||||||
end
|
|
||||||
|
|
||||||
-- gets/sets
|
|
||||||
|
|
||||||
function Queue:getQueue()
|
|
||||||
return self.queue
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:setQueue(queue)
|
|
||||||
self.queue = queue
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:getCallback()
|
|
||||||
return self.callback
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:setCallback(callback)
|
|
||||||
self.callback = callback
|
|
||||||
end
|
|
||||||
|
|
||||||
-- logic
|
|
||||||
|
|
||||||
function Queue:add(item)
|
|
||||||
table.insert(self.queue, item)
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:start()
|
|
||||||
local compiled = function() self:finished() end
|
|
||||||
for k,event in pairs(self.queue) do
|
|
||||||
print("Compiling " .. tostring(event:getId()))
|
|
||||||
local snip = compiled
|
|
||||||
compiled = function()
|
|
||||||
local realCallback = event:getCallback()
|
|
||||||
event:setCallback(function()
|
|
||||||
print("Event compiled callback called")
|
|
||||||
realCallback()
|
|
||||||
-- next queue item
|
|
||||||
snip()
|
|
||||||
end)
|
|
||||||
print("Event started from queue chain")
|
|
||||||
event:start()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Start the queue chain
|
|
||||||
print("Start compiled chain")
|
|
||||||
compiled()
|
|
||||||
end
|
|
||||||
|
|
||||||
function Queue:finished()
|
|
||||||
print("Queue:finished")
|
|
||||||
local done = function()
|
|
||||||
local callback = self:getCallback()
|
|
||||||
if callback then callback() end
|
|
||||||
end
|
|
||||||
done()
|
|
||||||
end
|
|
Loading…
Reference in new issue