Files
qt5-legatus-legacy/Lts/Services/CodificationManagement/initialization.cpp
T

74 lines
2.0 KiB
C++
Executable File

/**
* Initialization for CodificationManagement
* $Id$
* $HeadURL$
* $Author$
* Created by hjl, SLSE, 2016-11-14
*/
#include "initialization.h"
#include "settings.h"
#include "handler_codification_data.h"
#include <CodificationManagement/cod_db.h>
#include <DDS/DDSConnector/dds_connector.h>
#include <Core/pacemaker.h>
using namespace CodificationManagement;
Initialization::Initialization()
: m_logger(getLogger("Initialization"))
{
} // end of ctor()
//-----------------------------------------------------------------------------
Initialization::~Initialization()
{
m_handlerCodificationData = nullptr;
m_ddsHandler = nullptr;
m_dbHandler = nullptr;
} // end of dtor()
//-----------------------------------------------------------------------------
bool Initialization::initialize(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector,
const QSqlDatabase &sqlDb)
{
INFO_LOG(m_logger) << "Start CodificationManagement Initialization.";
// initialize DDS
m_ddsHandler = std::make_shared<DdsHandler>(ddsConnector);
if (!m_ddsHandler->init())
{
ERROR_LOG(m_logger) << "Initialisation DdsHandler failed.";
return false;
}
// initialize database
m_dbHandler = std::make_shared<DbHandler>();
if (!m_dbHandler->init(ddsConnector->getPartitionId(), sqlDb))
{
ERROR_LOG(m_logger) << "Initialisation DbHandler failed.";
return false;
}
// create HandlerCodificationData
m_handlerCodificationData.reset(new HandlerCodificationData(m_ddsHandler, m_dbHandler));
INFO_LOG(m_logger) << "CodificationManagement Initialization initialized. pacemakerState: Running ";
return true;
} // end of init()
//-----------------------------------------------------------------------------
bool Initialization::loadFromDatabase()
{
if (!m_ddsHandler || !m_dbHandler || !m_handlerCodificationData)
return false;
if (!m_handlerCodificationData->init())
{
ERROR_LOG(m_logger) << "Initialisation HandlerCodificationData failed.";
return false;
}
return true;
}