30 lines
519 B
Lua
30 lines
519 B
Lua
|
|
require("public.class")
|
||
|
|
require("public.CLLQueue")
|
||
|
|
|
||
|
|
---@class CLLPool
|
||
|
|
CLLPool = class("CLLPool")
|
||
|
|
--local queue;
|
||
|
|
--local cloneClass;
|
||
|
|
|
||
|
|
function CLLPool:ctor(classObj)
|
||
|
|
self.queue = CLLQueue.new(100)
|
||
|
|
self.cloneClass = classObj
|
||
|
|
end
|
||
|
|
|
||
|
|
function CLLPool:createObj()
|
||
|
|
return self.cloneClass.new()
|
||
|
|
end
|
||
|
|
|
||
|
|
function CLLPool:borrow()
|
||
|
|
if self.queue:isEmpty() then
|
||
|
|
return self:createObj()
|
||
|
|
end
|
||
|
|
return self.queue:deQueue();
|
||
|
|
end
|
||
|
|
|
||
|
|
function CLLPool:retObj(obj)
|
||
|
|
self.queue:enQueue(obj);
|
||
|
|
end
|
||
|
|
|
||
|
|
return CLLPool;
|