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:
@@ -34,6 +34,11 @@ public:
|
|||||||
B_FIND_INSTALLED_ONLY = 0x20,
|
B_FIND_INSTALLED_ONLY = 0x20,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// VerifyInstallation() flags
|
||||||
|
enum {
|
||||||
|
B_VERIFY_ALLOW_UNINSTALL = 0x01,
|
||||||
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~BSolver();
|
virtual ~BSolver();
|
||||||
|
|
||||||
@@ -67,7 +72,7 @@ public:
|
|||||||
bool installNotYetInstalled,
|
bool installNotYetInstalled,
|
||||||
const BSolverPackageSpecifier** _unmatched
|
const BSolverPackageSpecifier** _unmatched
|
||||||
= NULL) = 0;
|
= NULL) = 0;
|
||||||
virtual status_t VerifyInstallation() = 0;
|
virtual status_t VerifyInstallation(uint32 flags = 0) = 0;
|
||||||
|
|
||||||
bool HasProblems() const
|
bool HasProblems() const
|
||||||
{ return CountProblems() > 0; }
|
{ return CountProblems() > 0; }
|
||||||
|
|||||||
@@ -446,7 +446,7 @@ LibsolvSolver::Update(const BSolverPackageSpecifierList& packages,
|
|||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
LibsolvSolver::VerifyInstallation()
|
LibsolvSolver::VerifyInstallation(uint32 flags)
|
||||||
{
|
{
|
||||||
if (fInstalledRepository == NULL)
|
if (fInstalledRepository == NULL)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
@@ -467,6 +467,8 @@ LibsolvSolver::VerifyInstallation()
|
|||||||
_SetJobsSolverMode(SOLVER_VERIFY);
|
_SetJobsSolverMode(SOLVER_VERIFY);
|
||||||
|
|
||||||
_InitSolver();
|
_InitSolver();
|
||||||
|
if ((flags & B_VERIFY_ALLOW_UNINSTALL) != 0)
|
||||||
|
solver_set_flag(fSolver, SOLVER_FLAG_ALLOW_UNINSTALL, 1);
|
||||||
return _Solve();
|
return _Solve();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public:
|
|||||||
bool installNotYetInstalled,
|
bool installNotYetInstalled,
|
||||||
const BSolverPackageSpecifier** _unmatched
|
const BSolverPackageSpecifier** _unmatched
|
||||||
= NULL);
|
= NULL);
|
||||||
virtual status_t VerifyInstallation();
|
virtual status_t VerifyInstallation(uint32 flags = 0);
|
||||||
|
|
||||||
virtual int32 CountProblems() const;
|
virtual int32 CountProblems() const;
|
||||||
virtual BSolverProblem* ProblemAt(int32 index) const;
|
virtual BSolverProblem* ProblemAt(int32 index) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user