R-Type  2
Doom but in better
Loading...
Searching...
No Matches
Queue.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4#include <queue>
5#include <mutex>
6#include <condition_variable>
7#include <optional>
8#include "GameMessage.hpp"
9
17class Queue {
18public:
23 void push(const GameMessage& item);
24
29 std::optional<GameMessage> pop();
30
37
42 bool isEmpty();
43
44private:
45 std::queue<GameMessage> _queue;
46 std::mutex _mutex;
47 std::condition_variable _condition;
48};
A thread-safe queue for storing and managing GameMessage objects.
Definition Queue.hpp:17
void push(const GameMessage &item)
Push a GameMessage item into the queue.
Definition Queue.cpp:3
GameMessage waitAndPop()
Wait and pop a GameMessage item from the queue. This blocks until an item is available.
Definition Queue.cpp:17
bool isEmpty()
Check if the queue is empty.
Definition Queue.cpp:25
std::optional< GameMessage > pop()
Try to pop a GameMessage item from the queue.
Definition Queue.cpp:9
A structure representing a game message.