##// END OF EJS Templates
The cache is now updated only if date requested has been successfully...
The cache is now updated only if date requested has been successfully acquired

File last commit:

r310:9a5cb57f1573
r318:fc4b2122dbde
Show More
IDataProvider.h
42 lines | 1.0 KiB | text/x-c | CLexer
#ifndef SCIQLOP_IDATAPROVIDER_H
#define SCIQLOP_IDATAPROVIDER_H
#include <memory>
#include <QObject>
#include <Common/MetaTypes.h>
#include <Data/SqpDateTime.h>
class DataProviderParameters;
class IDataSeries;
/**
* @brief The IDataProvider interface aims to declare a data provider.
*
* A data provider is an entity that generates data and returns it according to various parameters
* (time interval, product to retrieve the data, etc.)
*
* @sa IDataSeries
*/
class IDataProvider : public QObject {
Q_OBJECT
public:
virtual ~IDataProvider() noexcept = default;
virtual std::shared_ptr<IDataSeries>
retrieveData(const DataProviderParameters &parameters) const = 0;
virtual void requestDataLoading(const QVector<SqpDateTime> &dateTimeList) = 0;
signals:
void dataProvided(std::shared_ptr<IDataSeries> dateSerie, const SqpDateTime &dateTime);
};
// Required for using shared_ptr in signals/slots
SCIQLOP_REGISTER_META_TYPE(IDATAPROVIDER_PTR_REGISTRY, std::shared_ptr<IDataProvider>)
#endif // SCIQLOP_IDATAPROVIDER_H