9#ifndef CAMCOM_COMMON_FRAMEQUEUE_HPP
10#define CAMCOM_COMMON_FRAMEQUEUE_HPP
21#include "ifw/fnd/defs/base.hpp"
25 template <
typename QueueType>
36 Queue(
unsigned int max_size, std::string
id) {
44 const std::lock_guard<std::mutex> lock(
m_mutex);
51 std::queue<QueueType> new_queue = std::queue<QueueType>();
52 const std::lock_guard<std::mutex> lock(
m_mutex);
56 virtual void Push(QueueType value) {
59 const std::lock_guard<std::mutex> lock(
m_mutex);
61 if (size == this->m_max_size) {
66 "Queue full; first item lost; has occurred {} "
69 std::chrono::duration_cast<std::chrono::microseconds>(
82 virtual bool Pop(QueueType &value) {
84 const std::lock_guard<std::mutex> lock(
m_mutex);
95 const std::lock_guard<std::mutex> lock(
m_mutex);
101 std::chrono::time_point<std::chrono::system_clock>
virtual bool Pop(QueueType &value)
Definition queue.hpp:82
std::queue< QueueType > m_queue
Definition queue.hpp:100
virtual void Clear()
Definition queue.hpp:49
std::string m_queue_id
Definition queue.hpp:28
virtual void Pop()
Definition queue.hpp:93
virtual size_t GetSize()
Definition queue.hpp:42
virtual void Push(QueueType value)
Definition queue.hpp:56
std::mutex m_mutex
Definition queue.hpp:104
Queue(unsigned int max_size, std::string id)
Definition queue.hpp:36
Queue()
Definition queue.hpp:31
unsigned int m_max_size
Definition queue.hpp:29
std::chrono::duration< double_t > m_log_full_push_timer
Definition queue.hpp:105
uint32_t m_queue_full_push_count
Definition queue.hpp:103
std::chrono::time_point< std::chrono::system_clock > m_last_queue_full_push_err
Definition queue.hpp:102
Definition adapterBase.cpp:18
std::chrono::time_point< std::chrono::system_clock > TimeNow()
Definition tools.cpp:19