7#include "application.h"
9#include "dispatchtype.h"
14#include <QtCore/QStringList>
19 : d_ptr(new StatsPrivate)
22 d->engineRequest = request;
35 stat.begin = std::chrono::steady_clock::now();
36 d->actions.push_back(stat);
42 auto it = std::ranges::find_if(d->actions,
43 [action](
const auto &stat) { return stat.action == action; });
45 if (it != d->actions.end()) {
46 it->end = std::chrono::steady_clock::now();
55 if (d->actions.empty()) {
59 QVector<QStringList> table;
60 for (
const auto &stat : d->actions) {
61 const std::chrono::duration<double> duration = stat.end - stat.begin;
62 table.append({stat.action, QString::number(duration.count(),
'f') + QLatin1Char(
's')});
65 ret = Utils::buildTable(table, {QStringLiteral(
"Action"), QStringLiteral(
"Time")});
virtual void profileEnd(const QString &action)
virtual QByteArray report()
virtual void profileStart(const QString &action)
Stats(EngineRequest *request)
The Cutelyst namespace holds all public Cutelyst API.