HomeServer/Server/Common/Queue.lua

59 lines
1.0 KiB
Lua
Raw Permalink Normal View History

2024-11-20 15:41:09 +08:00
local oo = require "Class"
local Queue = oo.class()
--初始化
function Queue:ctor()
self.list = {}
self.map = {}
self.Count = 0
end
--入队
function Queue:EnQueue( key , value )
if not key or not value then
return false
end
if not self.map[ key ] then
table.insert(self.list, { key = key , value = value })
self.Count = self.Count + 1
self.map[ key ] = true
return true
end
return false
end
--出队
function Queue:DeQueue()
if self.Count == 0 then
return nil
end
local item = self.list[1]
table.remove(self.list, 1)
self.map[ item.key ] = nil
self.Count = self.Count - 1
return item
end
--查看
function Queue:Peek()
if self.Count == 0 then
return nil
end
return self.list[1]
end
--是否存在
function Queue:IsExist( key )
if self.map[ key ] then
return true
end
return false
end
--获取数量
function Queue:GetCount( key )
return self.Count
end
return Queue