From 991c855c11837822530db3cbd17642d532a625e9 Mon Sep 17 00:00:00 2001 From: Mikayla Fischler Date: Thu, 21 Apr 2022 12:44:46 -0400 Subject: [PATCH] message queue --- supervisor/mqueue.lua | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 supervisor/mqueue.lua diff --git a/supervisor/mqueue.lua b/supervisor/mqueue.lua new file mode 100644 index 0000000..1aa5869 --- /dev/null +++ b/supervisor/mqueue.lua @@ -0,0 +1,48 @@ +-- +-- Message Queue +-- + +TYPE = { + COMMAND = 0, + PACKET = 1 +} + +function new() + local queue = {} + + local length = function () + return #queue + end + + local empty = function () + return #queue == 0 + end + + local _push = function (qtype, message) + table.insert(queue, { qtype = qtype, message = message }) + end + + local push_packet = function (message) + push(TYPE.PACKET, message) + end + + local push_command = function (message) + push(TYPE.COMMAND, message) + end + + local pop = function () + if #queue > 0 then + return table.remove(queue) + else + return nil + end + end + + return { + length = length, + empty = empty, + push_packet = push_packet, + push_command = push_command, + pop = pop + } +end