merged AI doc, some new pages
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
/*! \file pidiagnostics.h
|
||||
* \ingroup IO
|
||||
* \~\brief
|
||||
* \~english Connection quality diagnostics
|
||||
* \~russian Диагностика качества связи
|
||||
*/
|
||||
//! \~\file pidiagnostics.h
|
||||
//! \~\ingroup IO-Utils
|
||||
//! \~\brief
|
||||
//! \~english Connection quality diagnostics
|
||||
//! \~russian Диагностика качества связи
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Speed and quality in/out diagnostics
|
||||
@@ -30,6 +29,13 @@
|
||||
#include "pitimer.h"
|
||||
|
||||
|
||||
//! \~\ingroup IO-Utils
|
||||
//! \brief
|
||||
//! \~english Connection diagnostics for packet frequency, throughput and receive quality
|
||||
//! \~russian Диагностика соединения для частоты пакетов, пропускной способности и качества приема
|
||||
//! \details
|
||||
//! \~english This class provides connection quality diagnostics based on packet reception statistics
|
||||
//! \~russian Класс обеспечивает диагностику качества связи на основе статистики приема пакетов
|
||||
class PIP_EXPORT PIDiagnostics: public PITimer {
|
||||
PIOBJECT_SUBCLASS(PIDiagnostics, PITimer);
|
||||
friend class PIConnection;
|
||||
@@ -37,95 +43,162 @@ class PIP_EXPORT PIDiagnostics: public PITimer {
|
||||
public:
|
||||
NO_COPY_CLASS(PIDiagnostics);
|
||||
|
||||
//! Constructs an empty diagnostics and if "start_" start it
|
||||
//! \~english Constructs diagnostics and optionally starts periodic evaluation immediately.
|
||||
//! \~russian Создает диагностику и при необходимости сразу запускает периодическую оценку.
|
||||
PIDiagnostics(bool start_ = true);
|
||||
|
||||
//! \~english Stops diagnostics updates.
|
||||
//! \~russian Останавливает обновление диагностики.
|
||||
virtual ~PIDiagnostics();
|
||||
|
||||
//! Connection quality
|
||||
//! \~english Receive quality estimated from recent packet history.
|
||||
//! \~russian Качество приема, оцениваемое по недавней истории пакетов.
|
||||
enum Quality {
|
||||
Unknown /** Unknown, no one packet received yet */ = 1,
|
||||
Failure /** No connection, no one correct packet received for last period */ = 2,
|
||||
Bad /** Bad connection, correct packets received <= 20% */ = 3,
|
||||
Average /** Average connection, correct packets received > 20% and <= 80% */ = 4,
|
||||
Good /** Good connection, correct packets received > 80% */ = 5
|
||||
Unknown = 1 /** \~english No receive history yet \~russian История приема еще отсутствует */,
|
||||
Failure = 2 /** \~english No correct packets in the recent window \~russian В недавнем окне нет корректных пакетов */,
|
||||
Bad = 3 /** \~english Correct packets are at most 20 percent \~russian Корректных пакетов не более 20 процентов */,
|
||||
Average =
|
||||
4 /** \~english Correct packets are above 20 and up to 80 percent \~russian Корректных пакетов больше 20 и до 80 процентов */
|
||||
,
|
||||
Good = 5 /** \~english Correct packets are above 80 percent \~russian Корректных пакетов больше 80 процентов */
|
||||
};
|
||||
|
||||
//! Information about current diagnostics state
|
||||
//! \~english Snapshot of current counters and derived statistics.
|
||||
//! \~russian Снимок текущих счетчиков и производных статистик.
|
||||
struct PIP_EXPORT State {
|
||||
//! \~english Constructs zeroed state with formatted speed strings.
|
||||
//! \~russian Создает обнуленное состояние с отформатированными строками скоростей.
|
||||
State();
|
||||
|
||||
//! \~english Latest receive frequency for the current timer interval.
|
||||
//! \~russian Последняя частота приема для текущего интервала таймера.
|
||||
float immediate_freq = 0.f;
|
||||
|
||||
//! \~english Averaged receive frequency over the disconnect window.
|
||||
//! \~russian Усредненная частота приема по окну отключения.
|
||||
float integral_freq = 0.f;
|
||||
|
||||
//! \~english Number of correct received packets per second.
|
||||
//! \~russian Число корректно принятых пакетов в секунду.
|
||||
ullong received_packets_per_sec = 0ull;
|
||||
|
||||
//! \~english Total number of correct received packets.
|
||||
//! \~russian Общее число корректно принятых пакетов.
|
||||
ullong received_packets = 0ull;
|
||||
|
||||
//! \~english Total number of incorrect received packets.
|
||||
//! \~russian Общее число некорректно принятых пакетов.
|
||||
ullong received_packets_wrong = 0ull;
|
||||
|
||||
//! \~english Number of received bytes per second.
|
||||
//! \~russian Число принятых байтов в секунду.
|
||||
ullong received_bytes_per_sec = 0ull;
|
||||
|
||||
//! \~english Total number of correctly received bytes.
|
||||
//! \~russian Общее число корректно принятых байтов.
|
||||
ullong received_bytes = 0ull;
|
||||
|
||||
//! \~english Total number of bytes from incorrect packets.
|
||||
//! \~russian Общее число байтов из некорректных пакетов.
|
||||
ullong received_bytes_wrong = 0ull;
|
||||
|
||||
//! \~english Number of sent packets per second.
|
||||
//! \~russian Число отправленных пакетов в секунду.
|
||||
ullong sended_packets_per_sec = 0ull;
|
||||
|
||||
//! \~english Total number of sent packets.
|
||||
//! \~russian Общее число отправленных пакетов.
|
||||
ullong sended_packets = 0ull;
|
||||
|
||||
//! \~english Number of sent bytes per second.
|
||||
//! \~russian Число отправленных байтов в секунду.
|
||||
ullong sended_bytes_per_sec = 0ull;
|
||||
|
||||
//! \~english Total number of sent bytes.
|
||||
//! \~russian Общее число отправленных байтов.
|
||||
ullong sended_bytes = 0ull;
|
||||
|
||||
//! \~english Human-readable receive speed string.
|
||||
//! \~russian Строка скорости приема в человекочитаемом виде.
|
||||
PIString receive_speed;
|
||||
|
||||
//! \~english Human-readable send speed string.
|
||||
//! \~russian Строка скорости отправки в человекочитаемом виде.
|
||||
PIString send_speed;
|
||||
|
||||
//! \~english Current receive quality category.
|
||||
//! \~russian Текущая категория качества приема.
|
||||
PIDiagnostics::Quality quality = PIDiagnostics::Unknown;
|
||||
};
|
||||
|
||||
//! Returns current state
|
||||
//! \~english Returns a thread-safe snapshot of current diagnostics state.
|
||||
//! \~russian Возвращает потокобезопасный снимок текущего состояния диагностики.
|
||||
PIDiagnostics::State state() const;
|
||||
|
||||
//! Returns period of full disconnect in seconds and period of averaging frequency
|
||||
//! \~english Returns the disconnect timeout and averaging window.
|
||||
//! \~russian Возвращает таймаут отключения и окно усреднения.
|
||||
PISystemTime disconnectTimeout() const { return disconn_; }
|
||||
|
||||
//! Returns period of full disconnect in seconds and period of averaging frequency
|
||||
//! \~english Sets the disconnect timeout in seconds.
|
||||
//! \~russian Устанавливает таймаут отключения в секундах.
|
||||
void setDisconnectTimeout(float s) DEPRECATEDM("use setDisconnectTimeout(PISystemTime)") {
|
||||
setDisconnectTimeout(PISystemTime::fromSeconds(s));
|
||||
}
|
||||
|
||||
//! Returns period of full disconnect and period of averaging frequency
|
||||
//! \~english Sets the disconnect timeout and averaging window.
|
||||
//! \~russian Устанавливает таймаут отключения и окно усреднения.
|
||||
void setDisconnectTimeout(PISystemTime tm) { setProperty("disconnectTimeout", tm); }
|
||||
|
||||
//! Returns connection quality
|
||||
//! \~english Returns current receive quality.
|
||||
//! \~russian Возвращает текущее качество приема.
|
||||
PIDiagnostics::Quality quality() const;
|
||||
|
||||
//! Returns receive speed in format "n {B|kB|MB|GB|TB}/s"
|
||||
//! \~english Returns formatted receive throughput string.
|
||||
//! \~russian Возвращает строку отформатированной скорости приема.
|
||||
PIString receiveSpeed() const;
|
||||
|
||||
//! Returns send speed in format "n {B|kB|MB|GB|TB}/s"
|
||||
//! \~english Returns formatted send throughput string.
|
||||
//! \~russian Возвращает строку отформатированной скорости отправки.
|
||||
PIString sendSpeed() const;
|
||||
|
||||
|
||||
EVENT_HANDLER0(void, start);
|
||||
EVENT_HANDLER1(void, start, PISystemTime, interval);
|
||||
EVENT_HANDLER0(void, reset);
|
||||
|
||||
EVENT_HANDLER1(void, received, int, size) { received(size, true); }
|
||||
EVENT_HANDLER2(void, received, int, size, bool, correct);
|
||||
EVENT_HANDLER1(void, sended, int, size);
|
||||
|
||||
EVENT2(qualityChanged, PIDiagnostics::Quality, new_quality, PIDiagnostics::Quality, old_quality);
|
||||
|
||||
//! \handlers
|
||||
//! \{
|
||||
|
||||
//! \fn void start(double msecs = 1000.)
|
||||
//! \brief Start diagnostics evaluations with period "msecs" milliseconds
|
||||
//! \fn void start()
|
||||
//! \~english Starts periodic diagnostics evaluation with the default interval.
|
||||
//! \~russian Запускает периодическую оценку диагностики с интервалом по умолчанию.
|
||||
EVENT_HANDLER0(void, start);
|
||||
|
||||
//! \fn void start(PISystemTime interval)
|
||||
//! \~english Starts periodic diagnostics evaluation with interval "interval".
|
||||
//! \~russian Запускает периодическую оценку диагностики с интервалом "interval".
|
||||
EVENT_HANDLER1(void, start, PISystemTime, interval);
|
||||
|
||||
//! \fn void reset()
|
||||
//! \brief Reset diagnostics counters
|
||||
//! \~english Resets counters, rolling history and derived statistics.
|
||||
//! \~russian Сбрасывает счетчики, скользящую историю и производные статистики.
|
||||
EVENT_HANDLER0(void, reset);
|
||||
|
||||
//! \fn void received(int size, bool correct = true)
|
||||
//! \brief Notify diagnostics about "correct" corected received packet
|
||||
//! \~english Notifies diagnostics about one received packet of size "size".
|
||||
//! \~russian Уведомляет диагностику об одном принятом пакете размером "size".
|
||||
EVENT_HANDLER1(void, received, int, size) { received(size, true); }
|
||||
EVENT_HANDLER2(void, received, int, size, bool, correct);
|
||||
|
||||
//! \fn void sended(int size)
|
||||
//! \brief Notify diagnostics about sended packet
|
||||
//! \~english Notifies diagnostics about one sent packet of size "size".
|
||||
//! \~russian Уведомляет диагностику об одном отправленном пакете размером "size".
|
||||
EVENT_HANDLER1(void, sended, int, size);
|
||||
|
||||
//! \}
|
||||
//! \events
|
||||
//! \{
|
||||
|
||||
//! \fn void qualityChanged(PIDiagnostics::Quality new_quality, PIDiagnostics::Quality old_quality)
|
||||
//! \brief Raise on change receive quality from "old_quality" to "new_quality"
|
||||
//! \~english Emitted when receive quality changes from "old_quality" to "new_quality".
|
||||
//! \~russian Генерируется при изменении качества приема с "old_quality" на "new_quality".
|
||||
EVENT2(qualityChanged, PIDiagnostics::Quality, new_quality, PIDiagnostics::Quality, old_quality);
|
||||
|
||||
//! \}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user