repoindex/lib/network/userrepository.h

96 lines
2.2 KiB
C
Raw Permalink Normal View History

2015-09-04 14:37:01 +02:00
#ifndef ALPM_USER_REPOSITORY_H
#define ALPM_USER_REPOSITORY_H
#include "./alpm/package.h"
#include "./alpm/repository.h"
2015-09-04 14:37:01 +02:00
#include <QUrl>
#include <QObject>
#include <vector>
#include <memory>
QT_FORWARD_DECLARE_CLASS(QNetworkReply)
namespace RepoIndex {
2015-09-04 14:37:01 +02:00
class UserRepository;
class AurPackageReply : public PackageReply
{
Q_OBJECT
public:
2016-09-28 22:23:09 +02:00
AurPackageReply(const QList<QNetworkReply *> &networkReplies, const QStringList &requestedPackages, UserRepository *userRepo);
2020-03-08 14:12:22 +01:00
private Q_SLOTS:
void processData(QNetworkReply *reply);
private:
UserRepository *m_userRepo;
};
class AurFullPackageReply : public PackageReply
{
Q_OBJECT
public:
2015-09-29 21:52:30 +02:00
AurFullPackageReply(const QList<QNetworkReply *> &networkReplies, const QStringList &requestedPackages, UserRepository *userRepo);
2015-09-04 14:37:01 +02:00
2020-03-08 14:12:22 +01:00
private Q_SLOTS:
void processData(QNetworkReply *reply);
2015-09-04 14:37:01 +02:00
private:
UserRepository *m_userRepo;
};
class AurSuggestionsReply : public SuggestionsReply
{
Q_OBJECT
public:
AurSuggestionsReply(QNetworkReply *networkReply, const QString &term, UserRepository *repo);
2015-09-04 14:37:01 +02:00
2020-03-08 14:12:22 +01:00
private Q_SLOTS:
void processData(QNetworkReply *reply);
2015-09-04 14:37:01 +02:00
};
class UserRepository : public Repository
{
Q_OBJECT
public:
UserRepository(QObject *parent = nullptr);
2015-09-04 14:37:01 +02:00
RepositoryType type() const;
static const QUrl aurRpcUrl();
static void setAurRpcUrl(const QUrl &aurRpcUrl);
PackageDetailAvailability requestsRequired(PackageDetail packageDetail) const;
2015-09-27 19:29:45 +02:00
AurSuggestionsReply *requestSuggestions(const QString &term);
AurPackageReply *requestPackageInfo(const QStringList &packageNames, bool forceUpdate = false);
AurFullPackageReply *requestFullPackageInfo(const QStringList &packageNames, bool forceUpdate = false);
2015-09-04 14:37:01 +02:00
protected:
std::unique_ptr<Package> emptyPackage();
2015-09-04 14:37:01 +02:00
private:
QSet<QString> m_requestedSuggestions;
2015-10-28 19:55:36 +01:00
static QString m_aurBaseUrl;
2015-09-04 14:37:01 +02:00
static QUrl m_aurRpcUrl;
static QUrl m_aurPkgbuildUrl;
static QUrl m_aurSrcInfoUrl;
static QString m_aurSnapshotPath;
2015-09-04 14:37:01 +02:00
};
inline const QUrl UserRepository::aurRpcUrl()
{
return m_aurRpcUrl;
}
inline void UserRepository::setAurRpcUrl(const QUrl &aur4Url)
{
m_aurRpcUrl = aur4Url;
}
} // namespace Alpm
#endif // ALPM_USER_REPOSITORY_H