repoindex/alpm/resolvebuildorder.h

62 lines
1.4 KiB
C
Raw Normal View History

#ifndef PACKAGEMANAGEMENT_RESOLVEBUILDORDER_H
#define PACKAGEMANAGEMENT_RESOLVEBUILDORDER_H
#include <c++utilities/application/argumentparser.h>
2015-12-25 01:58:19 +01:00
#include <QObject>
#include <QString>
#include <QList>
2015-12-25 01:58:19 +01:00
#include <memory>
namespace RepoIndex {
class Manager;
class TaskInfo;
class Dependency;
2015-12-25 01:58:19 +01:00
class Package;
class PackageFinder;
2015-12-25 01:58:19 +01:00
class BuildOrderResolver : public QObject
{
2015-12-25 01:58:19 +01:00
Q_OBJECT
public:
2015-12-25 01:58:19 +01:00
BuildOrderResolver(Manager &manager, const ApplicationUtilities::StringVector &packages, bool addSourceOnlyDeps = false);
~BuildOrderResolver();
void cli();
void findDependencies();
QStringList resultNames();
2015-12-25 01:58:19 +01:00
public slots:
void printRelevantPackages();
void printResults();
void resolve();
signals:
void ready();
void resolvingFinished();
void resolvingFailed(const QString &message);
private slots:
void addRequestedPackages();
private:
2015-12-25 01:58:19 +01:00
Package *findPackageForDependency(const Dependency &dependency);
bool addDependenciesToTask(TaskInfo *task);
bool addDependenciesToTask(TaskInfo *task, const QList<Dependency> &dependencies);
void requestDependenciesToBeRequested();
Manager &m_manager;
QList<TaskInfo *> m_tasks;
QList<Dependency> m_dependenciesToBeRequested;
2015-12-25 01:58:19 +01:00
std::unique_ptr<PackageFinder> m_finder;
QList<TaskInfo *> m_results;
bool m_addSourceOnlyDeps;
};
} // namespace PackageManagement
#endif // PACKAGEMANAGEMENT_RESOLVEBUILDORDER_H