From 20d934b9b94eacb1a012fbac08636189e4e145a4 2017-07-10 08:09:23 From: Alexandre Leroux Date: 2017-07-10 08:09:23 Subject: [PATCH] Inits Amda provider --- diff --git a/plugins/amda/include/AmdaProvider.h b/plugins/amda/include/AmdaProvider.h new file mode 100644 index 0000000..c346dae --- /dev/null +++ b/plugins/amda/include/AmdaProvider.h @@ -0,0 +1,31 @@ +#ifndef SCIQLOP_AMDAPROVIDER_H +#define SCIQLOP_AMDAPROVIDER_H + +#include "AmdaGlobal.h" + +#include + +#include + +#include + + +Q_DECLARE_LOGGING_CATEGORY(LOG_AmdaProvider) + +/** + * @brief The AmdaProvider class is an example of how a data provider can generate data + */ +class SCIQLOP_AMDA_EXPORT AmdaProvider : public IDataProvider { +public: + explicit AmdaProvider(); + + void requestDataLoading(QUuid token, const QVector &dateTimeList) override; + +private: + void retrieveData(QUuid token, const DataProviderParameters ¶meters) const; + + class AmdaProviderPrivate; + spimpl::unique_impl_ptr impl; +}; + +#endif // SCIQLOP_AMDAPROVIDER_H diff --git a/plugins/amda/src/AmdaPlugin.cpp b/plugins/amda/src/AmdaPlugin.cpp index 555755d..f208168 100644 --- a/plugins/amda/src/AmdaPlugin.cpp +++ b/plugins/amda/src/AmdaPlugin.cpp @@ -32,6 +32,9 @@ void AmdaPlugin::initialize() else { qCCritical(LOG_AmdaPlugin()) << tr("No data source item could be generated for AMDA"); } + + // Sets data provider + dataSourceController.setDataProvider(dataSourceUid, std::make_unique()); } else { qCWarning(LOG_AmdaPlugin()) << tr("Can't access to SciQlop application"); diff --git a/plugins/amda/src/AmdaProvider.cpp b/plugins/amda/src/AmdaProvider.cpp new file mode 100644 index 0000000..ea54307 --- /dev/null +++ b/plugins/amda/src/AmdaProvider.cpp @@ -0,0 +1,23 @@ +#include "AmdaProvider.h" + +Q_LOGGING_CATEGORY(LOG_AmdaProvider, "AmdaProvider") + +struct AmdaProvider::AmdaProviderPrivate { +}; + +AmdaProvider::AmdaProvider() : impl{spimpl::make_unique_impl()} +{ +} + +void AmdaProvider::requestDataLoading(QUuid token, const QVector &dateTimeList) +{ + // NOTE: Try to use multithread if possible + for (const auto &dateTime : dateTimeList) { + retrieveData(token, DataProviderParameters{dateTime}); + } +} + +void AmdaProvider::retrieveData(QUuid token, const DataProviderParameters ¶meters) const +{ + /// @todo ALX +}