diff --git a/PacketQueue.h b/PacketQueue.h new file mode 100644 index 0000000..cc8adef --- /dev/null +++ b/PacketQueue.h @@ -0,0 +1,42 @@ +#pragma once + +// Copyright © 2015 Jean-Luc Deltombe (LX3JL). All rights reserved. + +// urfd -- The universal reflector +// Copyright © 2021 Thomas A. Early N7TAE +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#include +#include +#include + +#include "TCPacketDef.h" + +class CPacketQueue +{ +public: + // lock + void Lock() { mutex.lock(); } + void Unlock() { mutex.unlock(); } + + // pass thru + std::unique_ptr pop() { auto pack = std::move(queue.front()); queue.pop(); return std::move(pack); } + bool empty() const { return queue.empty(); } + void push(std::unique_ptr &packet) { queue.push(std::move(packet)); } + +protected: + std::mutex mutex; + std::queue> queue; +}; diff --git a/TCPacketDef.h b/TCPacketDef.h new file mode 120000 index 0000000..6cf01fc --- /dev/null +++ b/TCPacketDef.h @@ -0,0 +1 @@ +../urfd/reflector/TCPacketDef.h \ No newline at end of file diff --git a/UnixDgramSocket.cpp b/UnixDgramSocket.cpp new file mode 120000 index 0000000..ac38194 --- /dev/null +++ b/UnixDgramSocket.cpp @@ -0,0 +1 @@ +../urfd/reflector/UnixDgramSocket.cpp \ No newline at end of file diff --git a/UnixDgramSocket.h b/UnixDgramSocket.h new file mode 120000 index 0000000..e0b3691 --- /dev/null +++ b/UnixDgramSocket.h @@ -0,0 +1 @@ +../urfd/reflector/UnixDgramSocket.h \ No newline at end of file