#include <environment.hh>
Basic operations | |
virtual | ~Environment ()=0 |
Choice-related queries | |
virtual const Tribool | want_choice_enabled (const std::tr1::shared_ptr< const PackageID > &, const std::tr1::shared_ptr< const Choice > &, const UnprefixedChoiceName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual const std::string | value_for_choice_parameter (const std::tr1::shared_ptr< const PackageID > &, const std::tr1::shared_ptr< const Choice > &, const UnprefixedChoiceName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual std::tr1::shared_ptr < const Set < UnprefixedChoiceName > > | known_choice_value_names (const std::tr1::shared_ptr< const PackageID > &, const std::tr1::shared_ptr< const Choice > &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
Mask-related queries | |
virtual bool | accept_license (const std::string &, const PackageID &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual bool | accept_keywords (const std::tr1::shared_ptr< const KeywordNameSet > &, const PackageID &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual const std::tr1::shared_ptr< const Mask > | mask_for_breakage (const PackageID &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual const std::tr1::shared_ptr< const Mask > | mask_for_user (const PackageID &, const bool will_be_used_for_overridden) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual bool | unmasked_by_user (const PackageID &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
Database-related functions | |
virtual std::tr1::shared_ptr < PackageDatabase > | package_database () PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual std::tr1::shared_ptr < const PackageDatabase > | package_database () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual std::tr1::shared_ptr < PackageIDSequence > | operator[] (const Selection &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
System information | |
virtual std::tr1::shared_ptr < const FSEntrySequence > | bashrc_files () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual std::tr1::shared_ptr < const FSEntrySequence > | syncers_dirs () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual std::tr1::shared_ptr < const FSEntrySequence > | fetchers_dirs () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual std::tr1::shared_ptr < const FSEntrySequence > | hook_dirs () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual std::string | paludis_command () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual void | set_paludis_command (const std::string &)=0 |
virtual const FSEntry | root () const =0 |
virtual uid_t | reduced_uid () const =0 |
virtual gid_t | reduced_gid () const =0 |
virtual bool | is_paludis_package (const QualifiedPackageName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
Mirror information | |
virtual std::tr1::shared_ptr < const MirrorsSequence > | mirrors (const std::string &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
Package sets | |
virtual void | add_set (const SetName &base_name, const SetName &combined_name, const std::tr1::function< std::tr1::shared_ptr< const SetSpecTree >()> &func, const bool combine) const =0 |
virtual std::tr1::shared_ptr < const SetNameSet > | set_names () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
virtual const std::tr1::shared_ptr< const SetSpecTree > | set (const SetName &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
Destination information | |
virtual std::tr1::shared_ptr < const DestinationsSet > | default_destinations () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
Hook methods | |
virtual HookResult | perform_hook (const Hook &) const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
Distribution information | |
virtual std::string | distribution () const PALUDIS_ATTRIBUTE((warn_unused_result))=0 |
World functionality | |
virtual void | add_to_world (const QualifiedPackageName &) const =0 |
virtual void | add_to_world (const SetName &) const =0 |
virtual void | remove_from_world (const QualifiedPackageName &) const =0 |
virtual void | remove_from_world (const SetName &) const =0 |
Specific metadata keys | |
virtual const std::tr1::shared_ptr< const MetadataValueKey< std::string > > | format_key () const =0 |
virtual const std::tr1::shared_ptr< const MetadataValueKey< FSEntry > > | config_location_key () const =0 |
Output management | |
virtual const std::tr1::shared_ptr < OutputManager > | create_output_manager (const CreateOutputManagerInfo &) const =0 |
virtual NotifierCallbackID | add_notifier_callback (const NotifierCallbackFunction &)=0 |
virtual void | remove_notifier_callback (const NotifierCallbackID)=0 |
virtual void | trigger_notifier_callback (const NotifierCallbackEvent &) const =0 |
Contains a PackageDatabase, which in turn contains a number of Repository instances.
Environment itself is purely an interface class. Actual Environment implementations usually descend from EnvironmentImplementation, which provides much of the common implementation details. EnvironmentFactory is often used to create the appropriate Environment subclass for an application.
virtual const Tribool paludis::Environment::want_choice_enabled | ( | const std::tr1::shared_ptr< const PackageID > & | , | |
const std::tr1::shared_ptr< const Choice > & | , | |||
const UnprefixedChoiceName & | ||||
) | const [pure virtual] |
Do we want a choice enabled for a particular package?
Only for use by Repository, to get defaults from the environment. Clients should query the metadata key directly.
The third parameter is the name of the value, which might not have been created yet.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual const std::string paludis::Environment::value_for_choice_parameter | ( | const std::tr1::shared_ptr< const PackageID > & | , | |
const std::tr1::shared_ptr< const Choice > & | , | |||
const UnprefixedChoiceName & | ||||
) | const [pure virtual] |
What string value, if any, is set for the parameter for a particular choice for a particular package?
There is no difference between "not set" and "set to an empty string".
Only for use by Repository, to get defaults from the environment. Clients should query the metadata key directly.
The third parameter is the name of the value, which might not have been created yet.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual std::tr1::shared_ptr<const Set<UnprefixedChoiceName> > paludis::Environment::known_choice_value_names | ( | const std::tr1::shared_ptr< const PackageID > & | , | |
const std::tr1::shared_ptr< const Choice > & | ||||
) | const [pure virtual] |
Return a collection of known value names for a particular choice.
Only for use by Repository, to get defaults from the environment. Clients should query the metadata key directly.
This is to deal with cases like USE_EXPAND values, where the repository doesn't know all possible values.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual bool paludis::Environment::accept_license | ( | const std::string & | , | |
const PackageID & | ||||
) | const [pure virtual] |
Do we accept a particular license for a particular package?
Used by PackageID implementations. Generally PackageID's masks methods should be used rather than calling this directly.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual bool paludis::Environment::accept_keywords | ( | const std::tr1::shared_ptr< const KeywordNameSet > & | , | |
const PackageID & | ||||
) | const [pure virtual] |
Do we accept any of the specified keywords for a particular package?
If the collection includes "*", should return true.
Used by PackageID implementations. Generally PackageID's masks methods should be used rather than calling this directly.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual const std::tr1::shared_ptr<const Mask> paludis::Environment::mask_for_breakage | ( | const PackageID & | ) | const [pure virtual] |
Do we have a 'breaks' mask for a particular package?
Returns a zero pointer if no.
Used by PackageID implementations. Generally PackageID's masks methods should be used rather than calling this directly.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual const std::tr1::shared_ptr<const Mask> paludis::Environment::mask_for_user | ( | const PackageID & | , | |
const bool | will_be_used_for_overridden | |||
) | const [pure virtual] |
Do we have a 'user' mask for a particular package?
Returns a zero pointer if no.
If the second parameter is true, return a Mask suitable for being added to an OverriddenMask.
Used by PackageID implementations. Generally PackageID's masks methods should be used rather than calling this directly.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual bool paludis::Environment::unmasked_by_user | ( | const PackageID & | ) | const [pure virtual] |
Do we have a user unmask for a particular package?
This is only applied to repository and profile style masks, not keywords, licences etc. If true, user_mask shouldn't be used.
Used by PackageID implementations. Generally PackageID's masks methods should be used rather than calling this directly.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual std::tr1::shared_ptr<PackageIDSequence> paludis::Environment::operator[] | ( | const Selection & | ) | const [pure virtual] |
Select some packages.
Implemented in paludis::EnvironmentImplementation.
virtual std::tr1::shared_ptr<const FSEntrySequence> paludis::Environment::bashrc_files | ( | ) | const [pure virtual] |
Return a collection of bashrc files to be used by the various components that are implemented in bash.
Implemented in paludis::EnvironmentImplementation.
virtual std::tr1::shared_ptr<const FSEntrySequence> paludis::Environment::syncers_dirs | ( | ) | const [pure virtual] |
Return directories to search for syncer scripts.
Implemented in paludis::EnvironmentImplementation.
virtual std::tr1::shared_ptr<const FSEntrySequence> paludis::Environment::fetchers_dirs | ( | ) | const [pure virtual] |
Return directories to search for fetcher scripts.
Implemented in paludis::EnvironmentImplementation.
virtual std::tr1::shared_ptr<const FSEntrySequence> paludis::Environment::hook_dirs | ( | ) | const [pure virtual] |
Return directories to search for hooks.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual std::string paludis::Environment::paludis_command | ( | ) | const [pure virtual] |
Return the command used to launch paludis (the client).
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual void paludis::Environment::set_paludis_command | ( | const std::string & | ) | [pure virtual] |
Change the command used to launch paludis (the client).
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual const FSEntry paludis::Environment::root | ( | ) | const [pure virtual] |
Our root location for installs.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual uid_t paludis::Environment::reduced_uid | ( | ) | const [pure virtual] |
User id to use when reduced privs are permissible.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual gid_t paludis::Environment::reduced_gid | ( | ) | const [pure virtual] |
Group id to use when reduced privs are permissible.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual bool paludis::Environment::is_paludis_package | ( | const QualifiedPackageName & | ) | const [pure virtual] |
Is the specified package Paludis?
Used by InstallTask to decide whether to exec() after installing a package.
Implemented in paludis::EnvironmentImplementation.
virtual std::tr1::shared_ptr<const MirrorsSequence> paludis::Environment::mirrors | ( | const std::string & | ) | const [pure virtual] |
Return the mirror URI prefixes for a named mirror.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual void paludis::Environment::add_set | ( | const SetName & | base_name, | |
const SetName & | combined_name, | |||
const std::tr1::function< std::tr1::shared_ptr< const SetSpecTree >()> & | func, | |||
const bool | combine | |||
) | const [pure virtual] |
Add a package set.
Generally called by repositories, when Repository::populate_sets is called.
base_name | The basic name of the set, such as 'security'. | |
combined_name | The name to use for this set when combine is true, such as 'security.myrepo'. If combine is false, should be the same as base_name. | |
func | A function that returns the set. | |
combine | If true, rename the set from foo to foo.reponame, and make the foo set contain foo.reponame, along with any other repositories' sets named foo. If false, throw if the set already exists. |
Implemented in paludis::EnvironmentImplementation.
virtual std::tr1::shared_ptr<const SetNameSet> paludis::Environment::set_names | ( | ) | const [pure virtual] |
Return all known named sets.
Implemented in paludis::EnvironmentImplementation.
virtual const std::tr1::shared_ptr<const SetSpecTree> paludis::Environment::set | ( | const SetName & | ) | const [pure virtual] |
Return a named set.
If the named set is not known, returns a zero pointer.
Implemented in paludis::EnvironmentImplementation.
virtual std::tr1::shared_ptr<const DestinationsSet> paludis::Environment::default_destinations | ( | ) | const [pure virtual] |
Default destination candidates for installing packages.
Implemented in paludis::EnvironmentImplementation.
virtual HookResult paludis::Environment::perform_hook | ( | const Hook & | ) | const [pure virtual] |
Perform a hook.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual void paludis::Environment::add_to_world | ( | const QualifiedPackageName & | ) | const [pure virtual] |
Add this package to world.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual void paludis::Environment::add_to_world | ( | const SetName & | ) | const [pure virtual] |
Add this set to world.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual void paludis::Environment::remove_from_world | ( | const QualifiedPackageName & | ) | const [pure virtual] |
Remove this package from world, if it is present.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual void paludis::Environment::remove_from_world | ( | const SetName & | ) | const [pure virtual] |
Remove this set from world, if it is present.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > paludis::Environment::format_key | ( | ) | const [pure virtual] |
The format_key, if non-zero, holds our environment's format. Environment implementations should not return zero here, but clients should still check.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > paludis::Environment::config_location_key | ( | ) | const [pure virtual] |
The config_location_key, if non-zero, specifies the location of the configuration file or directory, the contents of which depends on the format returned by format_key.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual const std::tr1::shared_ptr<OutputManager> paludis::Environment::create_output_manager | ( | const CreateOutputManagerInfo & | ) | const [pure virtual] |
Create an output manager.
Implemented in paludis::NoConfigEnvironment, and paludis::TestEnvironment.
virtual NotifierCallbackID paludis::Environment::add_notifier_callback | ( | const NotifierCallbackFunction & | ) | [pure virtual] |
Set a callback function to use when a particular event occurs.
The return value can be passed to remove_notifier_callback.
Implemented in paludis::EnvironmentImplementation.
virtual void paludis::Environment::remove_notifier_callback | ( | const | NotifierCallbackID | ) | [pure virtual] |
Remove a function added with add_notifier_callback.
Implemented in paludis::EnvironmentImplementation.
virtual void paludis::Environment::trigger_notifier_callback | ( | const NotifierCallbackEvent & | ) | const [pure virtual] |