SqpApplication.cpp
51 lines
| 1.5 KiB
| text/x-c
|
CppLexer
r21 | #include "SqpApplication.h" | |||
#include <DataSource/DataSourceController.h> | ||||
#include <QThread> | ||||
Q_LOGGING_CATEGORY(LOG_SqpApplication, "SqpApplication") | ||||
class SqpApplication::SqpApplicationPrivate { | ||||
public: | ||||
Alexandre Leroux
|
r32 | SqpApplicationPrivate() : m_DataSourceController{std::make_unique<DataSourceController>()} | ||
{ | ||||
m_DataSourceController->moveToThread(&m_DataSourceControllerThread); | ||||
} | ||||
r24 | virtual ~SqpApplicationPrivate() | |||
r22 | { | |||
Alexandre Leroux
|
r32 | qCInfo(LOG_SqpApplication()) << tr("SqpApplicationPrivate destruction"); | ||
r22 | m_DataSourceControllerThread.quit(); | |||
m_DataSourceControllerThread.wait(); | ||||
} | ||||
r21 | ||||
std::unique_ptr<DataSourceController> m_DataSourceController; | ||||
QThread m_DataSourceControllerThread; | ||||
}; | ||||
SqpApplication::SqpApplication(int &argc, char **argv) | ||||
Alexandre Leroux
|
r32 | : QApplication{argc, argv}, impl{spimpl::make_unique_impl<SqpApplicationPrivate>()} | ||
r21 | { | |||
Alexandre Leroux
|
r32 | qCInfo(LOG_SqpApplication()) << tr("SqpApplication construction"); | ||
r21 | ||||
connect(&impl->m_DataSourceControllerThread, &QThread::started, | ||||
impl->m_DataSourceController.get(), &DataSourceController::initialize); | ||||
connect(&impl->m_DataSourceControllerThread, &QThread::finished, | ||||
impl->m_DataSourceController.get(), &DataSourceController::finalize); | ||||
impl->m_DataSourceControllerThread.start(); | ||||
} | ||||
SqpApplication::~SqpApplication() | ||||
{ | ||||
} | ||||
void SqpApplication::initialize() | ||||
{ | ||||
} | ||||
Alexandre Leroux
|
r33 | |||
DataSourceController &SqpApplication::dataSourceController() const noexcept | ||||
{ | ||||
return *impl->m_DataSourceController; | ||||
} | ||||