18 #ifndef PACKETQUEUE_HPP_ 19 #define PACKETQUEUE_HPP_ 22 #include <condition_variable> 48 PacketQueue(std::optional<std::function<
void(
void)>> callback = {});
52 TEST_VIRTUAL
void close();
53 TEST_VIRTUAL
bool empty();
54 TEST_VIRTUAL std::shared_ptr<const Packet>
pop();
55 TEST_VIRTUAL std::shared_ptr<const Packet>
pop(
56 const std::chrono::nanoseconds &timeout);
57 TEST_VIRTUAL
void push(
58 std::shared_ptr<const Packet> packet,
int priority = 0);
62 std::optional<std::function<void(void)>> callback_;
63 unsigned long long ticket_;
65 std::priority_queue<QueuedPacket> queue_;
67 std::condition_variable cv_;
69 std::shared_ptr<const Packet> get_packet_();
73 #endif // PACKETQUEUE_HPP_ TEST_VIRTUAL void close()
TEST_VIRTUAL std::shared_ptr< const Packet > pop()
PacketQueue(std::optional< std::function< void(void)>> callback={})
TEST_VIRTUAL ~PacketQueue()=default
TEST_VIRTUAL void push(std::shared_ptr< const Packet > packet, int priority=0)
TEST_VIRTUAL bool empty()