4#ifndef _StroikaSample_OperationalStatistics_h_
5#define _StroikaSample_OperationalStatistics_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
16namespace Stroika::Samples::HTMLUI {
18 using namespace Stroika;
41 nonvirtual
void RecordActiveRunningTasksCount (
size_t length);
44 nonvirtual
void RecordOpenConnectionCount (
size_t length);
47 nonvirtual
void RecordProcessingConnectionCount (
size_t length);
55 nonvirtual Statistics GetStatistics ()
const;
58 mutable mutex fMutex_;
64 eAPIActiveRunningTasks,
65 eAPIOpenConnectionCount,
66 eAPIProcessingConnectionCount,
73 Rec_ fRollingHistory_[1024];
74 size_t fNextHistory_{0};
76 void Add_ (
const Rec_& r);
82 class OperationalStatisticsMgr::ProcessAPICmd {
88 static void NoteError ();
96 struct OperationalStatisticsMgr::Statistics {
98 unsigned int fCallsCompleted{};
99 optional<Duration> fMeanDuration;
100 optional<Duration> fMedianDuration;
101 optional<Duration> fMaxDuration;
102 optional<float> fMedianRunningAPITasks;
103 unsigned int fErrors{};
116#include "OperationalStatistics.inl"
time_point< RealtimeClock, DurationSeconds > TimePointSeconds
TimePointSeconds is a simpler approach to chrono::time_point, which doesn't require using templates e...
chrono::duration< double > DurationSeconds
chrono::duration<double> - a time span (length of time) measured in seconds, but high precision.
Duration is a chrono::duration<double> (=.