diff --git a/headers/os/package/solver/Solver.h b/headers/os/package/solver/Solver.h index 3a0520879a..068e4c5e39 100644 --- a/headers/os/package/solver/Solver.h +++ b/headers/os/package/solver/Solver.h @@ -46,6 +46,8 @@ public: virtual status_t Init() = 0; + virtual void SetDebugLevel(int32 level) = 0; + virtual status_t AddRepository( BSolverRepository* repository) = 0; diff --git a/src/kits/package/solver/LibsolvSolver.cpp b/src/kits/package/solver/LibsolvSolver.cpp index d56f725dfd..d0e2373b00 100644 --- a/src/kits/package/solver/LibsolvSolver.cpp +++ b/src/kits/package/solver/LibsolvSolver.cpp @@ -182,7 +182,8 @@ LibsolvSolver::LibsolvSolver() fInstalledRepository(NULL), fSolvablePackages(), fPackageSolvables(), - fProblems(10, true) + fProblems(10, true), + fDebugLevel(0) { } @@ -203,6 +204,16 @@ LibsolvSolver::Init() } +void +LibsolvSolver::SetDebugLevel(int32 level) +{ + fDebugLevel = level; + + if (fPool != NULL) + pool_setdebuglevel(fPool, fDebugLevel); +} + + status_t LibsolvSolver::AddRepository(BSolverRepository* repository) { @@ -585,6 +596,8 @@ LibsolvSolver::_InitPool() fPool = pool_create(); + pool_setdebuglevel(fPool, fDebugLevel); + // Set the system architecture. We use what uname() returns unless we're on // x86 gcc2. { diff --git a/src/kits/package/solver/LibsolvSolver.h b/src/kits/package/solver/LibsolvSolver.h index ecb6168427..8f3a3da7c0 100644 --- a/src/kits/package/solver/LibsolvSolver.h +++ b/src/kits/package/solver/LibsolvSolver.h @@ -32,6 +32,8 @@ public: virtual status_t Init(); + virtual void SetDebugLevel(int32 level); + virtual status_t AddRepository(BSolverRepository* repository); virtual status_t FindPackages(const char* searchString, @@ -133,6 +135,7 @@ private: SolvableMap fSolvablePackages; PackageMap fPackageSolvables; ProblemList fProblems; + int32 fDebugLevel; };