BSolver::VerifyInstallation(): Add flags parameter

Only flag ATM is B_VERIFY_ALLOW_UNINSTALL. It tells to solver to suggest
uninstalling packages when necessary instead of considering such a case
a problem.
This commit is contained in:
Ingo Weinhold 2013-08-28 12:55:47 +02:00
parent 75d15eb4c2
commit 89cb001511
3 changed files with 10 additions and 3 deletions

View File

@ -34,6 +34,11 @@ public:
B_FIND_INSTALLED_ONLY = 0x20,
};
// VerifyInstallation() flags
enum {
B_VERIFY_ALLOW_UNINSTALL = 0x01,
};
public:
virtual ~BSolver();
@ -67,7 +72,7 @@ public:
bool installNotYetInstalled,
const BSolverPackageSpecifier** _unmatched
= NULL) = 0;
virtual status_t VerifyInstallation() = 0;
virtual status_t VerifyInstallation(uint32 flags = 0) = 0;
bool HasProblems() const
{ return CountProblems() > 0; }

View File

@ -446,7 +446,7 @@ LibsolvSolver::Update(const BSolverPackageSpecifierList& packages,
status_t
LibsolvSolver::VerifyInstallation()
LibsolvSolver::VerifyInstallation(uint32 flags)
{
if (fInstalledRepository == NULL)
return B_BAD_VALUE;
@ -467,6 +467,8 @@ LibsolvSolver::VerifyInstallation()
_SetJobsSolverMode(SOLVER_VERIFY);
_InitSolver();
if ((flags & B_VERIFY_ALLOW_UNINSTALL) != 0)
solver_set_flag(fSolver, SOLVER_FLAG_ALLOW_UNINSTALL, 1);
return _Solve();
}

View File

@ -57,7 +57,7 @@ public:
bool installNotYetInstalled,
const BSolverPackageSpecifier** _unmatched
= NULL);
virtual status_t VerifyInstallation();
virtual status_t VerifyInstallation(uint32 flags = 0);
virtual int32 CountProblems() const;
virtual BSolverProblem* ProblemAt(int32 index) const;