zypp::RepoInfo Class Reference

What is known about a repository. More...

#include <RepoInfo.h>

Inheritance diagram for zypp::RepoInfo:
[legend]

List of all members.

Classes

struct  Impl
 RepoInfo implementation. More...

Public Types

typedef std::set< Urlurl_set
typedef url_set::size_type urls_size_type
typedef transform_iterator
< repo::RepoVariablesUrlReplacer,
url_set::const_iterator > 
urls_const_iterator

Public Member Functions

 RepoInfo ()
virtual ~RepoInfo ()
unsigned priority () const
 Repository priority for solver.
void setPriority (unsigned newval_r)
 Set repository priority for solver.
bool baseUrlsEmpty () const
 whether repository urls are available
urls_size_type baseUrlsSize () const
 number of repository urls
urls_const_iterator baseUrlsBegin () const
 iterator that points at begin of repository urls
urls_const_iterator baseUrlsEnd () const
 iterator that points at end of repository urls
Url url () const
 Pars pro toto: The first repository url.
std::set< UrlbaseUrls () const
 A Url under which the metadata are located, or a set of mirrors.
void addBaseUrl (const Url &url)
 Add a base url.
void setBaseUrl (const Url &url)
 Clears current base URL list and adds url.
Pathname path () const
 Repository path.
void setPath (const Pathname &path)
 set the product path.
Url mirrorListUrl () const
 Url of a file which contains a list of Urls If empty, the base url will be used.
void setMirrorListUrl (const Url &url)
 Set mirror list url.
repo::RepoType type () const
 Type of repository,.
void setProbedType (const repo::RepoType &t) const
 This allows to adjust the RepoType lazy, from NONE to some probed value, even for const objects.
void setType (const repo::RepoType &t)
 set the repository type
Pathname metadataPath () const
 Path where this repo metadata was read from.
void setMetadataPath (const Pathname &path)
 set the path where the local metadata is stored
Pathname packagesPath () const
 Path where this repo packages are cached.
void setPackagesPath (const Pathname &path)
 set the path where the local packages are stored
bool gpgCheck () const
 Whether to check or not this repository with gpg.
void setGpgCheck (bool check)
 Whether to check or not this repository with gpg.
Url gpgKeyUrl () const
 Key to use for gpg checking of this repository.
void setGpgKeyUrl (const Url &gpgkey)
 Key to use for gpg checking of this repository.
bool keepPackages () const
 Whether to keep the packages downloaded from this repository will be kept in local cache.
void setKeepPackages (bool keep)
 Set if the packaqes downloaded from this repository will be kept in local cache.
std::string service () const
 Gets name of the service to which this repository belongs or empty string if it has been added manually.
void setService (const std::string &name)
 sets service which added this repository
std::string targetDistribution () const
 Distribution for which is this repository meant.
void setTargetDistribution (const std::string &targetDistribution)
 Sets the distribution for which is this repository meant.
virtual std::ostream & dumpOn (std::ostream &str) const
 Write a human-readable representation of this RepoInfo object into the str stream.
virtual std::ostream & dumpAsIniOn (std::ostream &str) const
 Write this RepoInfo object into str in a

.repo file format.

virtual std::ostream & dumpAsXMLOn (std::ostream &str) const
 Write an XML representation of this RepoInfo object.
virtual std::ostream & dumpAsXMLOn (std::ostream &str, const std::string &content) const
 Write an XML representation of this RepoInfo object.
Repository license
bool hasLicense () const
 Whether there is a license associated with the repo.
std::string getLicense (const Locale &lang_r=Locale())
 Return the best license for the current (or a specified) locale.
LocaleSet getLicenseLocales () const
 Return the locales the license is available for.

Static Public Member Functions

static unsigned defaultPriority ()
 The default priority (99).

Static Public Attributes

static const RepoInfo noRepo
 Represents no Repository (one with an empty alias).

Private Attributes

RWCOW_pointer< Impl_pimpl
 Pointer to implementation.

Friends

std::ostream & operator<< (std::ostream &str, const RepoInfo &obj)

Related Functions

(Note that these are not member functions.)

typedef shared_ptr< RepoInfoRepoInfo_Ptr
typedef shared_ptr< const
RepoInfo
RepoInfo_constPtr
typedef std::list< RepoInfoRepoInfoList


Detailed Description

What is known about a repository.

The class RepoInfo represents everything that is known about a software repository.

It can be used to store information about known sources.

This class tries to be compatible with the concept of a .repo file used by YUM and also available in the openSUSE build service. See man yum.conf.

Example file

 [ruby]
 name=Ruby repository (openSUSE_10.2)
 type=rpm-md
 baseurl=http://software.opensuse.org/download/ruby/openSUSE_10.2/
 gpgcheck=1
 gpgkey=http://software.opensuse.org/openSUSE-Build-Service.asc
 enabled=1
 priority=10

Note:
A RepoInfo is a hint about how to create a Repository.

Definition at line 66 of file RepoInfo.h.


Member Typedef Documentation

typedef std::set<Url> zypp::RepoInfo::url_set

Definition at line 94 of file RepoInfo.h.

typedef url_set::size_type zypp::RepoInfo::urls_size_type

Definition at line 95 of file RepoInfo.h.

typedef transform_iterator<repo::RepoVariablesUrlReplacer, url_set::const_iterator> zypp::RepoInfo::urls_const_iterator

Definition at line 96 of file RepoInfo.h.


Constructor & Destructor Documentation

zypp::RepoInfo::RepoInfo (  ) 

Definition at line 107 of file RepoInfo.cc.

zypp::RepoInfo::~RepoInfo (  )  [virtual]

Definition at line 116 of file RepoInfo.cc.


Member Function Documentation

unsigned zypp::RepoInfo::defaultPriority (  )  [static]

The default priority (99).

Definition at line 123 of file RepoInfo.cc.

References zypp::RepoInfo::Impl::defaultPriority.

Referenced by dumpAsIniOn().

unsigned zypp::RepoInfo::priority (  )  const

Repository priority for solver.

Some number between 1 (highest priority) and 99 (defaultPriority).

Definition at line 121 of file RepoInfo.cc.

References _pimpl.

Referenced by dumpAsIniOn(), dumpAsXMLOn(), dumpOn(), zypp::solver::detail::HelixControl::HelixControl(), and zypp::sat::detail::PoolImpl::setRepoInfo().

void zypp::RepoInfo::setPriority ( unsigned  newval_r  ) 

Set repository priority for solver.

A newval_r of 0 sets the default priority.

See also:
priority.

Definition at line 125 of file RepoInfo.cc.

References _pimpl, and zypp::RepoInfo::Impl::defaultPriority.

Referenced by zypp::parser::RepoindexFileReader::Impl::consumeNode(), and zypp::parser::repositories_in_stream().

bool zypp::RepoInfo::baseUrlsEmpty (  )  const

RepoInfo::urls_size_type zypp::RepoInfo::baseUrlsSize (  )  const

number of repository urls

Definition at line 252 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::RepoManager::addRepository().

RepoInfo::urls_const_iterator zypp::RepoInfo::baseUrlsBegin (  )  const

RepoInfo::urls_const_iterator zypp::RepoInfo::baseUrlsEnd (  )  const

Url zypp::RepoInfo::url (  )  const [inline]

Pars pro toto: The first repository url.

Definition at line 116 of file RepoInfo.h.

References baseUrlsBegin(), and baseUrlsEmpty().

Referenced by zypp::misc::defaultLoadSystem(), zypp::repo::RepoException::dumpOn(), and zypp::sat::detail::PoolImpl::setRepoInfo().

std::set< Url > zypp::RepoInfo::baseUrls (  )  const

A Url under which the metadata are located, or a set of mirrors.

This can't be empty in order the repository to be valid unless the download of the mirror list succeeds and it contains a valid url.

Deprecated:
IMO superfluous as we provide begin/end iterator.

Definition at line 214 of file RepoInfo.cc.

References _pimpl.

void zypp::RepoInfo::addBaseUrl ( const Url url  ) 

Add a base url.

See also:
baseUrls
Parameters:
url The base url for the repository.
Note:
can change keepPackages,so change it after this call
To recreate the base URLs list, use setBaseUrl(const Url &) followed by addBaseUrl().

Definition at line 145 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::repositories_in_stream(), and setBaseUrl().

void zypp::RepoInfo::setBaseUrl ( const Url url  ) 

Clears current base URL list and adds url.

Note:
can change keepPackages,so change it after this call

Definition at line 150 of file RepoInfo.cc.

References _pimpl, and addBaseUrl().

Referenced by zypp::parser::RepoindexFileReader::Impl::consumeNode(), and zypp::RepoManager::getRepositoryInfo().

Pathname zypp::RepoInfo::path (  )  const

Repository path.

Pathname relative to the base Url where the product/repository is located

For media containing more than one product, or repositories not located at the root of the media it is important to know the path to the product directory relative to the media root. So a media verifier can be set for that media. You may also read it as baseUrl = url to mount and path = path on the mounted media.

It is not mandatory, and the default is /.

Note:
As a repository can have multiple Urls, the path is unique and the same for all Urls, so it is assumed all the Urls have the same media layout.

Definition at line 229 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::RepoManager::addRepository(), zypp::RepoManager::buildCache(), zypp::RepoManager::checkIfToRefreshMetadata(), zypp::repo::yum::Downloader::download(), zypp::repo::susetags::Downloader::download(), dumpAsIniOn(), dumpOn(), zypp::solver::detail::HelixControl::HelixControl(), zypp::rawproductdata_path_for_repoinfo(), and zypp::RepoManager::refreshMetadata().

void zypp::RepoInfo::setPath ( const Pathname &  path  ) 

set the product path.

See also:
path()
Parameters:
path the path to the product

Definition at line 156 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::RepoindexFileReader::Impl::consumeNode(), and zypp::parser::repositories_in_stream().

Url zypp::RepoInfo::mirrorListUrl (  )  const

Url of a file which contains a list of Urls If empty, the base url will be used.

Definition at line 208 of file RepoInfo.cc.

References _pimpl.

Referenced by dumpAsXMLOn().

void zypp::RepoInfo::setMirrorListUrl ( const Url url  ) 

Set mirror list url.

See also:
mirrorListUrl
Parameters:
url The base url for the list

Definition at line 135 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::repositories_in_stream().

repo::RepoType zypp::RepoInfo::type (  )  const

void zypp::RepoInfo::setProbedType ( const repo::RepoType t  )  const

This allows to adjust the RepoType lazy, from NONE to some probed value, even for const objects.

This is a NOOP if the current type is not NONE.

Definition at line 166 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::sat::Solvable::lookupLocation(), and zypp::RepoManager::refreshMetadata().

void zypp::RepoInfo::setType ( const repo::RepoType t  ) 

Pathname zypp::RepoInfo::metadataPath (  )  const

Path where this repo metadata was read from.

Note:
could be an empty pathname for repo infos created in memory.

Definition at line 199 of file RepoInfo.cc.

References _pimpl.

Referenced by dumpOn(), and zypp::repo::RepoMediaAccess::Impl::setVerifierForRepo().

void zypp::RepoInfo::setMetadataPath ( const Pathname &  path  ) 

set the path where the local metadata is stored

The path to the metadata of this repository was defined, or empty if nowhere.

Parameters:
path directory path

Definition at line 170 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::RepoManager::addRepository().

Pathname zypp::RepoInfo::packagesPath (  )  const

Path where this repo packages are cached.

Definition at line 202 of file RepoInfo.cc.

References _pimpl.

Referenced by dumpOn(), zypp::repo::RepoMediaAccess::provideFile(), and zypp::repo::PackageProvider::providePackage().

void zypp::RepoInfo::setPackagesPath ( const Pathname &  path  ) 

set the path where the local packages are stored

Parameters:
path directory path

Definition at line 175 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::RepoManager::addRepository().

bool zypp::RepoInfo::gpgCheck (  )  const

Whether to check or not this repository with gpg.

Note:
This is a just a hint to the application and can be ignored.

Definition at line 196 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::repo::yum::Downloader::download(), dumpAsIniOn(), dumpAsXMLOn(), and dumpOn().

void zypp::RepoInfo::setGpgCheck ( bool  check  ) 

Whether to check or not this repository with gpg.

Parameters:
check true (check) or false (dont'check)
Note:
This is a just a hint to the application and can be ignored.

Definition at line 130 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::repositories_in_stream().

Url zypp::RepoInfo::gpgKeyUrl (  )  const

Key to use for gpg checking of this repository.

Parameters:
url Url to the key in ASCII armored format
Note:
This is a just a hint to the application and can be ignored.

Definition at line 211 of file RepoInfo.cc.

References _pimpl.

Referenced by dumpAsIniOn(), dumpAsXMLOn(), and dumpOn().

void zypp::RepoInfo::setGpgKeyUrl ( const Url gpgkey  ) 

Key to use for gpg checking of this repository.

Parameters:
url Url to the key in ASCII armored format
Note:
This is a just a hint to the application and can be ignored.

Definition at line 140 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::repositories_in_stream().

bool zypp::RepoInfo::keepPackages (  )  const

Whether to keep the packages downloaded from this repository will be kept in local cache.

Definition at line 259 of file RepoInfo.cc.

References _pimpl, and baseUrlsBegin().

Referenced by dumpAsIniOn(), dumpOn(), zypp::repo::RepoMediaAccess::provideFile(), and zypp::repo::PackageProvider::providePackage().

void zypp::RepoInfo::setKeepPackages ( bool  keep  ) 

Set if the packaqes downloaded from this repository will be kept in local cache.

If the setting is true, all downloaded packages from this repository will be copied to the local raw cache.

Parameters:
keep true (keep the downloaded packages) or false (delete them after installation)

Definition at line 180 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::repositories_in_stream().

std::string zypp::RepoInfo::service (  )  const

Gets name of the service to which this repository belongs or empty string if it has been added manually.

Definition at line 232 of file RepoInfo.cc.

References _pimpl.

Referenced by dumpAsIniOn(), dumpOn(), and zypp::RepoManager::MatchServiceAlias::operator()().

void zypp::RepoInfo::setService ( const std::string &  name  ) 

sets service which added this repository

Definition at line 185 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::repositories_in_stream().

std::string zypp::RepoInfo::targetDistribution (  )  const

Distribution for which is this repository meant.

Definition at line 235 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::RepoCollector::collect(), and dumpOn().

void zypp::RepoInfo::setTargetDistribution ( const std::string &  targetDistribution  ) 

Sets the distribution for which is this repository meant.

This is an in-memory value only, does not get written to the .repo file upon saving.

Definition at line 190 of file RepoInfo.cc.

References _pimpl.

Referenced by zypp::parser::RepoindexFileReader::Impl::consumeNode().

bool zypp::RepoInfo::hasLicense (  )  const

Whether there is a license associated with the repo.

Definition at line 276 of file RepoInfo.cc.

References _pimpl, and SEC.

std::string zypp::RepoInfo::getLicense ( const Locale lang_r = Locale()  ) 

LocaleSet zypp::RepoInfo::getLicenseLocales (  )  const

Return the locales the license is available for.

Locale::noCode is included in case of license.txt which does not specify a specific locale.

Definition at line 327 of file RepoInfo.cc.

References _pimpl, zypp::ExternalProgram::close(), zypp::str::hasPrefix(), zypp::str::hasSuffix(), zypp::externalprogram::ExternalDataSource::receiveLine(), zypp::C_Str::size(), zypp::ExternalProgram::Stderr_To_Stdout, and WAR.

Referenced by getLicense().

std::ostream & zypp::RepoInfo::dumpOn ( std::ostream &  str  )  const [virtual]

Write a human-readable representation of this RepoInfo object into the str stream.

Useful for logging.

Reimplemented from zypp::repo::RepoInfoBase.

Definition at line 364 of file RepoInfo.cc.

References baseUrlsBegin(), baseUrlsEnd(), gpgCheck(), gpgKeyUrl(), keepPackages(), metadataPath(), packagesPath(), path(), priority(), service(), targetDistribution(), and type().

Referenced by zypp::operator<<().

std::ostream & zypp::RepoInfo::dumpAsIniOn ( std::ostream &  str  )  const [virtual]

std::ostream & zypp::RepoInfo::dumpAsXMLOn ( std::ostream &  str  )  const [virtual]

Write an XML representation of this RepoInfo object.

Reimplemented from zypp::repo::RepoInfoBase.

Definition at line 432 of file RepoInfo.cc.

std::ostream & zypp::RepoInfo::dumpAsXMLOn ( std::ostream &  str,
const std::string &  content 
) const [virtual]


Friends And Related Function Documentation

typedef shared_ptr<RepoInfo> RepoInfo_Ptr [related]

Definition at line 361 of file RepoInfo.h.

typedef shared_ptr<const RepoInfo> RepoInfo_constPtr [related]

Definition at line 363 of file RepoInfo.h.

typedef std::list<RepoInfo> RepoInfoList [related]

Definition at line 365 of file RepoInfo.h.

std::ostream & operator<< ( std::ostream &  str,
const RepoInfo obj 
) [friend]

Stream output

Definition at line 464 of file RepoInfo.cc.


Member Data Documentation

Represents no Repository (one with an empty alias).

Definition at line 75 of file RepoInfo.h.

Referenced by zypp::RepoManager::getRepo().


The documentation for this class was generated from the following files:

doxygen