20#ifndef PALUDIS_GUARD_PALUDIS_REPOSITORY_HH
21#define PALUDIS_GUARD_PALUDIS_REPOSITORY_HH 1
26#include <paludis/spec_tree-fwd.hh>
29#include <paludis/partitioning-fwd.hh>
32#include <paludis/util/fs_path.hh>
33#include <paludis/util/wrapped_forward_iterator-fwd.hh>
35#include <paludis/util/named_value.hh>
36#include <paludis/util/timestamp.hh>
39#include <paludis/output_manager-fwd.hh>
42#include <paludis/metadata_key_holder.hh>
43#include <paludis/merger-fwd.hh>
62 typedef Name<struct name_arch> arch;
63 typedef Name<struct name_build_start_time> build_start_time;
64 typedef Name<struct name_check> check;
65 typedef Name<struct name_destination_interface> destination_interface;
66 typedef Name<struct name_environment_file> environment_file;
67 typedef Name<struct name_environment_variable_interface> environment_variable_interface;
68 typedef Name<struct name_image_dir> image_dir;
69 typedef Name<struct name_is_volatile> is_volatile;
70 typedef Name<struct name_manifest_interface> manifest_interface;
71 typedef Name<struct name_merged_entries> merged_entries;
72 typedef Name<struct name_options> options;
73 typedef Name<struct name_output_manager> output_manager;
74 typedef Name<struct name_package_id> package_id;
75 typedef Name<struct name_parts> parts;
76 typedef Name<struct name_path> path;
77 typedef Name<struct name_perform_uninstall> perform_uninstall;
78 typedef Name<struct name_permit_destination> permit_destination;
79 typedef Name<struct name_profile> profile;
80 typedef Name<struct name_replacing> replacing;
81 typedef Name<struct name_status> status;
82 typedef Name<struct name_used_this_for_config_protect> used_this_for_config_protect;
83 typedef Name<struct name_want_phase> want_phase;
157 NamedValue<n::perform_uninstall, std::function<void (
158 const std::shared_ptr<const PackageID> &,
171 NamedValue<n::used_this_for_config_protect, std::function<void (
const std::string &)> > used_this_for_config_protect;
198 NoSuchSetError(
const std::string &
name)
noexcept;
200 ~NoSuchSetError()
override;
207 const std::string
name()
const;
227 RecursivelyDefinedSetError(
const std::string &
name)
noexcept;
229 ~RecursivelyDefinedSetError()
override;
236 const std::string
name()
const;
248 public MetadataKeyHolder
265 ~Repository()
override;
267 Repository(
const Repository &) =
delete;
268 Repository & operator= (
const Repository &) =
delete;
285 virtual const std::shared_ptr<const
MetadataValueKey<std::
string>> cross_compile_host_key() const = 0;
322 virtual const std::shared_ptr<const
MetadataValueKey<std::
string>> tool_prefix_key() const = 0;
335 const RepositoryContentMayExcludes & repository_content_may_excludes) const = 0;
341 const RepositoryContentMayExcludes & repository_content_may_excludes) const = 0;
347 const RepositoryContentMayExcludes & repository_content_may_excludes) const = 0;
353 const RepositoryContentMayExcludes & repository_content_may_excludes) const;
369 const RepositoryContentMayExcludes & repository_content_may_excludes) const;
376 const RepositoryContentMayExcludes & repository_content_may_excludes) const = 0;
382 const RepositoryContentMayExcludes & repository_content_may_excludes) const = 0;
416 const std::
string &) const = 0;
446 const std::shared_ptr<
OutputManager> & optional_output_manager)
458 const std::
string & source,
459 const std::
string & revision,
505 const std::shared_ptr<const PackageID> & for_package,
506 const std::string & var)
const
551 virtual std::
string split_debug_location() const = 0;
Definition environment.hh:203
Definition named_value.hh:51
const std::string name() const
Definition output_manager.hh:30
const std::string name() const
Definition repository.hh:522
virtual void merge(const MergeParams &)=0
virtual bool is_suitable_destination_for(const std::shared_ptr< const PackageID > &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual bool want_pre_post_phases() const PALUDIS_ATTRIBUTE((warn_unused_result))=0
Definition repository.hh:496
virtual std::string get_environment_variable(const std::shared_ptr< const PackageID > &for_package, const std::string &var) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
Definition repository.hh:566
virtual void make_manifest(const QualifiedPackageName &)=0
virtual void purge_invalid_cache() const
virtual bool some_ids_might_not_be_masked() const =0
virtual const std::shared_ptr< const MetadataCollectionKey< Map< std::string, std::string > > > sync_host_key() const =0
virtual HookResult perform_hook(const Hook &hook, const std::shared_ptr< OutputManager > &optional_output_manager) PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual std::shared_ptr< const PackageIDSequence > package_ids(const QualifiedPackageName &p, const RepositoryContentMayExcludes &repository_content_may_excludes) const =0
virtual std::shared_ptr< const CategoryNamePartSet > category_names(const RepositoryContentMayExcludes &repository_content_may_excludes) const =0
virtual void populate_sets() const =0
virtual const std::shared_ptr< const Set< std::string > > maybe_expand_licence_nonrecursively(const std::string &) const =0
virtual const std::shared_ptr< const MetadataValueKey< FSPath > > location_key() const =0
virtual const std::shared_ptr< const MetadataValueKey< std::string > > format_key() const =0
virtual const bool is_unimportant() const =0
virtual void can_drop_in_memory_cache() const
virtual bool some_ids_might_support_action(const SupportsActionTestBase &) const =0
const RepositoryName name() const noexcept PALUDIS_ATTRIBUTE((warn_unused_result))
virtual void invalidate()=0
virtual std::shared_ptr< const CategoryNamePartSet > unimportant_category_names(const RepositoryContentMayExcludes &repository_content_may_excludes) const
virtual std::shared_ptr< const CategoryNamePartSet > category_names_containing_package(const PackageNamePart &p, const RepositoryContentMayExcludes &repository_content_may_excludes) const
virtual bool has_package_named(const QualifiedPackageName &q, const RepositoryContentMayExcludes &repository_content_may_excludes) const =0
virtual void regenerate_cache() const
virtual std::shared_ptr< const QualifiedPackageNameSet > package_names(const CategoryNamePart &c, const RepositoryContentMayExcludes &repository_content_may_excludes) const =0
virtual bool has_category_named(const CategoryNamePart &c, const RepositoryContentMayExcludes &repository_content_may_excludes) const =0
virtual bool sync(const std::string &source, const std::string &revision, const std::shared_ptr< OutputManager > &) const =0
virtual const std::shared_ptr< const MetadataValueKey< FSPath > > installed_root_key() const =0
WrappedValue< CategoryNamePartTag > CategoryNamePart
Definition name-fwd.hh:61
WrappedValue< PackageNamePartTag > PackageNamePart
Definition name-fwd.hh:47
WrappedValue< RepositoryNameTag > RepositoryName
Definition name-fwd.hh:105
Sequence< std::shared_ptr< const PackageID > > PackageIDSequence
Definition package_id-fwd.hh:48
#define PALUDIS_ATTRIBUTE(x)
Definition attributes.hh:53
#define PALUDIS_VISIBLE
Definition attributes.hh:59
Definition about_metadata-fwd.hh:24
Definition repository.hh:108
NamedValue< n::build_start_time, Timestamp > build_start_time
Definition repository.hh:115
NamedValue< n::permit_destination, PermitDestinationFn > permit_destination
Definition repository.hh:162
NamedValue< n::perform_uninstall, std::function< void(const std::shared_ptr< const PackageID > &, const UninstallActionOptions &)> > perform_uninstall
Definition repository.hh:159
NamedValue< n::merged_entries, std::shared_ptr< FSPathSet > > merged_entries
Definition repository.hh:139
NamedValue< n::check, bool > check
Definition repository.hh:124
NamedValue< n::replacing, std::shared_ptr< const PackageIDSequence > > replacing
Definition repository.hh:169
NamedValue< n::is_volatile, std::function< bool(const FSPath &)> > is_volatile
Definition repository.hh:133
NamedValue< n::parts, std::shared_ptr< Partitioning > > parts
Definition repository.hh:149
NamedValue< n::want_phase, std::function< WantPhase(const std::string &)> > want_phase
Definition repository.hh:178
Definition repository.hh:94