-- Socket消息队列
local NetworkQueue = {}

local queue = require("Base/Utils.lua"):CreateQueue()
local map = {}

function NetworkQueue:PushUidOnSend(uid)
    queue:Enqueue(uid)
end

function NetworkQueue:PushMsgOnRecv(uid, data)
    map[uid] = data
end

function NetworkQueue:TryPopMsg()
    local uid = queue:Peek()

    if (uid == nil) then
        return nil
    end

    local ret = map[uid]
    if ret == nil then
        print("NetworkQueue uid is not inside the queue. Msg may not received yet.")
        return nil 
    end

    queue:Dequeue()
    map[uid] = nil
    return ret 
end

function NetworkQueue:Reset()
    queue = require("Base/Utils.lua"):CreateQueue()
    map = {}
end

return NetworkQueue