74 lines
1.5 KiB
C++
Executable File
74 lines
1.5 KiB
C++
Executable File
/**
|
|
* Initialization for Presentation
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
#include "initialization.h"
|
|
|
|
#include "settings.h"
|
|
#include "dds_handler.h"
|
|
#include "handler_presentation.h"
|
|
|
|
#include <DDS/DDSConnector/dds_connector.h>
|
|
#include <ngldb/db_service_handler.h>
|
|
#include <memory>
|
|
|
|
namespace PresentationManagement
|
|
{
|
|
|
|
Initialization::Initialization(QObject *parent)
|
|
: QObject(parent)
|
|
, m_logger(getLogger("Initialization"))
|
|
{
|
|
qsrand(time(nullptr));
|
|
}
|
|
|
|
Initialization::~Initialization()
|
|
{
|
|
m_handlerPresentation = nullptr;
|
|
m_dbHandler = nullptr;
|
|
m_ddsHandler = nullptr;
|
|
}
|
|
|
|
|
|
bool Initialization::initialize(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector, const QSqlDatabase &sqlDb)
|
|
{
|
|
// initialize DDS
|
|
m_ddsHandler = std::make_shared<DdsHandler>(ddsConnector);
|
|
if (!m_ddsHandler->init())
|
|
return false;
|
|
|
|
// initialize database
|
|
m_dbHandler = std::make_shared<DbHandler>();
|
|
if (!m_dbHandler->init(ddsConnector->getPartitionId(), sqlDb))
|
|
return false;
|
|
|
|
// read project specific data from database
|
|
// publish project specific data
|
|
m_handlerPresentation = std::make_shared<HandlerPresentation>(this);
|
|
return true;
|
|
}
|
|
|
|
bool Initialization::loadFromDatabase()
|
|
{
|
|
if (!m_handlerPresentation->init())
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
std::shared_ptr<DatabaseInterface> Initialization::db() const
|
|
{
|
|
return m_dbHandler->db();
|
|
}
|
|
|
|
int Initialization::exerciseId() const
|
|
{
|
|
if (dds())
|
|
return dds()->ddsConnector()->getPartitionId();
|
|
return -1;
|
|
}
|
|
|
|
} // namespace PresentationManagement
|