mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2026-07-20 10:10:56 -04:00
refactor: Restructure project into sources/tests layout and dissolve PluginLLMCore
This commit is contained in:
16
sources/logger/CMakeLists.txt
Normal file
16
sources/logger/CMakeLists.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
add_library(QodeAssistLogger STATIC
|
||||
IRequestPerformanceLogger.hpp
|
||||
Logger.cpp
|
||||
Logger.hpp
|
||||
RequestPerformanceLogger.hpp RequestPerformanceLogger.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(QodeAssistLogger
|
||||
PUBLIC
|
||||
Qt::Core
|
||||
QtCreator::Core
|
||||
)
|
||||
|
||||
target_include_directories(QodeAssistLogger
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
21
sources/logger/IRequestPerformanceLogger.hpp
Normal file
21
sources/logger/IRequestPerformanceLogger.hpp
Normal file
@@ -0,0 +1,21 @@
|
||||
// Copyright (C) 2025 Povilas Kanapickas <povilas@radix.lt>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Additional attribution terms under GPLv3 §7(b) apply — see LICENSE
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace QodeAssist {
|
||||
|
||||
class IRequestPerformanceLogger
|
||||
{
|
||||
public:
|
||||
virtual ~IRequestPerformanceLogger() = default;
|
||||
|
||||
virtual void startTimeMeasurement(const QString &requestId) = 0;
|
||||
virtual void endTimeMeasurement(const QString &requestId) = 0;
|
||||
virtual void logPerformance(const QString &requestId, qint64 elapsedMs) = 0;
|
||||
};
|
||||
|
||||
} // namespace QodeAssist
|
||||
59
sources/logger/Logger.cpp
Normal file
59
sources/logger/Logger.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
// Copyright (C) 2025-2026 Petr Mironychev
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Additional attribution terms under GPLv3 §7(b) apply — see LICENSE
|
||||
|
||||
#include "Logger.hpp"
|
||||
#include <coreplugin/messagemanager.h>
|
||||
|
||||
namespace QodeAssist {
|
||||
|
||||
Logger &Logger::instance()
|
||||
{
|
||||
static Logger instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
Logger::Logger()
|
||||
: m_loggingEnabled(false)
|
||||
{}
|
||||
|
||||
void Logger::setLoggingEnabled(bool enable)
|
||||
{
|
||||
m_loggingEnabled = enable;
|
||||
}
|
||||
|
||||
bool Logger::isLoggingEnabled() const
|
||||
{
|
||||
return m_loggingEnabled;
|
||||
}
|
||||
|
||||
void Logger::log(const QString &message, bool silent)
|
||||
{
|
||||
if (!m_loggingEnabled)
|
||||
return;
|
||||
|
||||
const QString prefixedMessage = QLatin1String("[QodeAssist] ") + message;
|
||||
if (silent) {
|
||||
Core::MessageManager::writeSilently(prefixedMessage);
|
||||
} else {
|
||||
Core::MessageManager::writeFlashing(prefixedMessage);
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::logMessages(const QStringList &messages, bool silent)
|
||||
{
|
||||
if (!m_loggingEnabled)
|
||||
return;
|
||||
|
||||
QStringList prefixedMessages;
|
||||
for (const QString &message : messages) {
|
||||
prefixedMessages << (QLatin1String("[QodeAssist] ") + message);
|
||||
}
|
||||
|
||||
if (silent) {
|
||||
Core::MessageManager::writeSilently(prefixedMessages);
|
||||
} else {
|
||||
Core::MessageManager::writeFlashing(prefixedMessages);
|
||||
}
|
||||
}
|
||||
} // namespace QodeAssist
|
||||
37
sources/logger/Logger.hpp
Normal file
37
sources/logger/Logger.hpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// Copyright (C) 2025-2026 Petr Mironychev
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Additional attribution terms under GPLv3 §7(b) apply — see LICENSE
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
namespace QodeAssist {
|
||||
|
||||
class Logger : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static Logger &instance();
|
||||
|
||||
void setLoggingEnabled(bool enable);
|
||||
bool isLoggingEnabled() const;
|
||||
|
||||
void log(const QString &message, bool silent = true);
|
||||
void logMessages(const QStringList &messages, bool silent = true);
|
||||
|
||||
private:
|
||||
Logger();
|
||||
~Logger() = default;
|
||||
Logger(const Logger &) = delete;
|
||||
Logger &operator=(const Logger &) = delete;
|
||||
|
||||
bool m_loggingEnabled;
|
||||
};
|
||||
|
||||
#define LOG_MESSAGE(msg) QodeAssist::Logger::instance().log(msg)
|
||||
#define LOG_MESSAGES(msgs) QodeAssist::Logger::instance().logMessages(msgs)
|
||||
|
||||
} // namespace QodeAssist
|
||||
40
sources/logger/RequestPerformanceLogger.cpp
Normal file
40
sources/logger/RequestPerformanceLogger.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
// Copyright (C) 2025 Povilas Kanapickas <povilas@radix.lt>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Additional attribution terms under GPLv3 §7(b) apply — see LICENSE
|
||||
|
||||
#include "RequestPerformanceLogger.hpp"
|
||||
#include "Logger.hpp"
|
||||
|
||||
namespace QodeAssist {
|
||||
|
||||
void RequestPerformanceLogger::startTimeMeasurement(const QString &requestId)
|
||||
{
|
||||
m_requestStartTimes[requestId] = QDateTime::currentMSecsSinceEpoch();
|
||||
}
|
||||
|
||||
void RequestPerformanceLogger::endTimeMeasurement(const QString &requestId)
|
||||
{
|
||||
if (!m_requestStartTimes.contains(requestId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
qint64 startTime = m_requestStartTimes[requestId];
|
||||
qint64 endTime = QDateTime::currentMSecsSinceEpoch();
|
||||
qint64 totalTime = endTime - startTime;
|
||||
logPerformance(requestId, totalTime);
|
||||
m_requestStartTimes.remove(requestId);
|
||||
}
|
||||
|
||||
void RequestPerformanceLogger::logPerformance(const QString &requestId, qint64 elapsedMs)
|
||||
{
|
||||
LOG_MESSAGE(
|
||||
QString("Performance: %1 total completion time took %2 ms").arg(requestId).arg(elapsedMs));
|
||||
}
|
||||
|
||||
void RequestPerformanceLogger::logPerformance(
|
||||
const QString &requestId, const QString &operation, qint64 elapsedMs)
|
||||
{
|
||||
LOG_MESSAGE(QString("Performance: %1 %2 took %3 ms").arg(requestId, operation).arg(elapsedMs));
|
||||
}
|
||||
|
||||
} // namespace QodeAssist
|
||||
26
sources/logger/RequestPerformanceLogger.hpp
Normal file
26
sources/logger/RequestPerformanceLogger.hpp
Normal file
@@ -0,0 +1,26 @@
|
||||
// Copyright (C) 2025 Povilas Kanapickas <povilas@radix.lt>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
// Additional attribution terms under GPLv3 §7(b) apply — see LICENSE
|
||||
|
||||
#include "IRequestPerformanceLogger.hpp"
|
||||
#include <QDateTime>
|
||||
#include <QMap>
|
||||
|
||||
namespace QodeAssist {
|
||||
|
||||
class RequestPerformanceLogger : public IRequestPerformanceLogger
|
||||
{
|
||||
public:
|
||||
RequestPerformanceLogger() = default;
|
||||
~RequestPerformanceLogger() override = default;
|
||||
|
||||
void startTimeMeasurement(const QString &requestId) override;
|
||||
void endTimeMeasurement(const QString &requestId) override;
|
||||
void logPerformance(const QString &requestId, qint64 elapsedMs) override;
|
||||
void logPerformance(const QString &requestId, const QString &operation, qint64 elapsedMs);
|
||||
|
||||
private:
|
||||
QMap<QString, qint64> m_requestStartTimes;
|
||||
};
|
||||
|
||||
} // namespace QodeAssist
|
||||
Reference in New Issue
Block a user