Warning, file /utilities/telly-skout/src/networkfetcher.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // SPDX-FileCopyrightText: 2022 Plata Hill <plata.hill@kdemail.net>
0002 // SPDX-License-Identifier: LGPL-2.1-or-later
0003 
0004 #pragma once
0005 
0006 #include "fetcherimpl.h"
0007 
0008 #include "networkdataprovider.h"
0009 
0010 class NetworkFetcher : public FetcherImpl
0011 {
0012     Q_OBJECT
0013 public:
0014     NetworkFetcher(QNetworkAccessManager *nam = nullptr);
0015     virtual ~NetworkFetcher() = default;
0016 
0017     void fetchGroups(std::function<void(const QVector<GroupData> &)> callback = nullptr,
0018                      std::function<void(const Error &)> errorCallback = nullptr) override = 0;
0019     void fetchGroup(const QString &url,
0020                     const GroupId &groupId,
0021                     std::function<void(const QList<ChannelData> &)> callback = nullptr,
0022                     std::function<void(const Error &)> errorCallback = nullptr) override = 0;
0023     void fetchProgram(const ChannelId &channelId,
0024                       std::function<void(const QVector<ProgramData> &)> callback = nullptr,
0025                       std::function<void(const Error &)> errorCallback = nullptr) override = 0;
0026     void fetchProgramDescription(const ChannelId &channelId,
0027                                  const ProgramId &programId,
0028                                  const QString &url,
0029                                  std::function<void(const QString &)> callback = nullptr,
0030                                  std::function<void(const Error &)> errorCallback = nullptr) override = 0;
0031     QString image(const QString &url, std::function<void()> callback = nullptr, std::function<void(const Error &)> errorCallback = nullptr) override;
0032     QString imagePath(const QString &url) override;
0033 
0034 protected:
0035     const NetworkDataProvider m_provider;
0036 
0037 private:
0038     void downloadImage(const QString &url, std::function<void()> callback, std::function<void(const Error &)> errorCallback);
0039 };