BSolverRepository: add SetTo(const BRepositoryCache&)
This commit is contained in:
parent
6a7e3406be
commit
383cd08d72
|
@ -16,6 +16,7 @@ namespace BPackageKit {
|
|||
|
||||
|
||||
class BPackageInfo;
|
||||
class BRepositoryCache;
|
||||
class BRepositoryConfig;
|
||||
class BSolverPackage;
|
||||
|
||||
|
@ -42,6 +43,7 @@ public:
|
|||
status_t SetTo(BPackageInstallationLocation location);
|
||||
status_t SetTo(BAllInstallationLocations);
|
||||
status_t SetTo(const BRepositoryConfig& config);
|
||||
status_t SetTo(const BRepositoryCache& cache);
|
||||
void Unset();
|
||||
|
||||
status_t InitCheck();
|
||||
|
|
|
@ -169,6 +169,31 @@ BSolverRepository::SetTo(const BRepositoryConfig& config)
|
|||
}
|
||||
|
||||
|
||||
status_t
|
||||
BSolverRepository::SetTo(const BRepositoryCache& cache)
|
||||
{
|
||||
Unset();
|
||||
|
||||
const BRepositoryInfo& info = cache.Info();
|
||||
if (info.InitCheck() != B_OK)
|
||||
return B_BAD_VALUE;
|
||||
|
||||
fName = info.Name();
|
||||
fPriority = info.Priority();
|
||||
|
||||
BRepositoryCache::Iterator it = cache.GetIterator();
|
||||
while (const BPackageInfo* packageInfo = it.Next()) {
|
||||
status_t error = AddPackage(*packageInfo);
|
||||
if (error != B_OK) {
|
||||
Unset();
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BSolverRepository::Unset()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue