aboutsummaryrefslogtreecommitdiff
path: root/paludis/filter.cc
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-02-28 16:17:38 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-02-28 16:50:38 +0000
commit8bbc660636c3d5617c422d6d61084717ad7315ff (patch)
tree46cc8916a3e4680b461b7650c9d27347372fe5e2 /paludis/filter.cc
parent8d632ee9edebdbaa00c31200d97db506b5bf9cac (diff)
downloadpaludis-8bbc660636c3d5617c422d6d61084717ad7315ff.tar.gz
paludis-8bbc660636c3d5617c422d6d61084717ad7315ff.tar.xz
Define may_excludes on filters
Diffstat (limited to 'paludis/filter.cc')
-rw-r--r--paludis/filter.cc37
1 files changed, 37 insertions, 0 deletions
diff --git a/paludis/filter.cc b/paludis/filter.cc
index 31a6eba67..e16569231 100644
--- a/paludis/filter.cc
+++ b/paludis/filter.cc
@@ -105,6 +105,12 @@ Filter::ids(
return _imp->handler->ids(env, i);
}
+const RepositoryContentMayExcludes
+Filter::may_excludes() const
+{
+ return _imp->handler->may_excludes();
+}
+
std::string
Filter::as_string() const
{
@@ -167,6 +173,11 @@ namespace
struct NotMaskedFilterHandler :
AllFilterHandlerBase
{
+ virtual const RepositoryContentMayExcludes may_excludes() const
+ {
+ return { rcme_masked };
+ }
+
virtual std::shared_ptr<const RepositoryNameSet> repositories(
const Environment * const env,
const std::shared_ptr<const RepositoryNameSet> & repos) const
@@ -263,6 +274,12 @@ namespace
{
}
+ virtual const RepositoryContentMayExcludes may_excludes() const
+ {
+ /* we can exclude anything either filter would reject */
+ return f1.may_excludes() | f2.may_excludes();
+ }
+
virtual std::shared_ptr<const RepositoryNameSet> repositories(
const Environment * const env,
const std::shared_ptr<const RepositoryNameSet> & s) const
@@ -309,6 +326,11 @@ namespace
{
}
+ virtual const RepositoryContentMayExcludes may_excludes() const
+ {
+ return { };
+ }
+
virtual std::shared_ptr<const PackageIDSet> ids(
const Environment * const,
const std::shared_ptr<const PackageIDSet> & id) const
@@ -347,6 +369,11 @@ namespace
{
}
+ virtual const RepositoryContentMayExcludes may_excludes() const
+ {
+ return { };
+ }
+
virtual std::shared_ptr<const PackageIDSet> ids(
const Environment * const,
const std::shared_ptr<const PackageIDSet> & id) const
@@ -384,6 +411,11 @@ namespace
return result;
}
+ virtual const RepositoryContentMayExcludes may_excludes() const
+ {
+ return { };
+ }
+
virtual std::string as_string() const
{
return "has no slot";
@@ -404,6 +436,11 @@ namespace
{
}
+ virtual const RepositoryContentMayExcludes may_excludes() const
+ {
+ return { };
+ }
+
virtual std::shared_ptr<const PackageIDSet> ids(
const Environment * const env,
const std::shared_ptr<const PackageIDSet> & id) const