/*! * \copyright Copyright (c) 2017-2018 Governikus GmbH & Co. KG, Germany */ #include "FileProvider.h" #include "SingletonHelper.h" #include #include using namespace governikus; Q_DECLARE_LOGGING_CATEGORY(fileprovider) defineSingleton(FileProvider) FileProvider::FileProvider() : mUpdatableFiles() , mGetFileMutex() { } FileProvider& FileProvider::getInstance() { return *Instance; } const QSharedPointer FileProvider::getFile(const QString& pSection, const QString& pName, const QString& pDefaultPath) { const QMutexLocker locker(&mGetFileMutex); const QString key = pSection + QLatin1Char('/') + pName; const QSharedPointer existingF = mUpdatableFiles.value(key, QSharedPointer()); if (existingF.isNull()) { const QSharedPointer newF(new UpdatableFile(pSection, pName, pDefaultPath)); if (!pName.isEmpty()) { mUpdatableFiles.insert(key, newF); } return newF; } else { existingF->setDefaultPath(pDefaultPath); return existingF; } }