14 #ifndef ZYPPNG_SAT_POOL_H_INCLUDED 15 #define ZYPPNG_SAT_POOL_H_INCLUDED 133 {
return repo_r &&
_pool->installed == repo_r; }
137 {
return _pool->installed; }
157 const char * rd = ::pool_get_rootdir(
_pool );
158 return( rd ? rd :
"/" );
164 if ( root_r.
empty() || root_r ==
"/" )
165 ::pool_set_rootdir(
_pool,
nullptr );
209 {
return slv_r.repo; }
230 return &
_pool->solvables[id_r];
237 { return ::pool_parserpmrichdep(
_pool, capstr_r ); }
252 for( ++id_r; id_r < unsigned(
_pool->nsolvables); ++id_r )
265 template <
typename T>
268 template <
typename T>
static const SolvableIdType noSolvableId(0)
Id to denote Solvable::noSolvable.
detail::SolvableIdType getNextId(detail::SolvableIdType id_r) const
Get id of the next valid Solvable.
SerialNumberWatcher _watcher
Watch serial number.
RepositoryIterable repos() const
Iteratable to the repositories.
detail::size_type solvablesSize() const
Number of solvables in Pool.
Simple serial number watcher.
detail::size_type reposSize() const
Number of repos in Pool.
detail::CSolvable * getSolvable(detail::SolvableIdType id_r) const
Return pointer to the sat-solvable or NULL if it is not valid.
A Solvable object within the sat Pool.
int _addTesttags(detail::CRepo *repo_r, FILE *file_r)
Adding testtags file to a repo.
bool _preparing
True while prepare() is running — setDirty() is illegal in this window.
const PoolComponentSet & components() const
zypp::sat::detail::CSolvable CSolvable
zypp::Iterable< detail::SolvableIterator > SolvableIterable
const SerialNumber & serialIDs() const
Serial number changing whenever resusePoolIDs==true was used.
void reposEraseAll()
Remove all repos from the pool.
bool isSystemRepo(detail::CRepo *repo_r) const
const char * c_str() const
String representation.
detail::CRepo * getRepo(detail::RepoIdType id_r) const
Repository findSystemRepo() const
Return the system repository if it is on the pool.
void _postRepoAdd(detail::CRepo *repo_r)
Helper postprocessing the repo after adding solv or helix files.
const T * findComponent() const
Orchestrator for a libsolv pool instance.
Pool & operator=(const Pool &)=delete
PreparedPool prepare()
Update housekeeping data (e.g.
zypp::sat::detail::CPool CPool
void rootDir(const zypp::Pathname &root_r)
Set rootdir (for file conflicts check)
zypp::Pathname rootDir() const
zypp::sat::detail::SolvableIdType SolvableIdType
detail::SolvableIdType _addSolvables(detail::CRepo *repo_r, unsigned count_r)
Adding Solvables to a repo.
PoolComponentSet _componentsSet
Component set managing modular pool logic.
A move-only, non-owning view of a Pool that guarantees the whatprovides index is valid.
bool solvablesEmpty() const
Whether Pool contains solvables.
SerialNumber _serialIDs
Serial number of IDs - changes whenever resusePoolIDs==true - ResPool must also invalidate its PoolIt...
bool empty() const
Test for an empty path.
Repository systemRepo()
Return the system repository, create it if missing.
Registry and dispatcher for all pool components.
This file contains private API, this might break at any time between releases.
detail::CPool * getPool() const
const T * findComponent() const
detail::CPool * _pool
sat-pool.
detail::CRepo * _systemRepoPtr() const
void setDirty(PoolInvalidation invalidation, std::initializer_list< std::string_view > reasons)
Invalidate everything.
bool validSolvable(const detail::CSolvable &slv_r) const
a valid Solvable has a non NULL repo pointer.
zypp::Iterable< detail::RepositoryIterator > RepositoryIterable
zypp::sat::detail::IdType IdType
Simple serial number provider.
void eraseFromPool()
Query class for Repository related products.
zypp::sat::detail::CRepo CRepo
constexpr std::string_view FILE("file")
PoolComponentSet & components()
Get rootdir (for file conflicts check)
detail::CRepo * _createRepo(const std::string &name_r)
Creating a new repo named name_r.
bool reposEmpty() const
Whether Pool contains repos.
PoolInvalidation
Defines the scope of an invalidation request for the Pool.
SerialNumber _serial
Serial number - changes with each Pool content change.
int _addHelix(detail::CRepo *repo_r, FILE *file_r)
Adding helix file to a repo.
Repository reposFind(const std::string &alias_r) const
Find a Repository named alias_r.
SolvableIterable solvables() const
Iterator to the first Solvable.
detail::size_type capacity() const
const SerialNumber & serial() const
Serial number changing whenever the content changes.
T & assertComponent(std::unique_ptr< T > &&compPtr={})
detail::IdType parserpmrichdep(const char *capstr_r)
libsolv capability parser
void _deleteRepo(detail::CRepo *repo_r)
Delete repo repo_r from pool.
detail::SolvableIdType getFirstId() const
Get id of the first valid Solvable.
bool validSolvable(const detail::CSolvable *slv_r) const
Repository reposInsert(const std::string &alias_r)
Return a Repository named alias_r.
int _addSolv(detail::CRepo *repo_r, FILE *file_r)
Adding solv file to a repo.
void clear()
Reset the pool by removing all repositories and solvables.
static const std::string & systemRepoAlias()
Reserved system repository alias .
void reposErase(const std::string &alias_r)
Remove a Repository named alias_r.
bool validSolvable(detail::SolvableIdType id_r) const
zypp::sat::detail::RepoIdType RepoIdType