Files
qt6-migration-pipeline/Lts/Common/LtsWebSocket/data_manager_base_dl.h
T

49 lines
1007 B
C++
Executable File

#pragma once
#include <memory>
#include <NGLLogger/INGLLogger.h>
#include "reply_message.h"
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;
};
}