Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRollingMax< T > Class Template Reference

#include <kis_latency_tracker.h>

Public Member Functions

 KisRollingMax (int windowSize)
 
max () const
 
void push (T value)
 

Private Types

typedef boost::heap::fibonacci_heap< T > heap_type
 

Private Attributes

QQueue< typename heap_type::handle_type > m_samples
 
heap_type m_values
 
const int m_windowSize
 

Detailed Description

template<typename T>
class KisRollingMax< T >

Definition at line 25 of file kis_latency_tracker.h.

Member Typedef Documentation

◆ heap_type

template<typename T >
typedef boost::heap::fibonacci_heap<T> KisRollingMax< T >::heap_type
private

Definition at line 49 of file kis_latency_tracker.h.

Constructor & Destructor Documentation

◆ KisRollingMax()

template<typename T >
KisRollingMax< T >::KisRollingMax ( int windowSize)
inline

Definition at line 27 of file kis_latency_tracker.h.

27 : m_windowSize(windowSize) {
28 }

Member Function Documentation

◆ max()

template<typename T >
T KisRollingMax< T >::max ( ) const
inline

Definition at line 38 of file kis_latency_tracker.h.

38 {
39 if (m_values.empty()) {
40 throw std::runtime_error("no values to get max of");
41 } else {
42 return m_values.top();
43 }
44 }

References KisRollingMax< T >::m_values.

◆ push()

template<typename T >
void KisRollingMax< T >::push ( T value)
inline

Definition at line 30 of file kis_latency_tracker.h.

30 {
31 while (m_samples.size() > m_windowSize) {
32 m_values.erase(m_samples.dequeue());
33 }
34
35 m_samples.enqueue(m_values.push(value));
36 }
float value(const T *src, size_t ch)
QQueue< typename heap_type::handle_type > m_samples

References KisRollingMax< T >::m_samples, KisRollingMax< T >::m_values, KisRollingMax< T >::m_windowSize, and value().

Member Data Documentation

◆ m_samples

template<typename T >
QQueue<typename heap_type::handle_type> KisRollingMax< T >::m_samples
private

Definition at line 51 of file kis_latency_tracker.h.

◆ m_values

template<typename T >
heap_type KisRollingMax< T >::m_values
private

Definition at line 52 of file kis_latency_tracker.h.

◆ m_windowSize

template<typename T >
const int KisRollingMax< T >::m_windowSize
private

Definition at line 47 of file kis_latency_tracker.h.


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