Go to the documentation of this file.
45 #define NO_REPOSITORY_RETURN( VAL ) \
46 sat::detail::CRepo * _repo( get() ); \
47 if ( ! _repo ) return VAL
49 #define NO_REPOSITORY_THROW( VAL ) \
50 sat::detail::CRepo * _repo( get() ); \
51 if ( ! _repo ) ZYPP_THROW( VAL )
76 return _repo->priority;
82 return _repo->subpriority;
104 if ( it.asString() == id_r )
138 for (
const auto & val :
keywords() )
169 if ( compare( cpeid_r, it.cpeId(), SetRelation::subset ) )
175 if ( ! myIds.
empty() )
181 if ( compare( cpeid_r, prod->cpeId(), SetRelation::superset ) )
185 if ( prod->hasUpdateContentIdentifier( myId.asString() ) )
204 if ( ! myIds.
empty() )
222 return !_repo->nsolvables;
228 return _repo->nsolvables;
285 info_r.
alias().c_str(),
alias().c_str() ) ) );
288 MIL << *
this << endl;
300 MIL << *
this <<
" removed from pool" << endl;
312 if ( ++it != _for_end )
331 if (
myPool()._addSolv( _repo, file ) != 0 )
336 MIL << *
this <<
" after adding " << file_r << endl;
343 std::string command( file_r.
extension() ==
".gz" ?
"zcat " :
"cat " );
353 if (
myPool()._addHelix( _repo, file ) != 0 )
358 MIL << *
this <<
" after adding " << file_r << endl;
365 std::string command( file_r.
extension() ==
".gz" ?
"zcat " :
"cat " );
375 if (
myPool()._addTesttags( _repo, file ) != 0 )
380 MIL << *
this <<
" after adding " << file_r << endl;
397 return str <<
"noRepository";
399 return str <<
"sat::repo(" << obj.
alias() <<
")"
401 <<
"prio " << obj.
get()->priority <<
'.' << obj.
get()->subpriority
409 {
"name", obj.
name() },
410 {
"alias", obj.
alias() }
424 }
while ( base() < satpool->repos+satpool->nrepos && !*base() );
ProductInfoIterator updatesProductBegin() const
Get an iterator to the beginning of distos the repository provides upadates for.
static Pool instance()
Singleton ctor.
sat::detail::CRepo * get() const
Expert backdoor.
Repository nextInPool() const
Return next Repository in Pool (or noRepository).
bool hasContentIdentifier(const ContentIdentifier &id_r) const
Whether id_r matches this repos content identifier.
bool isUpdateRepo() const
Hint whether the Repo may provide updates for a product.
void addSolv(const Pathname &file_r)
Load Solvables from a solv-file.
std::string label() const
Product label.
static const std::string & systemRepoAlias()
Reserved system repository alias @System .
Functor filtering Solvable by Repository.
Keywords keywords() const
repository keywords (tags)
std::string alias() const
Short unique string to identify a repo.
bool empty() const
Whether the query is empty.
static const SolvAttr repositoryProductLabel
Base class for Exception.
What is known about a repository.
CpeId cpeId() const
The Common Platform Enumeration name for this product.
ProductInfoIterator updatesProductEnd() const
Get an iterator to the end of distos the repository provides upadates for.
static const SolvAttr repositoryTimestamp
::s_Pool CPool
Wrapped libsolv C data type exposed as backdoor.
iterator begin() const
Iterator to the begin of query results.
std::ostream & node(std::ostream &out_r, const std::string &name_r, Node::Attr attr_r)
TraitsType::constPtrType constPtr
std::string extension() const
Return all of the characters in name after and including the last dot in the last element of name.
std::ostream & dumpAsXmlOn(std::ostream &str, const Tp &obj, const std::string &name_r)
std::string ContentIdentifier
#define ZYPP_THROW(EXCPT)
Drops a logline and throws the Exception.
static PoolImpl & myPool()
static ResPool instance()
Singleton ctor.
void addHelix(const Pathname &file_r)
Load Solvables from a helix-file.
unsigned asUnsigned() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
std::string ContentRevision
static const RepoIdType noRepoId(0)
Id to denote Repo::noRepository.
SolvableIterator solvablesEnd() const
Iterator behind the last Solvable.
Date suggestedExpirationTimestamp() const
Suggested expiration timestamp.
bool hasUpdateContentIdentifier(const Repository::ContentIdentifier &cident_r) const
Whether cident_r is listed as required update repository.
Common Platform Enumearation (2.3) See http://cpe.mitre.org/ for more information on the Common Platf...
static const SolvAttr repositoryRevision
#define NO_REPOSITORY_RETURN(VAL)
void _deleteRepo(CRepo *repo_r)
Delete repo repo_r from pool.
static const std::string & systemRepoAlias()
Reserved system repository alias @System .
unsigned SolvableIdType
Id type to connect Solvable and sat-solvable.
const char * c_str() const
String representation.
bool providesUpdatesFor(const CpeId &cpeid_r) const
Hint whether the Repo may provide updates for a product identified by it's CpeId.
#define NO_REPOSITORY_THROW(VAL)
std::string alias() const
unique identifier for this source.
byKind_iterator byKindBegin(const ResKind &kind_r) const
bool hasKeyword(const std::string &val_r) const
Whether val_r is present in keywords.
size_type solvablesSize() const
Number of solvables in Repository.
std::string form(const char *format,...) __attribute__((format(printf
Printf style construction of std::string.
std::string name() const
Repository name.
void setRepoInfo(RepoIdType id_r, const RepoInfo &info_r)
Also adjust repo priority and subpriority accordingly.
ProductInfoIterator compatibleWithProductBegin() const
Get an iterator to the beginning of the repository compatible distros.
Easy-to use interface to the ZYPP dependency resolver.
SolvableIterator solvablesBegin() const
Iterator to the first Solvable.
int satInternalPriority() const
libsolv internal priorities.
std::string label() const
Label for use in messages for the user interface.
sat::Solvable::IdType addSolvables(unsigned count_r)
Add count_r new empty Solvable to this Repository.
Lightweight repository attribute value lookup.
int satInternalSubPriority() const
ContentIdentifier contentIdentifier() const
Unique string identifying a repositories content.
void clearInfo()
Remove any RepoInfo set for this repository.
LookupAttr::TransformIterator based container to retrieve list attributes.
sat::ArrayAttr< std::string, std::string > Keywords
static const Repository noRepository
Represents no Repository.
static const SolvAttr repositoryRepoid
std::string asString(const DefaultIntegral< Tp, TInitial > &obj)
static const SolvAttr repositoryKeywords
bool isSystemRepo() const
Return whether this is the system repository.
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Query class for Repository related products.
void addTesttags(const Pathname &file_r)
Load Solvables from a libsolv testtags-file.
bool isSystemRepo(CRepo *repo_r) const
Store and operate on date (time_t).
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
ContentRevision contentRevision() const
Timestamp or arbitrary user supplied string.
static const SolvAttr repositoryProductCpeid
sat::detail::size_type size_type
void eraseFromPool()
Remove this Repository from it's Pool.
static Date now()
Return the current time.
byKind_iterator byKindEnd(const ResKind &kind_r) const
ProductInfoIterator compatibleWithProductEnd() const
Get an iterator to the end of the repository compatible distros.
iterator end() const
Iterator behind the end of query results.
bool solvablesEmpty() const
Whether Repository contains solvables.
std::string name() const
Label to display for this repo.
static const SolvAttr repositoryUpdates
array of repositoryProductLabel repositoryProductCpeid pairs
CRepo * getRepo(RepoIdType id_r) const
String related utilities and Regular expression matching.
RepoInfo info() const
Return any associated RepoInfo.
void resetDispose()
Set no dispose function.
static constexpr NoThrowType noThrow
Indicator argument for non-trowing ctor.
void setInfo(const RepoInfo &info_r)
Set RepoInfo for this repository.
const std::string & asString() const
String representation.
Date generatedTimestamp() const
Timestamp when this repository was generated.
detail::SolvableIdType _addSolvables(CRepo *repo_r, unsigned count_r)
Adding Solvables to a repo.
bool maybeOutdated() const
The suggested expiration date of this repository already passed.
::s_Repo CRepo
Wrapped libsolv C data type exposed as backdoor.
std::string label() const
Alias or name, according to ZConfig::repoLabelIsAlias.
filter_iterator< detail::ByRepository, sat::detail::SolvableIterator > SolvableIterator
static const SolvAttr repositoryDistros
array of repositoryProductLabel repositoryProductCpeid pairs
detail::CPool * get() const
Expert backdoor.
@ REPO_ATTR
Search for repository attributes.
const RepoInfo & repoInfo(RepoIdType id_r)
static const SolvAttr repositoryExpire
std::string asString() const
This is an overloaded member function, provided for convenience. It differs from the above function o...