Cockatrice
2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Toggle main menu visibility
Loading...
Searching...
No Matches
latency_tracker.h
Go to the documentation of this file.
1
5
6
#ifndef LATENCY_TRACKER_H
7
#define LATENCY_TRACKER_H
8
9
#include <QByteArray>
10
#include <QList>
11
#include <QMetaType>
12
#include <QtGlobal>
13
#include <array>
14
23
class
LatencyTracker
24
{
25
public
:
26
static
constexpr
int
WindowSize
= 64;
27
28
struct
Stats
29
{
30
qint64
lastMs
= 0;
31
qint64
medianMs
= 0;
32
qint64
p95Ms
= 0;
33
qint64
maxMs
= 0;
34
int
sampleCount
= 0;
35
};
36
37
void
addSample
(qint64 ms);
38
Stats
stats
()
const
;
39
41
QList<qint64>
recentSamples
()
const
;
42
43
void
clear
();
44
45
private
:
46
std::array<qint64, WindowSize>
samples
{};
47
int
head
= 0;
48
int
count
= 0;
49
};
50
51
Q_DECLARE_METATYPE(
LatencyTracker::Stats
)
52
53
#endif
LatencyTracker
Fixed-capacity rolling window of network round-trip time samples.
Definition
latency_tracker.h:24
LatencyTracker::stats
Stats stats() const
Definition
latency_tracker.cpp:29
LatencyTracker::count
int count
number of valid samples, capped at WindowSize
Definition
latency_tracker.h:48
LatencyTracker::clear
void clear()
Definition
latency_tracker.cpp:58
LatencyTracker::samples
std::array< qint64, WindowSize > samples
Definition
latency_tracker.h:46
LatencyTracker::addSample
void addSample(qint64 ms)
Definition
latency_tracker.cpp:9
LatencyTracker::head
int head
index where the next sample will be written
Definition
latency_tracker.h:47
LatencyTracker::recentSamples
QList< qint64 > recentSamples() const
Snapshot of the current window in chronological order (oldest first).
Definition
latency_tracker.cpp:18
LatencyTracker::WindowSize
static constexpr int WindowSize
Definition
latency_tracker.h:26
QList
Definition
remote_connection_controller.h:20
LatencyTracker::Stats
Definition
latency_tracker.h:29
LatencyTracker::Stats::medianMs
qint64 medianMs
median over the current window
Definition
latency_tracker.h:31
LatencyTracker::Stats::lastMs
qint64 lastMs
most recently added sample
Definition
latency_tracker.h:30
LatencyTracker::Stats::sampleCount
int sampleCount
number of samples currently in the window
Definition
latency_tracker.h:34
LatencyTracker::Stats::maxMs
qint64 maxMs
maximum over the current window
Definition
latency_tracker.h:33
LatencyTracker::Stats::p95Ms
qint64 p95Ms
95th percentile over the current window
Definition
latency_tracker.h:32
libcockatrice_network
libcockatrice
network
client
abstract
latency_tracker.h
Generated by
1.18.0