20 #ifndef PALUDIS_GUARD_PALUDIS_DEP_SPEC_HH
21 #define PALUDIS_GUARD_PALUDIS_DEP_SPEC_HH 1
26 #include <paludis/util/wrapped_forward_iterator.hh>
27 #include <paludis/util/fs_path.hh>
28 #include <paludis/util/named_value.hh>
30 #include <paludis/changed_choices-fwd.hh>
37 #include <paludis/slot_requirement-fwd.hh>
40 #include <paludis/additional_package_dep_spec_requirement-fwd.hh>
41 #include <paludis/partially_made_package_dep_spec-fwd.hh>
42 #include <paludis/dep_spec_data-fwd.hh>
43 #include <paludis/dep_spec_annotations-fwd.hh>
61 extern template class Pimp<ConditionalDepSpec>;
62 extern template class PALUDIS_VISIBLE CloneUsingThis<DepSpec, ConditionalDepSpec>;
63 extern template class Pimp<PackageDepSpec>;
64 extern template class PALUDIS_VISIBLE CloneUsingThis<DepSpec, PackageDepSpec>;
65 extern template class Pimp<DependenciesLabelsDepSpec>;
66 extern template class Pimp<URILabelsDepSpec>;
67 extern template class Pimp<PlainTextLabelDepSpec>;
100 virtual const std::shared_ptr<const DepSpecAnnotations> maybe_annotations()
const PALUDIS_ATTRIBUTE((warn_unused_result));
107 virtual void set_annotations(
const std::shared_ptr<const DepSpecAnnotations> &);
127 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
148 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
169 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
190 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
210 std::string _as_string()
const;
231 const std::shared_ptr<const PackageID> &)
const PALUDIS_ATTRIBUTE((warn_unused_result));
238 bool condition_would_be_met_when(
240 const std::shared_ptr<const PackageID> &,
250 bool condition_meetable(
252 const std::shared_ptr<const PackageID> &)
const PALUDIS_ATTRIBUTE((warn_unused_result));
260 const std::shared_ptr<const ConditionalDepSpecData> data()
const PALUDIS_ATTRIBUTE((warn_unused_result));
288 void set_text(
const std::string &);
294 std::string text()
const;
353 std::string _as_string()
const;
371 PackageDepSpec(
const std::shared_ptr<const PackageDepSpecData> &);
382 std::shared_ptr<const QualifiedPackageName> package_ptr()
const;
387 std::shared_ptr<const PackageNamePart> package_name_part_ptr()
const;
392 std::shared_ptr<const CategoryNamePart> category_name_part_ptr()
const;
397 std::shared_ptr<const VersionRequirements> version_requirements_ptr()
const;
407 std::shared_ptr<const SlotRequirement> slot_requirement_ptr()
const;
412 std::shared_ptr<const RepositoryName> in_repository_ptr()
const;
419 std::shared_ptr<const InstallableToRepository> installable_to_repository_ptr()
const;
424 std::shared_ptr<const RepositoryName> from_repository_ptr()
const;
431 std::shared_ptr<const FSPath> installed_at_path_ptr()
const;
438 std::shared_ptr<const InstallableToPath> installable_to_path_ptr()
const;
443 std::shared_ptr<const AdditionalPackageDepSpecRequirements> additional_requirements_ptr()
const;
448 std::shared_ptr<const PackageDepSpecData> data()
const;
468 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
494 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
515 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
544 std::string original_url()
const;
550 std::string renamed_url_suffix()
const;
556 std::string filename()
const;
558 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
581 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
640 virtual const std::shared_ptr<const DepSpecAnnotations> maybe_annotations()
const PALUDIS_ATTRIBUTE((warn_unused_result));
648 virtual void set_annotations(
const std::shared_ptr<const DepSpecAnnotations> &);
650 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
663 template <
typename Labels_>
682 void add_label(
const std::shared_ptr<const Labels_> &);
684 struct ConstIteratorTag;
686 const std::shared_ptr<const Labels_> > ConstIterator;
708 virtual std::shared_ptr<DepSpec> clone()
const PALUDIS_ATTRIBUTE((warn_unused_result));
714 const std::shared_ptr<const DependenciesLabel> >;
716 const std::shared_ptr<const URILabel> >;