kNOw SIGN
Public Member Functions | Private Attributes | List of all members
ThreadSafeFramesQueue< T > Class Template Reference

thread-safe queue (FIFO) implementation (with timer) More...

#include <ThreadSafeFramesQueue.hpp>

Inheritance diagram for ThreadSafeFramesQueue< T >:
Inheritance graph
[legend]
Collaboration diagram for ThreadSafeFramesQueue< T >:
Collaboration graph
[legend]

Public Member Functions

 ThreadSafeFramesQueue ()
 
 ThreadSafeFramesQueue (size_t const &_maxDepth)
 
void Push (const T &entry) noexcept
 
bool Pop (T &out) noexcept
 
double GetFPS () noexcept
 
void Clear () noexcept
 

Private Attributes

cv::TickMeter tm
 
std::mutex mtx
 OpenCV timer class. More...
 
size_t const maxDepth
 mutex for safe read/write access of/to queue internals More...
 

Detailed Description

template<typename T>
class ThreadSafeFramesQueue< T >

thread-safe queue (FIFO) implementation (with timer)

See also
https://docs.opencv.org/3.4/d4/db9/samples_2dnn_2object_detection_8cpp-example.html#_a20c/c++ headers system headers project headers

generic thread-safe queue (FIFO) implementation (with timer)

Template Parameters
T,containertype

Constructor & Destructor Documentation

◆ ThreadSafeFramesQueue() [1/2]

template<typename T >
ThreadSafeFramesQueue< T >::ThreadSafeFramesQueue ( )
inline

Default constructor

◆ ThreadSafeFramesQueue() [2/2]

template<typename T >
ThreadSafeFramesQueue< T >::ThreadSafeFramesQueue ( size_t const &  _maxDepth)
inlineexplicit

Constructor taking max depth as argument

Member Function Documentation

◆ Clear()

template<typename T >
void ThreadSafeFramesQueue< T >::Clear ( )
inlinenoexcept

empty the queue

◆ GetFPS()

template<typename T >
double ThreadSafeFramesQueue< T >::GetFPS ( )
inlinenoexcept

get average frames per second

Note
measured as frequency of interval between inserts (i.e. Push-es)

◆ Pop()

template<typename T >
bool ThreadSafeFramesQueue< T >::Pop ( T &  out)
inlinenoexcept

pop element from the front of the queue

if the queue is empty, just exit

get the first element, and remove it

stop the current timer

start the next timer

return true, indicating successful pop

◆ Push()

template<typename T >
void ThreadSafeFramesQueue< T >::Push ( const T &  entry)
inlinenoexcept

push element onto the end of the queue

remove elements that are too old

Member Data Documentation

◆ maxDepth

template<typename T >
size_t const ThreadSafeFramesQueue< T >::maxDepth
private

mutex for safe read/write access of/to queue internals

◆ mtx

template<typename T >
std::mutex ThreadSafeFramesQueue< T >::mtx
private

OpenCV timer class.

◆ tm

template<typename T >
cv::TickMeter ThreadSafeFramesQueue< T >::tm
private

The documentation for this class was generated from the following file: