20#ifndef PALUDIS_GUARD_PALUDIS_ENVIRONMENT_HH
21#define PALUDIS_GUARD_PALUDIS_ENVIRONMENT_HH 1
25#include <paludis/output_manager-fwd.hh>
30#include <paludis/spec_tree-fwd.hh>
34#include <paludis/metadata_key_holder.hh>
36#include <paludis/create_output_manager_info-fwd.hh>
37#include <paludis/notifier_callback-fwd.hh>
40#include <paludis/util/iterator_range.hh>
42#include <paludis/util/tribool-fwd.hh>
43#include <paludis/util/visitor.hh>
72 const std::unique_ptr<NameData> _name_data;
82 AmbiguousPackageNameError(
const AmbiguousPackageNameError &);
84 ~AmbiguousPackageNameError()
override;
96 struct OptionsConstIteratorTag;
99 OptionsConstIterator begin_options() const
PALUDIS_ATTRIBUTE((warn_unused_result));
100 OptionsConstIterator end_options() const
PALUDIS_ATTRIBUTE((warn_unused_result));
138 NoSuchPackageError(
const std::string &
name)
noexcept;
140 ~NoSuchPackageError()
override =
default;
147 const std::string &
name()
const
172 ~NoSuchRepositoryError()
override;
202 public MetadataKeyHolder
211 Environment() =
default;
212 ~Environment()
override = 0;
214 Environment(
const Environment &) =
delete;
215 Environment & operator= (
const Environment &) =
delete;
232 const std::shared_ptr<const PackageID> &,
233 const std::shared_ptr<const Choice> &,
254 const std::shared_ptr<const PackageID> &,
255 const std::shared_ptr<const Choice> &,
271 const std::shared_ptr<const PackageID> &,
272 const std::shared_ptr<const Choice> &
290 const std::shared_ptr<const PackageID> & from_id,
309 const std::shared_ptr<const PackageID> &)
const
321 const std::string &)
const
335 const std::shared_ptr<const KeywordNameSet> &,
336 const std::shared_ptr<const PackageID> &)
const
353 const std::shared_ptr<const PackageID> &,
354 const bool will_be_used_for_overridden)
const
370 const std::shared_ptr<const PackageID> &,
371 const std::string &)
const
379 virtual std::shared_ptr<PackageIDSequence> operator[] (
const Selection &)
const
423 virtual std::shared_ptr<const FSPathSequence>
hook_dirs() const
487 const std::function<std::shared_ptr<const SetSpecTree> ()> & func,
488 const
bool combine) const = 0;
493 virtual std::shared_ptr<const SetNameSet>
set_names() const
501 virtual const std::shared_ptr<const SetSpecTree>
set(const
SetName &) const
516 const std::shared_ptr<
OutputManager> & optional_output_manager) const
524 virtual std::
string distribution() const
709 struct RepositoryConstIteratorTag;
712 virtual RepositoryConstIterator begin_repositories() const
715 virtual RepositoryConstIterator end_repositories() const
718 IteratorRange<RepositoryConstIterator> repositories()
const {
719 return {begin_repositories(), end_repositories()};
725 extern template class Pimp<CreateOutputManagerForRepositorySyncInfo>;
726 extern template class Pimp<CreateOutputManagerForPackageIDActionInfo>;
727 extern template class WrappedForwardIterator<Environment::RepositoryConstIteratorTag, const std::shared_ptr<Repository> >;
728 extern template class WrappedForwardIterator<AmbiguousPackageNameError::OptionsConstIteratorTag, const std::string>;
const std::string & name() const PALUDIS_ATTRIBUTE((warn_unused_result))
Definition create_output_manager_info.hh:48
DuplicateRepositoryError(const std::string &name) noexcept
virtual std::string reduced_username() const =0
virtual bool is_paludis_package(const QualifiedPackageName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const std::shared_ptr< const MetadataValueKey< FSPath > > config_location_key() const =0
virtual bool remove_from_world(const QualifiedPackageName &) const =0
virtual bool has_repository_named(const RepositoryName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual std::shared_ptr< const FSPathSequence > fetchers_dirs() const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual bool add_to_world(const QualifiedPackageName &) const =0
virtual const std::shared_ptr< OutputManager > create_output_manager(const CreateOutputManagerInfo &) const =0
virtual bool accept_license(const std::string &, const std::shared_ptr< const PackageID > &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const std::shared_ptr< const SetSpecTree > set(const SetName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const Tribool want_choice_enabled(const std::shared_ptr< const PackageID > &, const std::shared_ptr< const Choice > &, const UnprefixedChoiceName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const std::shared_ptr< const Set< std::string > > expand_licence(const std::string &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual QualifiedPackageName fetch_unique_qualified_package_name(const PackageNamePart &, const Filter &=all_filter(), const bool disambiguate=true) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const std::shared_ptr< const Repository > fetch_repository(const RepositoryName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual void add_repository(int importance, const std::shared_ptr< Repository > &)=0
virtual const std::shared_ptr< Repository > repository_from_new_config_file(const FSPath &) PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const std::shared_ptr< const MetadataValueKey< FSPath > > system_root_key() const =0
virtual const std::shared_ptr< const Mask > mask_for_user(const std::shared_ptr< const PackageID > &, const bool will_be_used_for_overridden) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual void remove_notifier_callback(const NotifierCallbackID)=0
virtual uid_t reduced_uid() const =0
virtual std::shared_ptr< const FSPathSequence > syncers_dirs() const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual HookResult perform_hook(const Hook &, const std::shared_ptr< OutputManager > &optional_output_manager) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual void trigger_notifier_callback(const NotifierCallbackEvent &) const =0
virtual bool unmasked_by_user(const std::shared_ptr< const PackageID > &, const std::string &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual std::shared_ptr< const FSPathSequence > hook_dirs() const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual gid_t reduced_gid() const =0
virtual std::shared_ptr< const MirrorsSequence > mirrors(const std::string &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual void add_set(const SetName &base_name, const SetName &combined_name, const std::function< std::shared_ptr< const SetSpecTree >()> &func, const bool combine) const =0
virtual bool accept_keywords(const std::shared_ptr< const KeywordNameSet > &, const std::shared_ptr< const PackageID > &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual std::shared_ptr< const Set< UnprefixedChoiceName > > known_choice_value_names(const std::shared_ptr< const PackageID > &, const std::shared_ptr< const Choice > &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual bool more_important_than(const RepositoryName &, const RepositoryName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const std::shared_ptr< const MetadataValueKey< FSPath > > preferred_root_key() const =0
virtual const std::string value_for_choice_parameter(const std::shared_ptr< const PackageID > &, const std::shared_ptr< const Choice > &, const UnprefixedChoiceName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual Tribool interest_in_suggestion(const std::shared_ptr< const PackageID > &from_id, const PackageDepSpec &spec) const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual const std::shared_ptr< const MetadataValueKey< std::string > > format_key() const =0
virtual void update_config_files_for_package_move(const PackageDepSpec &, const QualifiedPackageName &) const =0
virtual NotifierCallbackID add_notifier_callback(const NotifierCallbackFunction &)=0
virtual std::shared_ptr< const SetNameSet > set_names() const PALUDIS_ATTRIBUTE((warn_unused_result))=0
virtual std::shared_ptr< const FSPathSequence > bashrc_files() const PALUDIS_ATTRIBUTE((warn_unused_result))=0
Definition iterator_range.hh:29
const std::string & name() const
Definition environment.hh:147
RepositoryName name() const
Definition notifier_callback.hh:39
Definition output_manager.hh:30
Definition dep_spec.hh:348
Definition repository.hh:249
Definition selection.hh:71
Definition sequence.hh:51
Definition wrapped_forward_iterator.hh:42
WrappedValue< UnprefixedChoiceNameTag > UnprefixedChoiceName
Definition choice-fwd.hh:73
Sequence< std::string > MirrorsSequence
Definition environment-fwd.hh:41
WrappedValue< SetNameTag > SetName
Definition name-fwd.hh:131
WrappedValue< PackageNamePartTag > PackageNamePart
Definition name-fwd.hh:47
WrappedValue< RepositoryNameTag > RepositoryName
Definition name-fwd.hh:105
#define PALUDIS_ATTRIBUTE(x)
Definition attributes.hh:53
#define PALUDIS_VISIBLE
Definition attributes.hh:59
Definition about_metadata-fwd.hh:24