12 #include <sys/types.h> 18 #include <solv/pool.h> 19 #include <solv/repo.h> 20 #include <solv/solvable.h> 53 {
return myPool()->nsolvables; }
71 {
return !
myPool()->urepos; }
74 {
return myPool()->urepos; }
97 if ( ! it->solvablesEmpty() )
111 ret += it->solvablesSize();
146 if ( alias_r == it->alias() )
169 tmprepo->addSolv( file_r );
193 tmprepo->addHelix( file_r );
253 return str <<
"sat::pool(" << obj.
serial() <<
")[" 260 #undef ZYPP_BASE_LOGGER_LOGGROUP 261 #define ZYPP_BASE_LOGGER_LOGGROUP "solvidx" 269 ERR <<
"Can't open solv-file: " << solv << endl;
274 if ( ::
unlink( solvidxfile.c_str() ) == -1 && errno != ENOENT )
276 ERR <<
"Can't unlink solv-idx: " <<
Errno() << endl;
280 int fd = ::open( solvidxfile.c_str(), O_CREAT|O_EXCL|O_WRONLY|O_TRUNC, 0644 );
283 ERR <<
"Can't create solv-idx: " <<
Errno() << endl;
288 std::ofstream idx( solvidxfile.c_str() );
293 if ( ::repo_add_solv( _repo, solv, 0 ) == 0 )
297 FOR_REPO_SOLVABLES( _repo, _id, _solv )
302 #define idstr(V) pool_id2str( _pool, _solv->V ) 303 if ( _solv->arch == ARCH_SRC || _solv->arch == ARCH_NOSRC )
304 idx <<
"srcpackage:" <<
idstr(name) <<
SEP <<
idstr(evr) <<
SEP <<
"noarch" << endl;
312 ERR <<
"Can't read solv-file: " << ::pool_errstr( _pool ) << endl;
314 ::repo_free( _repo, 0 );
315 ::pool_free( _pool );
Repository reposInsert(const std::string &alias_r)
Return a Repository named alias_r.
const SerialNumber & serial() const
Serial number changing whenever the content changes.
StringQueue autoInstalled() const
Get ident list of all autoinstalled solvables.
const LocaleSet & getAddedRequestedLocales() const
Added since last initRequestedLocales.
bool eraseRequestedLocale(const Locale &locale_r)
User change (tracked).
void setRequestedLocales(const LocaleSet &locales_r)
Set the requested locales.
bool isRequestedLocale(const Locale &locale_r) const
bool reposEmpty() const
Whether Pool contains repos.
void setAutorefresh(bool autorefresh)
enable or disable autorefresh
bool isSystemRepo() const
Return whether this is the system repository.
Convenience errno wrapper.
void setTextLocale(const Locale &locale_r)
Set the default language for retrieving translated texts.
::_Repo CRepo
Wrapped libsolv C data type exposed as backdoor.
bool addRequestedLocale(const Locale &locale_r)
User change (tracked).
SolvableIterator solvablesBegin() const
Iterator to the first Solvable.
bool isAvailableLocale(const Locale &locale_r) const
Whether this Locale is in the set of available locales.
const MultiversionList & multiversionList() const
const LocaleSet & getAddedRequestedLocales() const
Added since last initRequestedLocales.
Pathname extend(const std::string &r) const
Append string r to the last component of the path.
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
void setEnabled(bool enabled)
enable or disable the repository
::_Pool CPool
Wrapped libsolv C data type exposed as backdoor.
const char * c_str() const
String representation.
RepositoryIterator reposEnd() const
Iterator behind the last Repository.
void setAlias(const std::string &alias)
set the repository alias
String related utilities and Regular expression matching.
void setAutoInstalled(const Queue &autoInstalled_r)
Set ident list of all autoinstalled solvables.
What is known about a repository.
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Repository addRepoHelix(const Pathname &file_r, const std::string &name_r)
Load Solvables from a helix-file into a Repository named name_r.
::_Solvable CSolvable
Wrapped libsolv C data type exposed as backdoor.
std::string basename() const
Return the last component of this path.
size_type capacity() const
Internal array size for stats only.
size_type reposSize() const
Number of repos in Pool.
const LocaleSet & getAvailableLocales() const
Get the set of available locales.
Repository systemRepo()
Return the system repository, create it if missing.
void prepare() const
Update housekeeping data if necessary (e.g.
void initRequestedLocales(const LocaleSet &locales_r)
Start tracking changes based on this locales_r.
Functor removing Repository from it's Pool.
const SerialNumber & serialIDs() const
Serial number changing whenever resusePoolIDs==true was used.
const LocaleSet & getRequestedLocales() const
Current set of requested Locales.
int unlink(const Pathname &path)
Like 'unlink'.
static const std::string & systemRepoAlias()
Reserved system repository alias .
const std::string & asString() const
String representation.
std::string alias() const
unique identifier for this source.
void setInfo(const RepoInfo &info_r)
Set RepoInfo for this repository.
zypp::detail::RepositoryIterator RepositoryIterator
Pathname rootDir() const
Get rootdir (for file conflicts check)
void setRequestedLocales(const LocaleSet &locales_r)
User change (tracked).
detail::CPool * get() const
Expert backdoor.
const LocaleSet & getRemovedRequestedLocales() const
Removed since last initRequestedLocales.
void updateSolvFileIndex(const Pathname &solvfile_r)
Create solv file content digest for zypper bash completion.
const SerialNumber & serial() const
Housekeeping data serial number.
size_type solvablesSize() const
Number of solvables in Pool.
static PoolImpl & myPool()
detail::SolvableIterator SolvableIterator
const LocaleSet & getRequestedLocales() const
Return the requested locales.
bool addRequestedLocale(const Locale &locale_r)
Add one Locale to the set of requested locales.
RepositoryIterator reposBegin() const
Iterator to the first Repository.
bool solvablesEmpty() const
Whether Pool contains solvables.
void prepare() const
Update housekeeping data (e.g.
void resetDispose()
Set no dispose function.
Simple serial number provider.
const MultiversionList & multiversion() const
'Language[_Country]' codes.
Pathname rootDir() const
Get rootdir (for file conflicts check)
Libsolv Id queue wrapper.
Queue autoInstalled() const
Get ident list of all autoinstalled solvables.
Repository reposFind(const std::string &alias_r) const
Find a Repository named alias_r.
const LocaleSet & getRemovedRequestedLocales() const
Removed since last initRequestedLocales.
SolvableIterator solvablesEnd() const
Iterator behind the last Solvable.
detail::size_type size_type
void setTextLocale(const Locale &locale_r)
Repository findSystemRepo() const
Return the system repository if it is on the pool.
void initRequestedLocales(const LocaleSet &locales_r)
Start tracking changes based on this locales_r.
static const std::string & systemRepoAlias()
Reserved system repository alias .
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
const LocaleSet & getAvailableLocales() const
All Locales occurring in any repo.
const SerialNumber & serialIDs() const
Serial number changing whenever resusePoolIDs==true was used.
void setName(const std::string &name)
set the repository name
Repository addRepoSolv(const Pathname &file_r, const std::string &name_r)
Load Solvables from a solv-file into a Repository named name_r.
Easy-to use interface to the ZYPP dependency resolver.
Iterable< RepositoryIterator > repos() const
Iterate the repositories.
bool isAvailableLocale(const Locale &locale_r) const
bool isRequestedLocale(const Locale &locale_r) const
Whether this Locale is in the set of requested locales.
bool eraseRequestedLocale(const Locale &locale_r)
Erase one Locale from the set of requested locales.
std::unordered_set< Locale > LocaleSet
void setAutoInstalled(const StringQueue &autoInstalled_r)
Set ident list of all autoinstalled solvables.
Solvable set wrapper to allow adding additional convenience iterators.