#ifndef SCIQLOP_IDATAPROVIDER_H #define SCIQLOP_IDATAPROVIDER_H #include #include #include #include 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 retrieveData(const DataProviderParameters ¶meters) const = 0; virtual void requestDataLoading(const QVector &dateTimeList) = 0; signals: void dataProvided(std::shared_ptr dateSerie, const SqpDateTime &dateTime); }; // Required for using shared_ptr in signals/slots SCIQLOP_REGISTER_META_TYPE(IDATAPROVIDER_PTR_REGISTRY, std::shared_ptr) #endif // SCIQLOP_IDATAPROVIDER_H