Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Common/LtsWebSocket/data_manager_base_dl.h
T

42 lines
1.1 KiB
C++

#pragma once
#include "reply_message.h"
#include <NGLLogger/INGLLogger.h>
#include <memory>
namespace LtsWebSocket
{
template <typename T> class DataManagerBaseDl
{
protected:
explicit DataManagerBaseDl(const std::shared_ptr<T>& dbInterface, NGL::INGLLogger& logger)
: m_logger(logger), m_dbInterface(dbInterface)
{
}
template <typename DbType, typename MessageType> ReplyMessage* toBaseDataMessageFromDb(const QString& uuid) const
{
QVector<DbType> dataVec;
if (!m_dbInterface->select(dataVec))
{
const QString errorMessage = QStringLiteral("Error reading data from database!");
ERROR_LOG(m_logger) << errorMessage;
ErrorMessage::ErrorData errData;
errData.errorMessage = errorMessage;
errData.uuid = uuid;
return new ErrorMessage(errData);
}
return new MessageType(m_dbInterface->template toJson<DbType>(dataVec), uuid);
}
protected:
NGL::INGLLogger &m_logger;
std::shared_ptr<T> m_dbInterface;
};
} // namespace LtsWebSocket