From 220b5e1f29ab8b428b4a4aa13637fa80c5f57049 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 28 Aug 2013 12:44:14 +0200 Subject: [PATCH] BSolverRepository: Add {Remove,Delete}Package() --- headers/os/package/solver/SolverRepository.h | 2 ++ src/kits/package/solver/SolverRepository.cpp | 22 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/headers/os/package/solver/SolverRepository.h b/headers/os/package/solver/SolverRepository.h index e15c401e93..de3d63c4f2 100644 --- a/headers/os/package/solver/SolverRepository.h +++ b/headers/os/package/solver/SolverRepository.h @@ -65,6 +65,8 @@ public: BSolverPackage** _package = NULL); status_t AddPackages( BPackageInstallationLocation location); + bool RemovePackage(BSolverPackage* package); + bool DeletePackage(BSolverPackage* package); uint64 ChangeCount() const; diff --git a/src/kits/package/solver/SolverRepository.cpp b/src/kits/package/solver/SolverRepository.cpp index e813d59273..60415c4e5d 100644 --- a/src/kits/package/solver/SolverRepository.cpp +++ b/src/kits/package/solver/SolverRepository.cpp @@ -309,6 +309,28 @@ BSolverRepository::AddPackages(BPackageInstallationLocation location) } +bool +BSolverRepository::RemovePackage(BSolverPackage* package) +{ + if (!fPackages.RemoveItem(package, false)) + return false; + + fChangeCount++; + return true; +} + + +bool +BSolverRepository::DeletePackage(BSolverPackage* package) +{ + if (!RemovePackage(package)) + return false; + + delete package; + return true; +} + + uint64 BSolverRepository::ChangeCount() const {