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:
parent
75d15eb4c2
commit
89cb001511
|
@ -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; }
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue