From 0f0bf1c649388c07ae6e8dd784d7402f68691b96 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 8 Jun 2021 13:39:11 +0200 Subject: Remove images that are not visible from the loading queue, prepare for inline images --- include/MessageQueue.hpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'include/MessageQueue.hpp') diff --git a/include/MessageQueue.hpp b/include/MessageQueue.hpp index 7c34d51..3f38ca2 100644 --- a/include/MessageQueue.hpp +++ b/include/MessageQueue.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace QuickMedia { template @@ -55,6 +56,17 @@ namespace QuickMedia { std::unique_lock lock(mutex); running = true; } + + // Returns true from |callback| to remove the element + void erase_if(std::function callback) { + std::unique_lock lock(mutex); + for(auto it = data_queue.begin(); it != data_queue.end();) { + if(callback(*it)) + it = data_queue.erase(it); + else + ++it; + } + } private: std::deque data_queue; std::mutex mutex; -- cgit v1.2.3