File indexing completed on 2024-05-19 05:57:22

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 <QObject>
0007 
0008 #include "channeldata.h"
0009 #include "groupdata.h"
0010 #include "programdata.h"
0011 #include "types.h"
0012 
0013 #include <QList>
0014 #include <QVector>
0015 
0016 #include <functional>
0017 
0018 class QString;
0019 
0020 class FetcherImpl : public QObject
0021 {
0022     Q_OBJECT
0023 public:
0024     virtual ~FetcherImpl() = default;
0025 
0026     virtual void fetchGroups(std::function<void(const QVector<GroupData> &)> callback = nullptr,
0027                              std::function<void(const Error &)> errorCallback = nullptr) = 0;
0028     virtual void fetchGroup(const QString &url,
0029                             const GroupId &groupId,
0030                             std::function<void(const QList<ChannelData> &)> callback = nullptr,
0031                             std::function<void(const Error &)> errorCallback = nullptr) = 0;
0032     virtual void fetchProgram(const ChannelId &channelId,
0033                               std::function<void(const QVector<ProgramData> &)> callback = nullptr,
0034                               std::function<void(const Error &)> errorCallback = nullptr) = 0;
0035     virtual void fetchProgramDescription(const ChannelId &channelId,
0036                                          const ProgramId &programId,
0037                                          const QString &url,
0038                                          std::function<void(const QString &)> callback = nullptr,
0039                                          std::function<void(const Error &)> errorCallback = nullptr) = 0;
0040     virtual QString image(const QString &url, std::function<void()> callback = nullptr, std::function<void(const Error &)> errorCallback = nullptr) = 0;
0041     virtual QString imagePath(const QString &url) = 0;
0042 };