diff options
author | 2011-02-27 22:08:29 +0000 | |
---|---|---|
committer | 2011-02-28 15:31:18 +0000 | |
commit | bf9e33c1c76c2c2387ada7ae7294efa21a1c2f2f (patch) | |
tree | fe00ac0ca9434b268499b6380220140fc5e1a816 /paludis/repositories/cran | |
parent | 761f72d25876dac3e239fad163123d35cacda4a0 (diff) | |
download | paludis-bf9e33c1c76c2c2387ada7ae7294efa21a1c2f2f.tar.gz paludis-bf9e33c1c76c2c2387ada7ae7294efa21a1c2f2f.tar.xz |
Allow repos to return partial results if faster
Diffstat (limited to 'paludis/repositories/cran')
-rw-r--r-- | paludis/repositories/cran/cran_installed_repository.cc | 16 | ||||
-rw-r--r-- | paludis/repositories/cran/cran_installed_repository.hh | 10 | ||||
-rw-r--r-- | paludis/repositories/cran/cran_installed_repository_TEST.cc | 4 | ||||
-rw-r--r-- | paludis/repositories/cran/cran_repository.cc | 16 | ||||
-rw-r--r-- | paludis/repositories/cran/cran_repository.hh | 10 | ||||
-rw-r--r-- | paludis/repositories/cran/cran_repository_TEST.cc | 14 |
6 files changed, 35 insertions, 35 deletions
diff --git a/paludis/repositories/cran/cran_installed_repository.cc b/paludis/repositories/cran/cran_installed_repository.cc index 02d46a2c8..e764df7cb 100644 --- a/paludis/repositories/cran/cran_installed_repository.cc +++ b/paludis/repositories/cran/cran_installed_repository.cc @@ -187,7 +187,7 @@ CRANInstalledRepository::_add_metadata_keys() const } bool -CRANInstalledRepository::has_category_named(const CategoryNamePart & c) const +CRANInstalledRepository::has_category_named(const CategoryNamePart & c, const RepositoryContentMayExcludes &) const { return (CategoryNamePart("cran") == c); } @@ -199,11 +199,11 @@ CRANInstalledRepository::is_unimportant() const } bool -CRANInstalledRepository::has_package_named(const QualifiedPackageName & q) const +CRANInstalledRepository::has_package_named(const QualifiedPackageName & q, const RepositoryContentMayExcludes & x) const { Context context("When checking for package '" + stringify(q) + "' in " + stringify(name()) + ":"); - if (! has_category_named(q.category())) + if (! has_category_named(q.category(), x)) return false; need_ids(); @@ -212,7 +212,7 @@ CRANInstalledRepository::has_package_named(const QualifiedPackageName & q) const } std::shared_ptr<const CategoryNamePartSet> -CRANInstalledRepository::category_names() const +CRANInstalledRepository::category_names(const RepositoryContentMayExcludes &) const { std::shared_ptr<CategoryNamePartSet> result(std::make_shared<CategoryNamePartSet>()); result->insert(CategoryNamePart("cran")); @@ -220,13 +220,13 @@ CRANInstalledRepository::category_names() const } std::shared_ptr<const QualifiedPackageNameSet> -CRANInstalledRepository::package_names(const CategoryNamePart & c) const +CRANInstalledRepository::package_names(const CategoryNamePart & c, const RepositoryContentMayExcludes & x) const { Context context("When fetching package names in category '" + stringify(c) + "' in " + stringify(name()) + ":"); std::shared_ptr<QualifiedPackageNameSet> result(std::make_shared<QualifiedPackageNameSet>()); - if (! has_category_named(c)) + if (! has_category_named(c, x)) return result; need_ids(); @@ -238,13 +238,13 @@ CRANInstalledRepository::package_names(const CategoryNamePart & c) const } std::shared_ptr<const PackageIDSequence> -CRANInstalledRepository::package_ids(const QualifiedPackageName & n) const +CRANInstalledRepository::package_ids(const QualifiedPackageName & n, const RepositoryContentMayExcludes & x) const { Context context("When fetching versions of '" + stringify(n) + "' in " + stringify(name()) + ":"); std::shared_ptr<PackageIDSequence> result(std::make_shared<PackageIDSequence>()); - if (! has_package_named(n)) + if (! has_package_named(n, x)) return result; need_ids(); diff --git a/paludis/repositories/cran/cran_installed_repository.hh b/paludis/repositories/cran/cran_installed_repository.hh index 2e3f71baa..f5c3b7535 100644 --- a/paludis/repositories/cran/cran_installed_repository.hh +++ b/paludis/repositories/cran/cran_installed_repository.hh @@ -125,20 +125,20 @@ namespace paludis /* Repository */ virtual std::shared_ptr<const PackageIDSequence> package_ids( - const QualifiedPackageName &) const + const QualifiedPackageName &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); virtual std::shared_ptr<const QualifiedPackageNameSet> package_names( - const CategoryNamePart &) const + const CategoryNamePart &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); - virtual std::shared_ptr<const CategoryNamePartSet> category_names() const + virtual std::shared_ptr<const CategoryNamePartSet> category_names(const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); - virtual bool has_package_named(const QualifiedPackageName &) const + virtual bool has_package_named(const QualifiedPackageName &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); - virtual bool has_category_named(const CategoryNamePart &) const + virtual bool has_category_named(const CategoryNamePart &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); virtual const bool is_unimportant() const; diff --git a/paludis/repositories/cran/cran_installed_repository_TEST.cc b/paludis/repositories/cran/cran_installed_repository_TEST.cc index 0f7a4b766..d7e4dd8d9 100644 --- a/paludis/repositories/cran/cran_installed_repository_TEST.cc +++ b/paludis/repositories/cran/cran_installed_repository_TEST.cc @@ -1,7 +1,7 @@ /* vim: set sw=4 sts=4 et foldmethod=syntax : */ /* - * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2010, 2011 Ciaran McCreesh * * This file is part of the Paludis package manager. Paludis is free software; * you can redistribute it and/or modify it under the terms of the GNU General @@ -61,7 +61,7 @@ namespace test_cases keys->insert("builddir", "cran_installed_repository_TEST_dir/tmp"); std::shared_ptr<Repository> repo(CRANInstalledRepository::repository_factory_create(&env, std::bind(from_keys, keys, std::placeholders::_1))); - TEST_CHECK(repo->has_category_named(CategoryNamePart("cran"))); + TEST_CHECK(repo->has_category_named(CategoryNamePart("cran"), { })); } } test_cran_repository_installed_packages; } diff --git a/paludis/repositories/cran/cran_repository.cc b/paludis/repositories/cran/cran_repository.cc index 3231f1637..7920c2dd2 100644 --- a/paludis/repositories/cran/cran_repository.cc +++ b/paludis/repositories/cran/cran_repository.cc @@ -145,18 +145,18 @@ CRANRepository::_add_metadata_keys() const } bool -CRANRepository::has_category_named(const CategoryNamePart & c) const +CRANRepository::has_category_named(const CategoryNamePart & c, const RepositoryContentMayExcludes &) const { return "cran" == stringify(c); } bool -CRANRepository::has_package_named(const QualifiedPackageName & q) const +CRANRepository::has_package_named(const QualifiedPackageName & q, const RepositoryContentMayExcludes & x) const { Context context("When checking for package '" + stringify(q) + "' in " + stringify(name()) + ":"); Lock l(*_imp->big_nasty_mutex); - if (! has_category_named(q.category())) + if (! has_category_named(q.category(), x)) return false; need_ids(); @@ -164,7 +164,7 @@ CRANRepository::has_package_named(const QualifiedPackageName & q) const } std::shared_ptr<const CategoryNamePartSet> -CRANRepository::category_names() const +CRANRepository::category_names(const RepositoryContentMayExcludes &) const { Context context("When fetching category names in " + stringify(name()) + ":"); Lock l(*_imp->big_nasty_mutex); @@ -176,14 +176,14 @@ CRANRepository::category_names() const } std::shared_ptr<const QualifiedPackageNameSet> -CRANRepository::package_names(const CategoryNamePart & c) const +CRANRepository::package_names(const CategoryNamePart & c, const RepositoryContentMayExcludes & x) const { Context context("When fetching package names in category '" + stringify(c) + "' in " + stringify(name()) + ":"); Lock l(*_imp->big_nasty_mutex); std::shared_ptr<QualifiedPackageNameSet> result(std::make_shared<QualifiedPackageNameSet>()); - if (! has_category_named(c)) + if (! has_category_named(c, x)) return result; need_ids(); @@ -195,14 +195,14 @@ CRANRepository::package_names(const CategoryNamePart & c) const } std::shared_ptr<const PackageIDSequence> -CRANRepository::package_ids(const QualifiedPackageName & n) const +CRANRepository::package_ids(const QualifiedPackageName & n, const RepositoryContentMayExcludes & x) const { Context context("When fetching versions of '" + stringify(n) + "' in " + stringify(name()) + ":"); Lock l(*_imp->big_nasty_mutex); std::shared_ptr<PackageIDSequence> result(std::make_shared<PackageIDSequence>()); - if (! has_package_named(n)) + if (! has_package_named(n, x)) return result; need_ids(); diff --git a/paludis/repositories/cran/cran_repository.hh b/paludis/repositories/cran/cran_repository.hh index f4b304191..68217e95c 100644 --- a/paludis/repositories/cran/cran_repository.hh +++ b/paludis/repositories/cran/cran_repository.hh @@ -130,20 +130,20 @@ namespace paludis /* Repository */ virtual std::shared_ptr<const QualifiedPackageNameSet> package_names( - const CategoryNamePart &) const + const CategoryNamePart &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); - virtual std::shared_ptr<const CategoryNamePartSet> category_names() const + virtual std::shared_ptr<const CategoryNamePartSet> category_names(const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); - virtual bool has_package_named(const QualifiedPackageName &) const + virtual bool has_package_named(const QualifiedPackageName &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); - virtual bool has_category_named(const CategoryNamePart &) const + virtual bool has_category_named(const CategoryNamePart &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); virtual std::shared_ptr<const PackageIDSequence> package_ids( - const QualifiedPackageName &) const + const QualifiedPackageName &, const RepositoryContentMayExcludes &) const PALUDIS_ATTRIBUTE((warn_unused_result)); virtual const bool is_unimportant() const; diff --git a/paludis/repositories/cran/cran_repository_TEST.cc b/paludis/repositories/cran/cran_repository_TEST.cc index 6f11f2cfb..144b9fba7 100644 --- a/paludis/repositories/cran/cran_repository_TEST.cc +++ b/paludis/repositories/cran/cran_repository_TEST.cc @@ -2,7 +2,7 @@ /* * Copyright (c) 2006 Danny van Dyk - * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh + * Copyright (c) 2007, 2008, 2010, 2011 Ciaran McCreesh * * This file is part of the Paludis package manager. Paludis is free software; * you can redistribute it and/or modify it under the terms of the GNU General @@ -62,9 +62,9 @@ namespace test_cases keys->insert("builddir", "cran_repository_TEST_dir/tmp"); std::shared_ptr<Repository> repo(CRANRepository::repository_factory_create(&env, std::bind(from_keys, keys, std::placeholders::_1))); - TEST_CHECK(repo->has_category_named(CategoryNamePart("cran"))); - TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/testpackage1"))); - TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/testpackage2"))); + TEST_CHECK(repo->has_category_named(CategoryNamePart("cran"), { })); + TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/testpackage1"), { })); + TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/testpackage2"), { })); } } test_cran_repository_packages; @@ -82,9 +82,9 @@ namespace test_cases keys->insert("builddir", "cran_repository_TEST_dir/tmp"); std::shared_ptr<Repository> repo(CRANRepository::repository_factory_create(&env, std::bind(from_keys, keys, std::placeholders::_1))); - TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/testbundle"))); - TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/bundlepkg1"))); - TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/bundlepkg2"))); + TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/testbundle"), { })); + TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/bundlepkg1"), { })); + TEST_CHECK(repo->has_package_named(QualifiedPackageName("cran/bundlepkg2"), { })); } } test_cran_repository_bundle; } |