libzypp: zypp/sat/Pool.cc Source File

libzypp 17.38.14

Pool.cc
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#include <sys/types.h>
13#include <sys/stat.h>
14#include <fcntl.h>
15
16extern "C"
17{
18#include <solv/pool.h>
19#include <solv/repo.h>
20#include <solv/solvable.h>
21}
22
23#include <iostream>
24#include <fstream>
25
26#include <zypp-core/base/Easy.h>
27#include <zypp-core/base/Logger.h>
28#include <zypp-core/base/Gettext.h>
29#include <zypp-core/base/Exception.h>
30
31#include <zypp-core/AutoDispose.h>
32
33#include <zypp/sat/detail/PoolImpl.h>
34#include <zypp/sat/Pool.h>
35#include <zypp/sat/LookupAttr.h>
36
37using std::endl;
38
40namespace zypp
41{
43 namespace sat
44 {
45
46 const std::string & Pool::systemRepoAlias()
47 { return detail::PoolImpl::systemRepoAlias(); }
48
49 detail::CPool * Pool::get() const
50 { return myPool().getPool(); }
51
52 Pool::size_type Pool::capacity() const
53 { return myPool()->nsolvables; }
54
55 const SerialNumber & Pool::serial() const
56 { return myPool().serial(); }
57
58 const SerialNumber & Pool::serialIDs() const
59 { return myPool().serialIDs(); }
60
61 void Pool::prepare() const
62 { return myPool().prepare(); }
63
64 Pathname Pool::rootDir() const
65 { return myPool().rootDir(); }
66
67 void Pool::rootDir( const Pathname & root_r )
68 { return myPool().rootDir( root_r ); }
69
70 bool Pool::reposEmpty() const
71 { return ! myPool()->urepos; }
72
73 Pool::size_type Pool::reposSize() const
74 { return myPool()->urepos; }
75
76 Pool::RepositoryIterator Pool::reposBegin() const
77 {
78 if ( myPool()->urepos )
79 { // repos[0] == NULL
80 for_( it, myPool()->repos+1, myPool()->repos+myPool()->nrepos )
81 if ( *it )
82 return RepositoryIterator( it );
83 }
84 return reposEnd();
85 }
86
87 Pool::RepositoryIterator Pool::reposEnd() const
88 { return RepositoryIterator( myPool()->repos+myPool()->nrepos ); }
89
90 bool Pool::solvablesEmpty() const
91 {
92 // return myPool()->nsolvables;
93 // nsolvables is the array size including
94 // invalid Solvables.
95 for_( it, reposBegin(), reposEnd() )
96 {
97 if ( ! it->solvablesEmpty() )
98 return false;
99 }
100 return true;
101 }
102
103 Pool::size_type Pool::solvablesSize() const
104 {
105 // Do not return myPool()->nsolvables;
106 // nsolvables is the array size including
107 // invalid Solvables.
108 size_type ret = 0;
109 for_( it, reposBegin(), reposEnd() )
110 {
111 ret += it->solvablesSize();
112 }
113 return ret;
114 }
115
116 Pool::SolvableIterator Pool::solvablesBegin() const
117 { return SolvableIterator( myPool().getFirstId() ); }
118
119 Pool::SolvableIterator Pool::solvablesEnd() const
120 { return SolvableIterator(); }
121
122 sat::Queue Pool::whatMatchesDep( const SolvAttr &attr, const Capability &cap ) const
123 {
124 sat::Queue q;
125 pool_whatmatchesdep( get(), attr.id(), cap.id(), q, 0);
126 return q;
127 }
128
129 Queue Pool::whatMatchesSolvable( const SolvAttr &attr, const Solvable &solv ) const
130 {
131 sat::Queue q;
132 pool_whatmatchessolvable( get(), attr.id(), static_cast<Id>( solv.id() ), q, 0 );
133 return q;
134 }
135
136 Queue Pool::whatContainsDep( const SolvAttr &attr, const Capability &cap ) const
137 {
138 sat::Queue q;
139 pool_whatcontainsdep( get(), attr.id(), cap.id(), q, 0 );
140 return q;
141 }
142
143 Repository Pool::reposInsert( const std::string & alias_r )
144 {
145 Repository ret( reposFind( alias_r ) );
146 if ( ret )
147 return ret;
148
149 ret = Repository( myPool()._createRepo( alias_r ) );
150 if ( ret.isSystemRepo() )
151 {
152 // autoprovide (dummy) RepoInfo
153 RepoInfo info;
154 info.setAlias( alias_r );
155 info.setName( alias_r );
156 info.setAutorefresh( true );
157 info.setEnabled( true );
158 ret.setInfo( info );
159 }
160 return ret;
161 }
162
163 Repository Pool::reposFind( const std::string & alias_r ) const
164 {
165 for_( it, reposBegin(), reposEnd() )
166 {
167 if ( alias_r == it->alias() )
168 return *it;
169 }
170 return Repository();
171 }
172
173 Repository Pool::findSystemRepo() const
174 {
175 return Repository( myPool().systemRepo() );
176 }
177
178 Repository Pool::systemRepo()
179 {
180 if ( myPool().systemRepo() )
181 return Repository( myPool().systemRepo() );
182 return reposInsert( systemRepoAlias() );
183 }
184
185 Repository Pool::addRepoSolv( const Pathname & file_r, const std::string & alias_r )
186 {
187 // Using a temporay repo! (The additional parenthesis are required.)
188 AutoDispose<Repository> tmprepo( (Repository::EraseFromPool()) );
189 *tmprepo = reposInsert( alias_r );
190 tmprepo->addSolv( file_r );
191
192 // no exceptions so we keep it:
193 tmprepo.resetDispose();
194 return tmprepo;
195 }
196
197 Repository Pool::addRepoSolv( const Pathname & file_r )
198 { return addRepoSolv( file_r, file_r.basename() ); }
199
200 Repository Pool::addRepoSolv( const Pathname & file_r, const RepoInfo & info_r )
201 {
202 Repository ret( addRepoSolv( file_r, info_r.alias() ) );
203 ret.setInfo( info_r );
204 return ret;
205 }
206
208
209 Repository Pool::addRepoHelix( const Pathname & file_r, const std::string & alias_r )
210 {
211 // Using a temporay repo! (The additional parenthesis are required.)
212 AutoDispose<Repository> tmprepo( (Repository::EraseFromPool()) );
213 *tmprepo = reposInsert( alias_r );
214 tmprepo->addHelix( file_r );
215
216 // no exceptions so we keep it:
217 tmprepo.resetDispose();
218 return tmprepo;
219 }
220
221 Repository Pool::addRepoHelix( const Pathname & file_r )
222 { return addRepoHelix( file_r, file_r.basename() ); }
223
224 Repository Pool::addRepoHelix( const Pathname & file_r, const RepoInfo & info_r )
225 {
226 Repository ret( addRepoHelix( file_r, info_r.alias() ) );
227 ret.setInfo( info_r );
228 return ret;
229 }
230
232
233 void Pool::setTextLocale( const Locale & locale_r )
234 { myPool().setTextLocale( locale_r ); }
235
236 void Pool::setRequestedLocales( const LocaleSet & locales_r )
237 { myPool().setRequestedLocales( locales_r ); }
238
239 bool Pool::addRequestedLocale( const Locale & locale_r )
240 { return myPool().addRequestedLocale( locale_r ); }
241
242 bool Pool::eraseRequestedLocale( const Locale & locale_r )
243 { return myPool().eraseRequestedLocale( locale_r ); }
244
245 const LocaleSet & Pool::getRequestedLocales() const
246 { return myPool().getRequestedLocales(); }
247
248 bool Pool::isRequestedLocale( const Locale & locale_r ) const
249 { return myPool().isRequestedLocale( locale_r ); }
250
251 void Pool::initRequestedLocales( const LocaleSet & locales_r ) { myPool().initRequestedLocales( locales_r ); }
252 const LocaleSet & Pool::getAddedRequestedLocales() const { return myPool().getAddedRequestedLocales(); }
253 const LocaleSet & Pool::getRemovedRequestedLocales() const { return myPool().getRemovedRequestedLocales(); }
254
255 const LocaleSet & Pool::getAvailableLocales() const
256 { return myPool().getAvailableLocales(); }
257
258 bool Pool::isAvailableLocale( const Locale & locale_r ) const
259 { return myPool().isAvailableLocale( locale_r ); }
260
261 const Pool::MultiversionList & Pool::multiversion() const
262 { return myPool().multiversionList(); }
263
264 Queue Pool::autoInstalled() const { return myPool().autoInstalled(); }
265 void Pool::setAutoInstalled( const Queue & autoInstalled_r ){ myPool().setAutoInstalled( autoInstalled_r ); }
266
267 void Pool::setNeedrebootSpec( sat::SolvableSpec needrebootSpec_r ) { myPool().setNeedrebootSpec( std::move(needrebootSpec_r) ); }
268
269 /******************************************************************
270 **
271 ** FUNCTION NAME : operator<<
272 ** FUNCTION TYPE : std::ostream &
273 */
274 std::ostream & operator<<( std::ostream & str, const Pool & obj )
275 {
276 return str << "sat::pool(" << obj.serial() << ")["
277 << obj.capacity() << "]{"
278 << obj.reposSize() << "repos|"
279 << obj.solvablesSize() << "solv}";
280 }
281
283 #undef ZYPP_BASE_LOGGER_LOGGROUP
284 #define ZYPP_BASE_LOGGER_LOGGROUP "solvidx"
285
286 void updateSolvFileIndex( const Pathname & solvfile_r )
287 {
288 AutoDispose<FILE*> solv( ::fopen( solvfile_r.c_str(), "re" ), ::fclose );
289 if ( solv == NULL )
290 {
291 solv.resetDispose();
292 ERR << "Can't open solv-file: " << solv << endl;
293 return;
294 }
295
296 std::string solvidxfile( solvfile_r.extend(".idx").asString() );
297 if ( ::unlink( solvidxfile.c_str() ) == -1 && errno != ENOENT )
298 {
299 ERR << "Can't unlink solv-idx: " << Errno() << endl;
300 return;
301 }
302 {
303 int fd = ::open( solvidxfile.c_str(), O_CREAT|O_EXCL|O_WRONLY|O_TRUNC, 0644 );
304 if ( fd == -1 )
305 {
306 ERR << "Can't create solv-idx: " << Errno() << endl;
307 return;
308 }
309 ::close( fd );
310 }
311 std::ofstream idx( solvidxfile.c_str() );
312
313
314 detail::CPool * _pool = ::pool_create();
315 detail::CRepo * _repo = ::repo_create( _pool, "" );
316 if ( ::repo_add_solv( _repo, solv, 0 ) == 0 )
317 {
318 int _id = 0;
319 detail::CSolvable * _solv = nullptr;
320 FOR_REPO_SOLVABLES( _repo, _id, _solv )
321 {
322 if ( _solv )
323 {
324#define SEP '\t'
325#define idstr(V) pool_id2str( _pool, _solv->V )
326 if ( _solv->arch == ARCH_SRC || _solv->arch == ARCH_NOSRC )
327 idx << "srcpackage:" << idstr(name) << SEP << idstr(evr) << SEP << "noarch" << endl;
328 else
329 idx << idstr(name) << SEP << idstr(evr) << SEP << idstr(arch) << endl;
330 }
331 }
332 }
333 else
334 {
335 ERR << "Can't read solv-file: " << ::pool_errstr( _pool ) << endl;
336 }
337 ::repo_free( _repo, 0 );
338 ::pool_free( _pool );
339 }
340
342 } // namespace sat
345} // namespace zypp
AutoDispose.h
Easy.h
for_
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:27
Exception.h
Gettext.h
Logger.h
ERR
#define ERR
Definition Logger.h:105
LookupAttr.h
idstr
#define idstr(V)
SEP
#define SEP
Pool.h
zypp::AutoDispose
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
Definition AutoDispose.h:95
zypp::AutoDispose::resetDispose
void resetDispose()
Set no dispose function.
Definition AutoDispose.h:171
zypp::Capability
A sat capability.
Definition Capability.h:63
zypp::Capability::id
sat::detail::IdType id() const
Expert backdoor.
Definition Capability.h:289
zypp::Errno
Convenience errno wrapper.
Definition Errno.h:26
zypp::Locale
'Language[_Country]' codes.
Definition Locale.h:51
zypp::RepoInfo
What is known about a repository.
Definition RepoInfo.h:72
zypp::Repository
Definition Repository.h:40
zypp::Repository::setInfo
void setInfo(const RepoInfo &info_r)
Set RepoInfo for this repository.
Definition Repository.cc:280
zypp::Repository::isSystemRepo
bool isSystemRepo() const
Return whether this is the system repository.
Definition Repository.cc:54
zypp::SerialNumber
Simple serial number provider.
Definition SerialNumber.h:45
zypp::filesystem::Pathname
Pathname.
Definition Pathname.h:48
zypp::filesystem::Pathname::extend
Pathname extend(const std::string &r) const
Append string r to the last component of the path.
Definition Pathname.h:192
zypp::filesystem::Pathname::c_str
const char * c_str() const
String representation.
Definition Pathname.h:113
zypp::filesystem::Pathname::asString
const std::string & asString() const
String representation.
Definition Pathname.h:94
zypp::filesystem::Pathname::basename
std::string basename() const
Return the last component of this path.
Definition Pathname.h:137
zypp::repo::RepoInfoBase::setAutorefresh
void setAutorefresh(bool autorefresh)
enable or disable autorefresh
Definition RepoInfoBase.cc:92
zypp::repo::RepoInfoBase::setAlias
void setAlias(const std::string &alias)
set the repository alias
Definition RepoInfoBase.cc:95
zypp::repo::RepoInfoBase::setName
void setName(const std::string &name)
set the repository name
Definition RepoInfoBase.cc:98
zypp::repo::RepoInfoBase::setEnabled
void setEnabled(bool enabled)
enable or disable the repository
Definition RepoInfoBase.cc:89
zypp::repo::RepoInfoBase::alias
std::string alias() const
unique identifier for this source.
Definition RepoInfoBase.cc:110
zypp::sat::Pool
Global sat-pool.
Definition Pool.h:47
zypp::sat::Pool::serialIDs
const SerialNumber & serialIDs() const
Serial number changing whenever resusePoolIDs==true was used.
Definition Pool.cc:58
zypp::sat::Pool::autoInstalled
Queue autoInstalled() const
Get ident list of all autoinstalled solvables.
Definition Pool.cc:264
zypp::sat::Pool::reposEnd
RepositoryIterator reposEnd() const
Iterator behind the last Repository.
Definition Pool.cc:87
zypp::sat::Pool::addRequestedLocale
bool addRequestedLocale(const Locale &locale_r)
Add one Locale to the set of requested locales.
Definition Pool.cc:239
zypp::sat::Pool::SolvableIterator
detail::SolvableIterator SolvableIterator
Definition Pool.h:49
zypp::sat::Pool::reposSize
size_type reposSize() const
Number of repos in Pool.
Definition Pool.cc:73
zypp::sat::Pool::multiversion
const MultiversionList & multiversion() const
Definition Pool.cc:261
zypp::sat::Pool::getAvailableLocales
const LocaleSet & getAvailableLocales() const
Get the set of available locales.
Definition Pool.cc:255
zypp::sat::Pool::setAutoInstalled
void setAutoInstalled(const Queue &autoInstalled_r)
Set ident list of all autoinstalled solvables.
Definition Pool.cc:265
zypp::sat::Pool::whatMatchesSolvable
Queue whatMatchesSolvable(const SolvAttr &attr, const Solvable &solv) const
Definition Pool.cc:129
zypp::sat::Pool::repos
Iterable< RepositoryIterator > repos() const
Iterate the repositories.
Definition Pool.h:95
zypp::sat::Pool::getRemovedRequestedLocales
const LocaleSet & getRemovedRequestedLocales() const
Removed since last initRequestedLocales.
Definition Pool.cc:253
zypp::sat::Pool::whatContainsDep
Queue whatContainsDep(const SolvAttr &attr, const Capability &cap) const
Definition Pool.cc:136
zypp::sat::Pool::solvablesEmpty
bool solvablesEmpty() const
Whether Pool contains solvables.
Definition Pool.cc:90
zypp::sat::Pool::isRequestedLocale
bool isRequestedLocale(const Locale &locale_r) const
Whether this Locale is in the set of requested locales.
Definition Pool.cc:248
zypp::sat::Pool::findSystemRepo
Repository findSystemRepo() const
Return the system repository if it is on the pool.
Definition Pool.cc:173
zypp::sat::Pool::capacity
size_type capacity() const
Internal array size for stats only.
Definition Pool.cc:52
zypp::sat::Pool::solvablesEnd
SolvableIterator solvablesEnd() const
Iterator behind the last Solvable.
Definition Pool.cc:119
zypp::sat::Pool::setTextLocale
void setTextLocale(const Locale &locale_r)
Set the default language for retrieving translated texts.
Definition Pool.cc:233
zypp::sat::Pool::rootDir
Pathname rootDir() const
Get rootdir (for file conflicts check).
Definition Pool.cc:64
zypp::sat::Pool::MultiversionList
SolvableSet MultiversionList
Definition Pool.h:259
zypp::sat::Pool::size_type
detail::size_type size_type
Definition Pool.h:51
zypp::sat::Pool::reposBegin
RepositoryIterator reposBegin() const
Iterator to the first Repository.
Definition Pool.cc:76
zypp::sat::Pool::reposFind
Repository reposFind(const std::string &alias_r) const
Find a Repository named alias_r.
Definition Pool.cc:163
zypp::sat::Pool::solvablesSize
size_type solvablesSize() const
Number of solvables in Pool.
Definition Pool.cc:103
zypp::sat::Pool::serial
const SerialNumber & serial() const
Housekeeping data serial number.
Definition Pool.cc:55
zypp::sat::Pool::addRepoSolv
Repository addRepoSolv(const Pathname &file_r, const std::string &name_r)
Load Solvables from a solv-file into a Repository named name_r.
Definition Pool.cc:185
zypp::sat::Pool::eraseRequestedLocale
bool eraseRequestedLocale(const Locale &locale_r)
Erase one Locale from the set of requested locales.
Definition Pool.cc:242
zypp::sat::Pool::isAvailableLocale
bool isAvailableLocale(const Locale &locale_r) const
Whether this Locale is in the set of available locales.
Definition Pool.cc:258
zypp::sat::Pool::whatMatchesDep
Queue whatMatchesDep(const SolvAttr &attr, const Capability &cap) const
Definition Pool.cc:122
zypp::sat::Pool::systemRepoAlias
static const std::string & systemRepoAlias()
Reserved system repository alias @System .
Definition Pool.cc:46
zypp::sat::Pool::addRepoHelix
Repository addRepoHelix(const Pathname &file_r, const std::string &name_r)
Load Solvables from a helix-file into a Repository named name_r.
Definition Pool.cc:209
zypp::sat::Pool::RepositoryIterator
zypp::detail::RepositoryIterator RepositoryIterator
Definition Pool.h:50
zypp::sat::Pool::solvablesBegin
SolvableIterator solvablesBegin() const
Iterator to the first Solvable.
Definition Pool.cc:116
zypp::sat::Pool::reposInsert
Repository reposInsert(const std::string &alias_r)
Return a Repository named alias_r.
Definition Pool.cc:143
zypp::sat::Pool::prepare
void prepare() const
Update housekeeping data if necessary (e.g.
Definition Pool.cc:61
zypp::sat::Pool::setNeedrebootSpec
void setNeedrebootSpec(sat::SolvableSpec needrebootSpec_r)
Solvables which should trigger the reboot-needed hint if installed/updated.
Definition Pool.cc:267
zypp::sat::Pool::get
detail::CPool * get() const
Expert backdoor.
Definition Pool.cc:49
zypp::sat::Pool::setRequestedLocales
void setRequestedLocales(const LocaleSet &locales_r)
Set the requested locales.
Definition Pool.cc:236
zypp::sat::Pool::systemRepo
Repository systemRepo()
Return the system repository, create it if missing.
Definition Pool.cc:178
zypp::sat::Pool::getRequestedLocales
const LocaleSet & getRequestedLocales() const
Return the requested locales.
Definition Pool.cc:245
zypp::sat::Pool::getAddedRequestedLocales
const LocaleSet & getAddedRequestedLocales() const
Added since last initRequestedLocales.
Definition Pool.cc:252
zypp::sat::Pool::reposEmpty
bool reposEmpty() const
Whether Pool contains repos.
Definition Pool.cc:70
zypp::sat::Pool::initRequestedLocales
void initRequestedLocales(const LocaleSet &locales_r)
Start tracking changes based on this locales_r.
Definition Pool.cc:251
zypp::sat::Queue
Libsolv Id queue wrapper.
Definition Queue.h:36
zypp::sat::SolvAttr
Solvable attribute keys.
Definition SolvAttr.h:41
zypp::sat::Solvable
A Solvable object within the sat Pool.
Definition Solvable.h:54
zypp::sat::Solvable::id
IdType id() const
Expert backdoor.
Definition Solvable.h:464
zypp::sat::detail::PoolImpl::getPool
CPool * getPool() const
Definition PoolImpl.h:176
zypp::sat::detail::PoolImpl::rootDir
Pathname rootDir() const
Get rootdir (for file conflicts check).
Definition PoolImpl.h:112
zypp::sat::detail::PoolImpl::autoInstalled
StringQueue autoInstalled() const
Get ident list of all autoinstalled solvables.
Definition PoolImpl.h:316
zypp::sat::detail::PoolImpl::setTextLocale
void setTextLocale(const Locale &locale_r)
Definition PoolImpl.cc:448
zypp::sat::detail::PoolImpl::initRequestedLocales
void initRequestedLocales(const LocaleSet &locales_r)
Start tracking changes based on this locales_r.
Definition PoolImpl.cc:473
zypp::sat::detail::PoolImpl::getAvailableLocales
const LocaleSet & getAvailableLocales() const
All Locales occurring in any repo.
Definition PoolImpl.cc:583
zypp::sat::detail::PoolImpl::isRequestedLocale
bool isRequestedLocale(const Locale &locale_r) const
Definition PoolImpl.h:274
zypp::sat::detail::PoolImpl::serialIDs
const SerialNumber & serialIDs() const
Serial number changing whenever resusePoolIDs==true was used.
Definition PoolImpl.h:76
zypp::sat::detail::PoolImpl::eraseRequestedLocale
bool eraseRequestedLocale(const Locale &locale_r)
User change (tracked).
Definition PoolImpl.cc:502
zypp::sat::detail::PoolImpl::getRequestedLocales
const LocaleSet & getRequestedLocales() const
Current set of requested Locales.
Definition PoolImpl.h:271
zypp::sat::detail::PoolImpl::setRequestedLocales
void setRequestedLocales(const LocaleSet &locales_r)
User change (tracked).
Definition PoolImpl.cc:482
zypp::sat::detail::PoolImpl::getRemovedRequestedLocales
const LocaleSet & getRemovedRequestedLocales() const
Removed since last initRequestedLocales.
Definition PoolImpl.h:267
zypp::sat::detail::PoolImpl::setNeedrebootSpec
void setNeedrebootSpec(sat::SolvableSpec needrebootSpec_r)
Set new Solvable specs.
Definition PoolImpl.h:334
zypp::sat::detail::PoolImpl::multiversionList
const MultiversionList & multiversionList() const
Definition PoolImpl.cc:629
zypp::sat::detail::PoolImpl::isAvailableLocale
bool isAvailableLocale(const Locale &locale_r) const
Definition PoolImpl.h:287
zypp::sat::detail::PoolImpl::getAddedRequestedLocales
const LocaleSet & getAddedRequestedLocales() const
Added since last initRequestedLocales.
Definition PoolImpl.h:263
zypp::sat::detail::PoolImpl::setAutoInstalled
void setAutoInstalled(const StringQueue &autoInstalled_r)
Set ident list of all autoinstalled solvables.
Definition PoolImpl.h:320
zypp::sat::detail::PoolImpl::addRequestedLocale
bool addRequestedLocale(const Locale &locale_r)
User change (tracked).
Definition PoolImpl.cc:491
zypp::sat::detail::PoolImpl::prepare
void prepare() const
Update housekeeping data (e.g.
Definition PoolImpl.cc:283
zypp::sat::detail::PoolImpl::systemRepoAlias
static const std::string & systemRepoAlias()
Reserved system repository alias @System .
Definition PoolImpl.cc:102
zypp::sat::detail::PoolImpl::serial
const SerialNumber & serial() const
Serial number changing whenever the content changes.
Definition PoolImpl.h:72
zyppng::IdStringType::id
IdType id() const
Definition IdStringType.h:123
str
String related utilities and Regular expression matching.
zypp::sat::detail::CRepo
::s_Repo CRepo
Wrapped libsolv C data type exposed as backdoor.
Definition PoolDefines.h:36
zypp::sat::detail::CSolvable
::s_Solvable CSolvable
Wrapped libsolv C data type exposed as backdoor.
Definition PoolDefines.h:37
zypp::sat::detail::CPool
::s_Pool CPool
Wrapped libsolv C data type exposed as backdoor.
Definition PoolDefines.h:34
zypp::sat
Libsolv interface
zypp::sat::operator<<
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
relates: FileConflicts Stream output
Definition FileConflicts.cc:109
zypp::sat::updateSolvFileIndex
void updateSolvFileIndex(const Pathname &solvfile_r)
Create solv file content digest for zypper bash completion.
Definition Pool.cc:286
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition CodePitfalls.doc:2
zypp::LocaleSet
std::unordered_set< Locale > LocaleSet
Definition Locale.h:29
PoolImpl.h
zypp::Repository::EraseFromPool
Functor removing Repository from its Pool.
Definition Repository.h:444
zypp::sat::detail::PoolMember::myPool
static PoolImpl & myPool()
Definition PoolMember.cc:41