paludis::Environment Class Reference
[Environment]

#include <environment.hh>

Inheritance diagram for paludis::Environment:

paludis::MetadataKeyHolder paludis::PrivateImplementationPattern< C_ > paludis::EnvironmentImplementation paludis::NoConfigEnvironment paludis::TestEnvironment

List of all members.

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


Detailed Description

Represents a working environment, which contains an available packages database and provides various methods for querying package visibility and options.

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.

See also:
PackageDatabase

EnvironmentFactory

EnvironmentImplementation


Member Function Documentation

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.

Since:
0.40

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.

Parameters:
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.
Since:
0.40

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.

Since:
0.36

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.

Since:
0.40

Implemented in paludis::EnvironmentImplementation.

virtual void paludis::Environment::remove_notifier_callback ( const   NotifierCallbackID  )  [pure virtual]

Remove a function added with add_notifier_callback.

Since:
0.40

Implemented in paludis::EnvironmentImplementation.

virtual void paludis::Environment::trigger_notifier_callback ( const NotifierCallbackEvent &   )  const [pure virtual]

Trigger a notifier callback.

Since:
0.40

Implemented in paludis::EnvironmentImplementation.


The documentation for this class was generated from the following file:
Generated on Mon Sep 21 10:36:10 2009 for paludis by  doxygen 1.5.4