diff options
author | 2014-03-18 11:04:50 -0400 | |
---|---|---|
committer | 2014-03-20 18:32:14 +0000 | |
commit | 4a1b5b7509d0faccb32a31f38aa21e6175fd6438 (patch) | |
tree | 39fb6df0d083cb58a662122ae86110d1eb96f632 /paludis/user_dep_spec.hh | |
parent | 12e3419717f48a544b5fe79ab0a166ad0208e778 (diff) | |
download | paludis-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.hh | 39 |
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 |