paludis::Repository Class Reference
[Repository]

#include <repository.hh>

Inheritance diagram for paludis::Repository:

paludis::PrivateImplementationPattern< C_ > paludis::RepositoryCapabilities paludis::MetadataKeyHolder paludis::PrivateImplementationPattern< C_ > paludis::FakeRepositoryBase paludis::FakeInstalledRepository paludis::FakeRepository

List of all members.

Basic operations

 Repository (const Environment *const, const RepositoryName &, const RepositoryCapabilities &)

Basic operations

virtual ~Repository ()

Repository information

const RepositoryName name () const PALUDIS_ATTRIBUTE((nothrow)) PALUDIS_ATTRIBUTE((warn_unused_result))
virtual bool can_be_favourite_repository () const

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 > > 
location_key () const =0
virtual const
std::tr1::shared_ptr< const
MetadataValueKey< FSEntry > > 
installed_root_key () const =0

Repository content queries

virtual bool has_category_named (const CategoryNamePart &c) const =0
virtual bool has_package_named (const QualifiedPackageName &q) const =0
virtual std::tr1::shared_ptr
< const CategoryNamePartSet
category_names () const =0
virtual std::tr1::shared_ptr
< const CategoryNamePartSet
unimportant_category_names () const
virtual std::tr1::shared_ptr
< const CategoryNamePartSet
category_names_containing_package (const PackageNamePart &p) const
virtual std::tr1::shared_ptr
< const
QualifiedPackageNameSet
package_names (const CategoryNamePart &c) const =0
virtual std::tr1::shared_ptr
< const PackageIDSequence
package_ids (const QualifiedPackageName &p) const =0
virtual bool some_ids_might_support_action (const SupportsActionTestBase &) const =0

Repository behaviour methods

virtual void invalidate ()=0
virtual void invalidate_masks ()=0
virtual void regenerate_cache () const
virtual void purge_invalid_cache () const

Set methods

virtual void populate_sets () const =0


Detailed Description

A Repository provides a representation of a physical repository to a PackageDatabase.

Member Function Documentation

const RepositoryName paludis::Repository::name (  )  const

Return our name.

virtual bool paludis::Repository::can_be_favourite_repository (  )  const [virtual]

Are we allowed to be favourite repository?

virtual const std::tr1::shared_ptr<const MetadataValueKey<std::string> > paludis::Repository::format_key (  )  const [pure virtual]

The format_key, if non-zero, holds our repository's format. Repository implementations should not return zero here, but clients should still check.

Implemented in paludis::FakeInstalledRepository, and paludis::FakeRepository.

virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > paludis::Repository::location_key (  )  const [pure virtual]

The location_key, if non-zero, holds the file or directory containing our repository's data, the format of which depends on the value of format_key.

Implemented in paludis::FakeInstalledRepository, and paludis::FakeRepository.

virtual const std::tr1::shared_ptr<const MetadataValueKey<FSEntry> > paludis::Repository::installed_root_key (  )  const [pure virtual]

The installed_root_key, if non-zero, specifies that we contain installed packages at the specified root.

This key is currently used in various places to determine whether a repository is an 'installed' repository or not.

Implemented in paludis::FakeInstalledRepository, and paludis::FakeRepository.

virtual bool paludis::Repository::has_category_named ( const CategoryNamePart c  )  const [pure virtual]

Do we have a category with the given name?

Implemented in paludis::FakeRepositoryBase.

virtual bool paludis::Repository::has_package_named ( const QualifiedPackageName q  )  const [pure virtual]

Do we have a package in the given category with the given name?

Implemented in paludis::FakeRepositoryBase.

virtual std::tr1::shared_ptr<const CategoryNamePartSet> paludis::Repository::category_names (  )  const [pure virtual]

Fetch our category names.

Implemented in paludis::FakeRepositoryBase.

virtual std::tr1::shared_ptr<const CategoryNamePartSet> paludis::Repository::unimportant_category_names (  )  const [virtual]

Fetch unimportant categories.

virtual std::tr1::shared_ptr<const CategoryNamePartSet> paludis::Repository::category_names_containing_package ( const PackageNamePart p  )  const [virtual]

Fetch categories that contain a named package.

virtual std::tr1::shared_ptr<const QualifiedPackageNameSet> paludis::Repository::package_names ( const CategoryNamePart c  )  const [pure virtual]

Fetch our package names.

Implemented in paludis::FakeRepositoryBase.

virtual std::tr1::shared_ptr<const PackageIDSequence> paludis::Repository::package_ids ( const QualifiedPackageName p  )  const [pure virtual]

Fetch our IDs.

Implemented in paludis::FakeRepositoryBase.

virtual bool paludis::Repository::some_ids_might_support_action ( const SupportsActionTestBase  )  const [pure virtual]

Might some of our IDs support a particular action?

Used to optimise PackageDatabase::query. If a repository doesn't support, say, InstallAction, a query can skip searching it entirely when looking for installable packages.

Implemented in paludis::FakeInstalledRepository, and paludis::FakeRepository.

virtual void paludis::Repository::invalidate (  )  [pure virtual]

Invalidate any in memory cache.

Implemented in paludis::FakeRepositoryBase.

virtual void paludis::Repository::invalidate_masks (  )  [pure virtual]

Invalidate cached masks.

Implemented in paludis::FakeRepositoryBase.

virtual void paludis::Repository::regenerate_cache (  )  const [virtual]

Regenerate any on disk cache.

virtual void paludis::Repository::purge_invalid_cache (  )  const [virtual]

Purge any invalid on-disk cache entries.

virtual void paludis::Repository::populate_sets (  )  const [pure virtual]

Call Environment::add_set for every set we define.

Environment will call this method at most once, so no cache or check for repeats is required. Nothing else should call this method.

Since:
0.40

Implemented in paludis::FakeRepositoryBase.


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