From 9c494559f34c1132a5d7dc532f93f63590d9941a Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 25 Jun 2011 17:13:07 +0200 Subject: [PATCH] ResolvableFamily: Add ResolveDependency() --- .../file_systems/packagefs/ResolvableFamily.cpp | 15 +++++++++++++++ .../file_systems/packagefs/ResolvableFamily.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp index ab9060f204..28de17716e 100644 --- a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp @@ -44,3 +44,18 @@ ResolvableFamily::RemoveResolvable(Resolvable* resolvable, resolvable->SetFamily(NULL); fResolvables.Remove(resolvable); } + + +bool +ResolvableFamily::ResolveDependency(Dependency* dependency) +{ + for (FamilyResolvableList::Iterator it = fResolvables.GetIterator(); + Resolvable* resolvable = it.Next();) { + if (dependency->ResolvableVersionMatches(resolvable->Version())) { + resolvable->AddDependency(dependency); + return true; + } + } + + return false; +} diff --git a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h index c63c3322f8..7d0a87fcbc 100644 --- a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h +++ b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h @@ -21,6 +21,8 @@ public: ResolvableDependencyList& dependenciesToUpdate); + bool ResolveDependency(Dependency* dependency); + const char* Name() const; bool IsLastResolvable(Resolvable* resolvable) const;