libzypp: zypp::RepoManager Class Reference

libzypp 17.38.11

zypp::RepoManager Class Reference

creates and provides information about known sources. More...

`#include <zypp/RepoManager.h>`

## Classes
struct | MatchServiceAlias
| Functor thats filter RepoInfo by service which it belongs to. More...
class | Impl
| RepoManager implementation. More...

## Public Types
using | ServiceSet = std::set<ServiceInfo>
| ServiceInfo typedefs.
using | ServiceConstIterator = ServiceSet::const_iterator
using | ServiceSizeType = ServiceSet::size_type
using | RepoSet = std::set<RepoInfo>
| RepoInfo typedefs.
using | RepoConstIterator = RepoSet::const_iterator
using | RepoSizeType = RepoSet::size_type
using | RawMetadataRefreshPolicy = RepoManagerFlags::RawMetadataRefreshPolicy
using | CacheBuildPolicy = RepoManagerFlags::CacheBuildPolicy
using | RefreshServiceBit = RepoManagerFlags::RefreshServiceBit
| Flags for tuning RefreshService.
using | RefreshServiceFlags = RepoManagerFlags::RefreshServiceFlags
using | RefreshServiceOptions = RepoManagerFlags::RefreshServiceFlags
| Options tuning RefreshService.

## Public Member Functions
| RepoManager (RepoManagerOptions options=RepoManagerOptions())
| ~RepoManager ()
| Dtor.

## Static Public Attributes
static constexpr RawMetadataRefreshPolicy | RefreshIfNeeded = RepoManagerFlags::RefreshIfNeeded
static constexpr RawMetadataRefreshPolicy | RefreshForced = RepoManagerFlags::RefreshForced
static constexpr RawMetadataRefreshPolicy | RefreshIfNeededIgnoreDelay = RepoManagerFlags::RefreshIfNeededIgnoreDelay
static constexpr CacheBuildPolicy | BuildIfNeeded = CacheBuildPolicy::BuildIfNeeded
static constexpr CacheBuildPolicy | BuildForced = CacheBuildPolicy::BuildForced
static constexpr RefreshServiceBit | RefreshService_restoreStatus = RefreshServiceBit::RefreshService_restoreStatus
static constexpr RefreshServiceBit | RefreshService_forceRefresh = RefreshServiceBit::RefreshService_forceRefresh

## Friends
std::ostream & | operator<< (std::ostream &str, const RepoManager &obj)
| relates: RepoManager Stream output

## Known repositories.
The known repositories are read from RepoManagerOptions::knownReposPath passed on the Ctor. Which defaults to ZYpp global settings.
using | RefreshCheckStatus = RepoManagerFlags::RefreshCheckStatus
static constexpr RefreshCheckStatus | REFRESH_NEEDED = RefreshCheckStatus::REFRESH_NEEDED
| refresh is needed
static constexpr RefreshCheckStatus | REPO_UP_TO_DATE = RefreshCheckStatus::REPO_UP_TO_DATE
| repository not changed
static constexpr RefreshCheckStatus | REPO_CHECK_DELAYED = RefreshCheckStatus::REPO_CHECK_DELAYED
| refresh is delayed due to settings
bool | repoEmpty () const
RepoSizeType | repoSize () const
RepoConstIterator | repoBegin () const
RepoConstIterator | repoEnd () const
Iterable< RepoConstIterator > | repos () const
| Iterate the known repositories.
std::list< RepoInfo > | knownRepositories () const
| List of known repositories.
RepoInfo | getRepo (const std::string &alias) const
| Find RepoInfo by alias or return RepoInfo::noRepo.
RepoInfo | getRepo (const RepoInfo &info_r) const
bool | hasRepo (const std::string &alias) const
| Return whether there is a known repository for `alias`.
bool | hasRepo (const RepoInfo &info_r) const
RepoStatus | metadataStatus (const RepoInfo &info) const
| Status of local metadata.
RefreshCheckStatus | checkIfToRefreshMetadata (const RepoInfo &info, const Url &url, RawMetadataRefreshPolicy policy=RefreshIfNeeded)
| Checks whether to refresh metadata for specified repository and url.
RefreshCheckStatus | checkIfToRefreshMetadata (const RepoInfo &info, const zypp::MirroredOrigin &origin, RawMetadataRefreshPolicy policy=RefreshIfNeeded)
| Overload for checkIfToRefreshMetadata using a zypp::MirroredOrigin to check if to refresh metadata.
Pathname | metadataPath (const RepoInfo &info) const
| Path where the metadata is downloaded and kept.
Pathname | packagesPath (const RepoInfo &info) const
| Path where the rpm packages are downloaded and kept.
void | refreshMetadata (const RepoInfo &info, RawMetadataRefreshPolicy policy=RefreshIfNeeded, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Refresh local raw cache.
void | cleanMetadata (const RepoInfo &info, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Clean local metadata.
void | cleanPackages (const RepoInfo &info, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Clean local package cache.
RepoStatus | cacheStatus (const RepoInfo &info) const
| Status of metadata cache.
void | buildCache (const RepoInfo &info, CacheBuildPolicy policy=BuildIfNeeded, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Refresh local cache.
void | cleanCache (const RepoInfo &info, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| clean local cache
bool | isCached (const RepoInfo &info) const
| Whether a repository exists in cache.
void | loadFromCache (const RepoInfo &info, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Load resolvables into the pool.
void | cleanCacheDirGarbage (const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Remove any subdirectories of cache directories which no longer belong to any of known repositories.
repo::RepoType | probe (const Url &url, const Pathname &path) const
| Probe repo metadata type.
repo::RepoType | probe (const Url &url) const
void | addRepository (const RepoInfo &info, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Adds a repository to the list of known repositories.
void | addRepository (const RepoInfo &info, const TriBool &forcedProbe, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
void | addRepositories (const Url &url, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Adds repositores from a repo file to the list of known repositories.
void | removeRepository (const RepoInfo &info, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Remove the best matching repository from known repos list.
void | modifyRepository (const std::string &alias, const RepoInfo &newinfo, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Modify repository attributes.
void | modifyRepository (const RepoInfo &newinfo, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
RepoInfo | getRepositoryInfo (const std::string &alias, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Find a matching repository info.
RepoInfo | getRepositoryInfo (const Url &url, const url::ViewOption &urlview=url::ViewOption::DEFAULTS, const ProgressData::ReceiverFnc &progressrcv=ProgressData::ReceiverFnc())
| Find repository info by URL.
static std::string | makeStupidAlias (const Url &url_r=Url())
| Some stupid string but suitable as alias for your url if nothing better is available.

## Known services.
The known services are read from RepoManagerOptions::knownServicesPath passed on the Ctor. Which defaults to ZYpp global settings.
RWCOW_pointer< Impl > | _pimpl
| Pointer to implementation.
bool | serviceEmpty () const
| Gets true if no service is in RepoManager (so no one in specified location).
ServiceSizeType | serviceSize () const
| Gets count of service in RepoManager (in specified location).
ServiceConstIterator | serviceBegin () const
| Iterator to first service in internal storage.
ServiceConstIterator | serviceEnd () const
| Iterator to place behind last service in internal storage.
Iterable< ServiceConstIterator > | services () const
| Iterate the known services.
std::list< ServiceInfo > | knownServices () const
| List of known services.
ServiceInfo | getService (const std::string &alias) const
| Finds ServiceInfo by alias or return ServiceInfo::noService.
bool | hasService (const std::string &alias) const
| Return whether there is a known service for `alias`.
repo::ServiceType | probeService (const Url &url) const
| Probe the type or the service.
void | addService (const std::string &alias, const Url &url)
| Adds a new service by its alias and URL.
void | addService (const ServiceInfo &service)
| Adds new service.
void | removeService (const std::string &alias)
| Removes service specified by its name.
void | removeService (const ServiceInfo &service)
void | refreshServices (const RefreshServiceOptions &options_r=RefreshServiceOptions())
| Refreshes all enabled services.
void | refreshService (const std::string &alias, const RefreshServiceOptions &options_r=RefreshServiceOptions())
| Refresh specific service.
void | refreshService (const ServiceInfo &service, const RefreshServiceOptions &options_r=RefreshServiceOptions())
void | modifyService (const std::string &oldAlias, const ServiceInfo &service)
| Modifies service file (rewrites it with new values) and underlying repositories if needed.
void | modifyService (const ServiceInfo &service)
void | refreshGeoIp (const RepoInfo::url_set &urls)
template<typename OutputIterator>
void | getRepositoriesInService (const std::string &alias, OutputIterator out) const
| fill to output iterator repositories in service name.

## Detailed Description

creates and provides information about known sources.

Definition at line 59 of file RepoManager.h.

## Member Typedef Documentation

## ◆ ServiceSet

using zypp::RepoManager::ServiceSet = std::set<ServiceInfo>

ServiceInfo typedefs.

Definition at line 68 of file RepoManager.h.

## ◆ ServiceConstIterator

using zypp::RepoManager::ServiceConstIterator = ServiceSet::const_iterator

Definition at line 69 of file RepoManager.h.

## ◆ ServiceSizeType

using zypp::RepoManager::ServiceSizeType = ServiceSet::size_type

Definition at line 70 of file RepoManager.h.

## ◆ RepoSet

using zypp::RepoManager::RepoSet = std::set<RepoInfo>

RepoInfo typedefs.

Definition at line 73 of file RepoManager.h.

## ◆ RepoConstIterator

using zypp::RepoManager::RepoConstIterator = RepoSet::const_iterator

Definition at line 74 of file RepoManager.h.

## ◆ RepoSizeType

using zypp::RepoManager::RepoSizeType = RepoSet::size_type

Definition at line 75 of file RepoManager.h.

## ◆ RawMetadataRefreshPolicy

using zypp::RepoManager::RawMetadataRefreshPolicy = RepoManagerFlags::RawMetadataRefreshPolicy

Definition at line 82 of file RepoManager.h.

## ◆ CacheBuildPolicy

using zypp::RepoManager::CacheBuildPolicy = RepoManagerFlags::CacheBuildPolicy

Definition at line 87 of file RepoManager.h.

## ◆ RefreshServiceBit

using zypp::RepoManager::RefreshServiceBit = RepoManagerFlags::RefreshServiceBit

Flags for tuning RefreshService.

Definition at line 92 of file RepoManager.h.

## ◆ RefreshServiceFlags

using zypp::RepoManager::RefreshServiceFlags = RepoManagerFlags::RefreshServiceFlags

Definition at line 96 of file RepoManager.h.

## ◆ RefreshServiceOptions

using zypp::RepoManager::RefreshServiceOptions = RepoManagerFlags::RefreshServiceFlags

Options tuning RefreshService.

Definition at line 99 of file RepoManager.h.

## ◆ RefreshCheckStatus

using zypp::RepoManager::RefreshCheckStatus = RepoManagerFlags::RefreshCheckStatus

Definition at line 141 of file RepoManager.h.

## Constructor & Destructor Documentation

## ◆ RepoManager()

zypp::RepoManager::RepoManager | ( | RepoManagerOptions | options = RepoManagerOptions() | ) |

Definition at line 238 of file repomanager.cc.

## ◆ ~RepoManager()

zypp::RepoManager::~RepoManager | ( |  | ) |

Dtor.

Definition at line 86 of file RepoManager.cc.

## Member Function Documentation

## ◆ repoEmpty()

bool zypp::RepoManager::repoEmpty | ( |  | ) | const

Definition at line 89 of file RepoManager.cc.

## ◆ repoSize()

RepoManager::RepoSizeType zypp::RepoManager::repoSize | ( |  | ) | const

Definition at line 92 of file RepoManager.cc.

## ◆ repoBegin()

RepoManager::RepoConstIterator zypp::RepoManager::repoBegin | ( |  | ) | const

Definition at line 95 of file RepoManager.cc.

## ◆ repoEnd()

RepoManager::RepoConstIterator zypp::RepoManager::repoEnd | ( |  | ) | const

Definition at line 98 of file RepoManager.cc.

## ◆ repos()

Iterable< RepoManager::RepoConstIterator > zypp::RepoManager::repos | ( |  | ) | const
| inline

Iterate the known repositories.

Definition at line 671 of file RepoManager.h.

## ◆ knownRepositories()

std::list< RepoInfo > zypp::RepoManager::knownRepositories | ( |  | ) | const
| inline

List of known repositories.

Definition at line 115 of file RepoManager.h.

## ◆ getRepo() [1/2]

RepoInfo zypp::RepoManager::getRepo | ( | const std::string & | alias | ) | const

Find RepoInfo by alias or return RepoInfo::noRepo.

Definition at line 101 of file RepoManager.cc.

## ◆ getRepo() [2/2]

RepoInfo zypp::RepoManager::getRepo | ( | const RepoInfo & | info_r | ) | const
| inline

Definition at line 121 of file RepoManager.h.

## ◆ hasRepo() [1/2]

bool zypp::RepoManager::hasRepo | ( | const std::string & | alias | ) | const

Return whether there is a known repository for `alias`.

Definition at line 104 of file RepoManager.cc.

## ◆ hasRepo() [2/2]

bool zypp::RepoManager::hasRepo | ( | const RepoInfo & | info_r | ) | const
| inline

Definition at line 127 of file RepoManager.h.

## ◆ makeStupidAlias()

std::string zypp::RepoManager::makeStupidAlias | ( | const Url & | url_r = Url() | ) |
| static

Some stupid string but suitable as alias for your url if nothing better is available.

Something like `"http-download.opensuse.org-83df67e5"`

Definition at line 107 of file RepoManager.cc.

## ◆ metadataStatus()

RepoStatus zypp::RepoManager::metadataStatus | ( | const RepoInfo & | info | ) | const

Status of local metadata.

Definition at line 127 of file RepoManager.cc.

## ◆ checkIfToRefreshMetadata() [1/2]

RepoManager::RefreshCheckStatus zypp::RepoManager::checkIfToRefreshMetadata | ( | const RepoInfo & | info,
|  | const Url & | url,
|  | RawMetadataRefreshPolicy | policy = RefreshIfNeeded )

Checks whether to refresh metadata for specified repository and url.

The need for refresh is evaluated according to the following conditions, in that order:

- the refresh policy (refresh may be forced)
- the repo.refresh.delay ZConfig value compared to the difference between cached index file timestamp and actual time
- the timestamp of cached repo index file compared to the remote index file timestamp.

This method checks the status against the specified url only. If more baseurls are defined for in the RepoInfo, each one must be check individually. Example:

``

`RepoInfo info; // try urls one by one for ( RepoInfo::urls_const_iterator it = info.baseUrlsBegin(); it != info.baseUrlsEnd(); ++it ) { try { // check whether to refresh metadata // if the check fails for this url, it throws, so another url will be checked if (checkIfToRefreshMetadata(info, *it, policy)!=RepoInfo::REFRESH_NEEDED) return;`

`// do the actual refresh } catch (const Exception & e) { ZYPP_CAUGHT(e); ERR << *it << " doesn't look good. Trying another url." << endl; } } // for all urls`

`handle("No more URLs.");`

``

Parameters

  info |
  url |
  policy |

Returns
  state of repository

See also
  RefreshCheckStatus

Exceptions

  RepoUnknownTypeException |
  repo::RepoNoAliasException | if can't figure an alias
  Exception | on unknown error

Definition at line 133 of file RepoManager.cc.

## ◆ checkIfToRefreshMetadata() [2/2]

RepoManager::RefreshCheckStatus zypp::RepoManager::checkIfToRefreshMetadata | ( | const RepoInfo & | info,
|  | const zypp::MirroredOrigin & | origin,
|  | RawMetadataRefreshPolicy | policy = RefreshIfNeeded )

Overload for checkIfToRefreshMetadata using a zypp::MirroredOrigin to check if to refresh metadata.

See also
  RepoInfo::repoOrigins

Definition at line 130 of file RepoManager.cc.

## ◆ metadataPath()

Pathname zypp::RepoManager::metadataPath | ( | const RepoInfo & | info | ) | const

Path where the metadata is downloaded and kept.

Given a repoinfo, tells where RepoManager will download and keep the raw metadata.

Parameters

  info | Repository information

Exceptions

  repo::RepoNoAliasException | if can't figure an alias

Definition at line 136 of file RepoManager.cc.

## ◆ packagesPath()

Pathname zypp::RepoManager::packagesPath | ( | const RepoInfo & | info | ) | const

Path where the rpm packages are downloaded and kept.

Given a repoinfo, tells where RepoProvidePackage will download and keep the .rpm files.

Parameters

  info | Repository information

Exceptions

  repo::RepoNoAliasException | if can't figure an alias

Definition at line 139 of file RepoManager.cc.

## ◆ refreshMetadata()

void zypp::RepoManager::refreshMetadata | ( | const RepoInfo & | info,
|  | RawMetadataRefreshPolicy | policy = RefreshIfNeeded,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Refresh local raw cache.

Will try to download the metadata

In case of falure the metadata remains as it was before.

Exceptions

  repo::RepoNoUrlException | if no urls are available.
  repo::RepoNoAliasException | if can't figure an alias
  repo::RepoUnknownTypeException | if the metadata is unknown
  repo::RepoNoPermissionException | if the user has no permission to update(write) the caches
  repo::RepoException | if the repository is invalid (no valid metadata found at any of baseurls)

Definition at line 142 of file RepoManager.cc.

## ◆ cleanMetadata()

void zypp::RepoManager::cleanMetadata | ( | const RepoInfo & | info,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Clean local metadata.

Empty local metadata.

Exceptions

  repo::RepoNoAliasException | if can't figure an alias
  Exception | on unknown error.

Definition at line 149 of file RepoManager.cc.

## ◆ cleanPackages()

void zypp::RepoManager::cleanPackages | ( | const RepoInfo & | info,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Clean local package cache.

Empty local directory with downloaded packages

Exceptions

  repo::RepoNoAliasException | if can't figure an alias
  Exception | on unknown error.

Definition at line 152 of file RepoManager.cc.

## ◆ cacheStatus()

RepoStatus zypp::RepoManager::cacheStatus | ( | const RepoInfo & | info | ) | const

Status of metadata cache.

Definition at line 155 of file RepoManager.cc.

## ◆ buildCache()

void zypp::RepoManager::buildCache | ( | const RepoInfo & | info,
|  | CacheBuildPolicy | policy = BuildIfNeeded,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Refresh local cache.

Will try to build the cache from local metadata.

If the cache exists it will be overwriten.

Note
  the local metadata must be valid.

Exceptions

  repo::RepoNoAliasException | if can't figure an alias to look in cache
  repo::RepoMetadataException | if the metadata is not enough to build a cache (empty, incorrect, or refresh needed)
  repo::RepoNoPermissionException | if the user has no permission to update(write) the caches
  repo::RepoUnknownTypeException |
  parser::ParseException | if parser encounters an error.
  Exception | on unknown error.

Definition at line 158 of file RepoManager.cc.

## ◆ cleanCache()

void zypp::RepoManager::cleanCache | ( | const RepoInfo & | info,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

clean local cache

Clean the cached version of the metadata

Note
  the local metadata must be valid.

Exceptions

  repo::RepoNoAliasException | if can't figure an alias to look in cache
  cache::CacheRecordNotFoundException | if the cache could not be cleaned because of repository record not found.
  Exception | on unknown error.

Definition at line 165 of file RepoManager.cc.

## ◆ isCached()

bool zypp::RepoManager::isCached | ( | const RepoInfo & | info | ) | const

Whether a repository exists in cache.

Parameters

  RepoInfo | to be checked.

Definition at line 168 of file RepoManager.cc.

## ◆ loadFromCache()

void zypp::RepoManager::loadFromCache | ( | const RepoInfo & | info,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Load resolvables into the pool.

Creating from cache requires that the repository is refreshed (metadata downloaded) and cached

Exceptions

  repo::RepoNoAliasException | if can't figure an alias to look in cache
  RepoNotCachedException | When the source is not cached.

Definition at line 171 of file RepoManager.cc.

## ◆ cleanCacheDirGarbage()

void zypp::RepoManager::cleanCacheDirGarbage | ( | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() | ) |

Remove any subdirectories of cache directories which no longer belong to any of known repositories.

These can be temporary directories left by interrupted refresh, or dirs left after changing .repo files outside of libzypp.

Definition at line 174 of file RepoManager.cc.

## ◆ probe() [1/2]

repo::RepoType zypp::RepoManager::probe | ( | const Url & | url,
|  | const Pathname & | path ) const

Probe repo metadata type.

The location to probe consists of the base url (you may think of it as a mountpoint) and the path to the repository on the mounted media (ususally `/` ).

Definition at line 177 of file RepoManager.cc.

## ◆ probe() [2/2]

repo::RepoType zypp::RepoManager::probe | ( | const Url & | url | ) | const

Definition at line 180 of file RepoManager.cc.

## ◆ addRepository() [1/2]

void zypp::RepoManager::addRepository | ( | const RepoInfo & | info,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Adds a repository to the list of known repositories.

Exceptions

  repo::RepoAlreadyExistsException | If the repo clash some unique attribute like alias
  RepoUnknownType | If RepoManagerOptions::probe is true and repository type can't be determined.
  RepoException | If RepoManagerOptions::probe is true and access to the url fails.
  Exception | On other errors.

Definition at line 197 of file RepoManager.cc.

## ◆ addRepository() [2/2]

void zypp::RepoManager::addRepository | ( | const RepoInfo & | info,
|  | const TriBool & | forcedProbe,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Definition at line 183 of file RepoManager.cc.

## ◆ addRepositories()

void zypp::RepoManager::addRepositories | ( | const Url & | url,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Adds repositores from a repo file to the list of known repositories.

Parameters

  url | Url of the repo file. The URL is subject to repo variable expansion.

Exceptions

  repo::RepoAlreadyExistsException | If the repo clash some unique attribute like alias
  MediaException | If the access to the url fails
  ParseException | If the file parsing fails
  RepoUnknownType | If repository type can't be determined
  RepoException | ON other repository related errors
  Exception | On other errors.

Definition at line 200 of file RepoManager.cc.

## ◆ removeRepository()

void zypp::RepoManager::removeRepository | ( | const RepoInfo & | info,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Remove the best matching repository from known repos list.

Exceptions

  RepoNotFoundException | If no repo match

Definition at line 203 of file RepoManager.cc.

## ◆ modifyRepository() [1/2]

void zypp::RepoManager::modifyRepository | ( | const std::string & | alias,
|  | const RepoInfo & | newinfo,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Modify repository attributes.

Exceptions

  RepoAlreadyExistsException | if the alias specified in newinfo is already used by another repository
  RepoNotFoundException | If no repo match
  ParseException | If the file parsing fails
  Exception | On other errors.

Definition at line 210 of file RepoManager.cc.

## ◆ modifyRepository() [2/2]

void zypp::RepoManager::modifyRepository | ( | const RepoInfo & | newinfo,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )
| inline

Definition at line 422 of file RepoManager.h.

## ◆ getRepositoryInfo() [1/2]

RepoInfo zypp::RepoManager::getRepositoryInfo | ( | const std::string & | alias,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Find a matching repository info.

Note
  if multiple repositories incorrectly share the same alias, the first one found will be returned.

Parameters

  alias | Repository alias
  progressrcv | Progress reporting function

Returns
  RepoInfo of the found repository

Exceptions

  RepoNotFoundException | If no repo match the alias
  ParseException | If the file parsing fails
  Exception | On other errors.

Definition at line 221 of file RepoManager.cc.

## ◆ getRepositoryInfo() [2/2]

RepoInfo zypp::RepoManager::getRepositoryInfo | ( | const Url & | url,
|  | const url::ViewOption & | urlview = url::ViewOption::DEFAULTS,
|  | const ProgressData::ReceiverFnc & | progressrcv = ProgressData::ReceiverFnc() )

Find repository info by URL.

Parameters

  url | URL to find.
  urlview | url::ViewOption to influence URL matching.
  progressrcv | Progress receiver function.

Returns
  RepoInfo of the found repository.

Note
  if multpile repositories incorrectly share the same URL, the first one found will be returned.
  the string representation of the URLs are compared. The urlview can be used to influence which parts of the URL are to be compared.

Exceptions

  RepoNotFoundException | If no repo match
  ParseException | If the file parsing fails
  Exception | On other errors.

Definition at line 224 of file RepoManager.cc.

## ◆ serviceEmpty()

bool zypp::RepoManager::serviceEmpty | ( |  | ) | const

Gets true if no service is in RepoManager (so no one in specified location).

Returns
  true if any ServiceInfo is in RepoManager

Definition at line 227 of file RepoManager.cc.

## ◆ serviceSize()

RepoManager::ServiceSizeType zypp::RepoManager::serviceSize | ( |  | ) | const

Gets count of service in RepoManager (in specified location).

Returns
  count of service

Definition at line 230 of file RepoManager.cc.

## ◆ serviceBegin()

RepoManager::ServiceConstIterator zypp::RepoManager::serviceBegin | ( |  | ) | const

Iterator to first service in internal storage.

Note
  Iterator is immutable, so you cannot change pointed ServiceInfo

Returns
  Iterator to first service

Definition at line 233 of file RepoManager.cc.

## ◆ serviceEnd()

RepoManager::ServiceConstIterator zypp::RepoManager::serviceEnd | ( |  | ) | const

Iterator to place behind last service in internal storage.

Returns
  iterator to end

Definition at line 236 of file RepoManager.cc.

## ◆ services()

Iterable< RepoManager::ServiceConstIterator > zypp::RepoManager::services | ( |  | ) | const
| inline

Iterate the known services.

Definition at line 675 of file RepoManager.h.

## ◆ knownServices()

std::list< ServiceInfo > zypp::RepoManager::knownServices | ( |  | ) | const
| inline

List of known services.

Definition at line 504 of file RepoManager.h.

## ◆ getService()

ServiceInfo zypp::RepoManager::getService | ( | const std::string & | alias | ) | const

Finds ServiceInfo by alias or return ServiceInfo::noService.

Parameters

  alias | unique identifier of service

Returns
  information about service

Definition at line 239 of file RepoManager.cc.

## ◆ hasService()

bool zypp::RepoManager::hasService | ( | const std::string & | alias | ) | const

Return whether there is a known service for `alias`.

Definition at line 242 of file RepoManager.cc.

## ◆ probeService()

repo::ServiceType zypp::RepoManager::probeService | ( | const Url & | url | ) | const

Probe the type or the service.

Definition at line 245 of file RepoManager.cc.

## ◆ addService() [1/2]

void zypp::RepoManager::addService | ( | const std::string & | alias,
|  | const Url & | url )

Adds a new service by its alias and URL.

Parameters

  alias | unique identifier of the service
  url | url to service

Exceptions

  FIXME | RepoAlreadyExistException and as reponame is service name

Definition at line 248 of file RepoManager.cc.

## ◆ addService() [2/2]

void zypp::RepoManager::addService | ( | const ServiceInfo & | service | ) |

Adds new service.

Parameters

  service | service info

Exceptions

  FIXME | RepoAlreadyExistException and as reponame is service name

Definition at line 251 of file RepoManager.cc.

## ◆ removeService() [1/2]

void zypp::RepoManager::removeService | ( | const std::string & | alias | ) |

Removes service specified by its name.

Parameters

  alias | unique indientifier of the service to remove

Exceptions

  RepoException | if service is not found or file with ServiceInfo cannot be deleted
  Exception | if file contain more services and rewrite file failed

Definition at line 254 of file RepoManager.cc.

## ◆ removeService() [2/2]

void zypp::RepoManager::removeService | ( | const ServiceInfo & | service | ) |

Definition at line 257 of file RepoManager.cc.

## ◆ refreshServices()

void zypp::RepoManager::refreshServices | ( | const RefreshServiceOptions & | options_r = RefreshServiceOptions() | ) |

Refreshes all enabled services.

See also
  refreshService(ServiceInfo)

Definition at line 260 of file RepoManager.cc.

## ◆ refreshService() [1/2]

void zypp::RepoManager::refreshService | ( | const std::string & | alias,
|  | const RefreshServiceOptions & | options_r = RefreshServiceOptions() )

Refresh specific service.

Parameters

  alias | unique indientifier of the service to refresh

Exceptions

  RepoException | if service is not found.
  MediaException | If there's a problem downloading the repo index file.

Definition at line 263 of file RepoManager.cc.

## ◆ refreshService() [2/2]

void zypp::RepoManager::refreshService | ( | const ServiceInfo & | service,
|  | const RefreshServiceOptions & | options_r = RefreshServiceOptions() )

Definition at line 266 of file RepoManager.cc.

## ◆ modifyService() [1/2]

void zypp::RepoManager::modifyService | ( | const std::string & | oldAlias,
|  | const ServiceInfo & | service )

Modifies service file (rewrites it with new values) and underlying repositories if needed.

Modifications of a service can lead to rewrite of all .repo files of contained repositories. Particularily, disabling a service (changing ServiceInfo::enabled() from true to false) will disable all contained repositories. Renaming of a service will modify the "service" key of all contained repositories.

Parameters

  oldAlias | Old alias of the service
  service | ServiceInfo object containing new data

Exceptions

  RepoException | if sservice with oldAlias is not known
  Exception | if have problems with files

Definition at line 269 of file RepoManager.cc.

## ◆ modifyService() [2/2]

void zypp::RepoManager::modifyService | ( | const ServiceInfo & | service | ) |
| inline

Definition at line 593 of file RepoManager.h.

## ◆ refreshGeoIp()

void zypp::RepoManager::refreshGeoIp | ( | const RepoInfo::url_set & | urls | ) |

Checks for any of the given urls if there is no geoip data available, caches the results in the metadata cache for 24hrs. The given urls need to be configured as valid geoIP targets ( usually download.opensuse.org )

Definition at line 272 of file RepoManager.cc.

## ◆ getRepositoriesInService()

template<typename OutputIterator>

void zypp::RepoManager::getRepositoriesInService | ( | const std::string & | alias,
|  | OutputIterator | out ) const
| inline

fill to output iterator repositories in service name.

This output iterator can perform any action on with Repo or service Container, because it is sets and it isn't dynamic recreate.

Note
  Don't use this function with RepoManager::removeRepository(), it will lead to segfaults due to invalidated internal iterators. FIXME can this be solved (using STL) so that this warning would not be needed?

Parameters

  alias | service alias
  out | output iterator which get all the repositories belonging to specified service

example how set priority for each RepoInfo in this service:

//functor
class ChangePriority
{
private:
int priority;
public:
ChangePriority(int prio) : priority(prio) {}
// missing rewrite priority back via RepoManager::modifyRepo
void doIt( RepoInfo info ) { info.setPriority(priority); }
}
//somewhere in code
ChangePriority changer(10);
getRepositoriesInService(name,
boost::make_function_output_iterator(
bind(&ChangePriority::doIt, &changer, _1)));
zypp::RepoInfo
What is known about a repository.
Definition RepoInfo.h:72
zypp::RepoInfo::setPriority
void setPriority(unsigned newval_r)
Set repository priority for solver.
Definition RepoInfo.cc:619
zypp::RepoManager::getRepositoriesInService
void getRepositoriesInService(const std::string &alias, OutputIterator out) const
fill to output iterator repositories in service name.
Definition RepoManager.h:651

Definition at line 651 of file RepoManager.h.

## Friends And Related Symbol Documentation

## ◆ operator<<

std::ostream & operator<< | ( | std::ostream & | str,
|  | const RepoManager & | obj )
| friend

relates: RepoManager Stream output

Definition at line 277 of file RepoManager.cc.

## Member Data Documentation

## ◆ RefreshIfNeeded

RawMetadataRefreshPolicy zypp::RepoManager::RefreshIfNeeded = RepoManagerFlags::RefreshIfNeeded
| staticconstexpr

Definition at line 83 of file RepoManager.h.

## ◆ RefreshForced

RawMetadataRefreshPolicy zypp::RepoManager::RefreshForced = RepoManagerFlags::RefreshForced
| staticconstexpr

Definition at line 84 of file RepoManager.h.

## ◆ RefreshIfNeededIgnoreDelay

RawMetadataRefreshPolicy zypp::RepoManager::RefreshIfNeededIgnoreDelay = RepoManagerFlags::RefreshIfNeededIgnoreDelay
| staticconstexpr

Definition at line 85 of file RepoManager.h.

## ◆ BuildIfNeeded

CacheBuildPolicy zypp::RepoManager::BuildIfNeeded = CacheBuildPolicy::BuildIfNeeded
| staticconstexpr

Definition at line 88 of file RepoManager.h.

## ◆ BuildForced

CacheBuildPolicy zypp::RepoManager::BuildForced = CacheBuildPolicy::BuildForced
| staticconstexpr

Definition at line 89 of file RepoManager.h.

## ◆ RefreshService_restoreStatus

RefreshServiceBit zypp::RepoManager::RefreshService_restoreStatus = RefreshServiceBit::RefreshService_restoreStatus
| staticconstexpr

Definition at line 93 of file RepoManager.h.

## ◆ RefreshService_forceRefresh

RefreshServiceBit zypp::RepoManager::RefreshService_forceRefresh = RefreshServiceBit::RefreshService_forceRefresh
| staticconstexpr

Definition at line 94 of file RepoManager.h.

## ◆ REFRESH_NEEDED

RefreshCheckStatus zypp::RepoManager::REFRESH_NEEDED = RefreshCheckStatus::REFRESH_NEEDED
| staticconstexpr

refresh is needed

Definition at line 142 of file RepoManager.h.

## ◆ REPO_UP_TO_DATE

RefreshCheckStatus zypp::RepoManager::REPO_UP_TO_DATE = RefreshCheckStatus::REPO_UP_TO_DATE
| staticconstexpr

repository not changed

Definition at line 143 of file RepoManager.h.

## ◆ REPO_CHECK_DELAYED

RefreshCheckStatus zypp::RepoManager::REPO_CHECK_DELAYED = RefreshCheckStatus::REPO_CHECK_DELAYED
| staticconstexpr

refresh is delayed due to settings

Definition at line 144 of file RepoManager.h.

## ◆ _pimpl

RWCOW_pointer<Impl> zypp::RepoManager::_pimpl
| private

Pointer to implementation.

Definition at line 663 of file RepoManager.h.

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

- zypp/RepoManager.h
- zypp/ng/repomanager.cc
- zypp/RepoManager.cc