##// END OF EJS Templates
Initialisation de l'application multithread avec le spimpl....
Initialisation de l'application multithread avec le spimpl. Ajout du DataSourceController dans un thread dédié.

File last commit:

r21:45edf6844d32
r21:45edf6844d32
Show More
DataSourceController.cpp
47 lines | 1.4 KiB | text/x-c | CppLexer
/ core / src / DataSource / DataSourceController.cpp
#include "DataSource/DataSourceController.h"
#include <QMutex>
#include <QThread>
Q_LOGGING_CATEGORY(LOG_DataSourceController, "dataSourceController")
class DataSourceController::DataSourceControllerPrivate {
public:
DataSourceControllerPrivate() {}
QMutex m_WorkingMutex;
};
DataSourceController::DataSourceController(QObject *parent)
: impl{spimpl::make_unique_impl<DataSourceControllerPrivate>()}
{
qCInfo(LOG_DataSourceController()) << tr("Construction du DataSourceController");
}
DataSourceController::~DataSourceController()
{
// delete impl;
this->waitForFinish();
}
void DataSourceController::initialize()
{
qCInfo(LOG_DataSourceController()) << tr("initialize du DataSourceController");
impl->m_WorkingMutex.lock();
qCInfo(LOG_DataSourceController()) << tr("initialize du DataSourceController END");
}
void DataSourceController::finalize()
{
qCInfo(LOG_DataSourceController()) << tr("finalize du DataSourceController");
impl->m_WorkingMutex.unlock();
qCInfo(LOG_DataSourceController()) << tr("finalize du DataSourceController END");
}
void DataSourceController::waitForFinish()
{
qCInfo(LOG_DataSourceController()) << tr("waitForFinish du DataSourceController");
QMutexLocker locker(&impl->m_WorkingMutex);
qCInfo(LOG_DataSourceController()) << tr("waitForFinish du DataSourceController END");
}