added debug information on F10

This commit is contained in:
fourtf
2018-04-06 16:37:30 +02:00
parent 68227fa576
commit 86c844c791
19 changed files with 192 additions and 11 deletions
+10
View File
@@ -0,0 +1,10 @@
#include "debugcount.hpp"
namespace chatterino {
namespace util {
QMap<QString, int64_t> DebugCount::counts;
std::mutex DebugCount::mut;
} // namespace util
} // namespace chatterino
+59
View File
@@ -0,0 +1,59 @@
#pragma once
#include <mutex>
#include <typeinfo>
#include <QMap>
#include <QString>
namespace chatterino {
namespace util {
class DebugCount
{
static QMap<QString, int64_t> counts;
static std::mutex mut;
public:
static void increase(const QString &name)
{
std::lock_guard<std::mutex> lock(mut);
auto it = counts.find(name);
if (it == counts.end()) {
counts.insert(name, 1);
} else {
reinterpret_cast<int64_t &>(it.value())++;
}
}
static void decrease(const QString &name)
{
std::lock_guard<std::mutex> lock(mut);
auto it = counts.find(name);
if (it == counts.end()) {
counts.insert(name, -1);
} else {
reinterpret_cast<int64_t &>(it.value())--;
}
}
static QString getDebugText()
{
std::lock_guard<std::mutex> lock(mut);
QString text;
for (auto it = counts.begin(); it != counts.end(); it++) {
text += it.key() + ": " + QString::number(it.value()) + "\n";
}
return text;
}
QString toString()
{
}
};
} // namespace util
} // namespace chatterino