##// END OF EJS Templates
Enables the registration of a data source in the controller
Enables the registration of a data source in the controller

File last commit:

r36:cc066d743ead
r36:cc066d743ead
Show More
DataSourceController.cpp
55 lines | 1.5 KiB | text/x-c | CppLexer
/ core / src / DataSource / DataSourceController.cpp
#include <DataSource/DataSourceController.h>
#include <QMutex>
#include <QThread>
#include <QDir>
#include <QStandardPaths>
Q_LOGGING_CATEGORY(LOG_DataSourceController, "DataSourceController")
class DataSourceController::DataSourceControllerPrivate {
public:
QMutex m_WorkingMutex;
QHash<QUuid, QString> m_DataSources;
};
DataSourceController::DataSourceController(QObject *parent)
: impl{spimpl::make_unique_impl<DataSourceControllerPrivate>()}
{
qCDebug(LOG_DataSourceController())
<< tr("DataSourceController construction") << QThread::currentThread();
}
DataSourceController::~DataSourceController()
{
qCDebug(LOG_DataSourceController())
<< tr("DataSourceController destruction") << QThread::currentThread();
this->waitForFinish();
}
QUuid DataSourceController::registerDataSource(const QString &dataSourceName) noexcept
{
auto dataSourceUid = QUuid::createUuid();
impl->m_DataSources.insert(dataSourceUid, dataSourceName);
return dataSourceUid;
}
void DataSourceController::initialize()
{
qCDebug(LOG_DataSourceController())
<< tr("DataSourceController init") << QThread::currentThread();
impl->m_WorkingMutex.lock();
qCDebug(LOG_DataSourceController()) << tr("DataSourceController init END");
}
void DataSourceController::finalize()
{
impl->m_WorkingMutex.unlock();
}
void DataSourceController::waitForFinish()
{
QMutexLocker locker{&impl->m_WorkingMutex};
}