aboutsummaryrefslogtreecommitdiff
path: root/paludis/user_dep_spec.hh
diff options
context:
space:
mode:
authorAvatar Dimitry Ishenko <dimitry.ishenko@gmail.com> 2014-03-18 11:04:50 -0400
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2014-03-20 18:32:14 +0000
commit4a1b5b7509d0faccb32a31f38aa21e6175fd6438 (patch)
tree39fb6df0d083cb58a662122ae86110d1eb96f632 /paludis/user_dep_spec.hh
parent12e3419717f48a544b5fe79ab0a166ad0208e778 (diff)
downloadpaludis-4a1b5b7509d0faccb32a31f38aa21e6175fd6438.tar.gz
paludis-4a1b5b7509d0faccb32a31f38aa21e6175fd6438.tar.xz
Add exclude dep spec
The spec is in the form [.!exclude=package-dep-spec].
Diffstat (limited to 'paludis/user_dep_spec.hh')
-rw-r--r--paludis/user_dep_spec.hh39
1 files changed, 39 insertions, 0 deletions
diff --git a/paludis/user_dep_spec.hh b/paludis/user_dep_spec.hh
index 9624412e2..8795dafc6 100644
--- a/paludis/user_dep_spec.hh
+++ b/paludis/user_dep_spec.hh
@@ -127,6 +127,45 @@ namespace paludis
};
extern template class Pimp<UserKeyRequirement>;
+
+ /**
+ * An exclude requirement for a PackageDepSpec.
+ *
+ * \ingroup g_dep_spec
+ */
+ class PALUDIS_VISIBLE ExcludeRequirement :
+ public AdditionalPackageDepSpecRequirement
+ {
+ private:
+ PackageDepSpec _s;
+
+ public:
+ ///\name Basic operations
+ ///\{
+
+ ExcludeRequirement(const PackageDepSpec &);
+ ~ExcludeRequirement();
+
+ ///\}
+
+ virtual const std::pair<bool, std::string> requirement_met(
+ const Environment * const, const ChangedChoices *,
+ const std::shared_ptr<const PackageID> &,
+ const std::shared_ptr<const PackageID> &,
+ const ChangedChoices * const) const PALUDIS_ATTRIBUTE((warn_unused_result));
+
+ virtual const std::string as_human_string(
+ const std::shared_ptr<const PackageID> &) const PALUDIS_ATTRIBUTE((warn_unused_result));
+
+ virtual const std::string as_raw_string() const PALUDIS_ATTRIBUTE((warn_unused_result));
+
+ virtual Tribool accumulate_changes_to_make_met(
+ const Environment * const,
+ const ChangedChoices * const,
+ const std::shared_ptr<const PackageID> &,
+ const std::shared_ptr<const PackageID> &,
+ ChangedChoices &) const PALUDIS_ATTRIBUTE((warn_unused_result));
+ };
}
#endif