libzypp 17.31.7
Pool.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_SAT_POOL_H
13#define ZYPP_SAT_POOL_H
14
15#include <iosfwd>
16
17#include <zypp/Pathname.h>
18
20#include <zypp/Repository.h>
23#include <zypp/sat/Queue.h>
24
26namespace zypp
27{
28
29 class SerialNumber;
30 class RepoInfo;
31
33 namespace sat
34 {
35
36 class SolvableSpec;
37
39 //
40 // CLASS NAME : Pool
41 //
46 class Pool : protected detail::PoolMember
47 {
48 public:
52
53 public:
55 static Pool instance()
56 { return Pool(); }
57
60 {}
61
62 public:
64 size_type capacity() const;
65
67 const SerialNumber & serial() const;
68
70 const SerialNumber & serialIDs() const;
71
73 void prepare() const;
74
76 Pathname rootDir() const;
77
79 void rootDir( const Pathname & root_r );
80
81 public:
83 bool reposEmpty() const;
84
86 size_type reposSize() const;
87
90
93
96 { return makeIterable( reposBegin(), reposEnd() ); }
97
102 Repository reposInsert( const std::string & alias_r );
103
107 Repository reposFind( const std::string & alias_r ) const;
108
112 void reposErase( const std::string & alias_r )
113 { reposFind( alias_r ).eraseFromPool(); }
114
120 { while ( ! reposEmpty() ) reposErase( reposBegin()->alias() ); }
121
122 public:
124 static const std::string & systemRepoAlias();
125
128
131
132 public:
138 Repository addRepoSolv( const Pathname & file_r, const std::string & name_r );
140 Repository addRepoSolv( const Pathname & file_r );
144 Repository addRepoSolv( const Pathname & file_r, const RepoInfo & info_r );
145
146 public:
153 Repository addRepoHelix( const Pathname & file_r, const std::string & name_r );
155 Repository addRepoHelix( const Pathname & file_r );
159 Repository addRepoHelix( const Pathname & file_r, const RepoInfo & info_r );
160
161 public:
163 bool solvablesEmpty() const;
164
166 size_type solvablesSize() const;
167
170
173
176 { return makeIterable( solvablesBegin(), solvablesEnd() ); }
177
178 public:
181 template<class TFilter>
182 filter_iterator<TFilter,SolvableIterator> filterBegin( const TFilter & filter_r ) const
183 { return make_filter_iterator( filter_r, solvablesBegin(), solvablesEnd() ); }
184
185 template<class TFilter>
186 filter_iterator<TFilter,SolvableIterator> filterEnd( const TFilter & filter_r ) const
187 { return make_filter_iterator( filter_r, solvablesEnd(), solvablesEnd() ); }
189
190 public:
193 { return WhatProvides( cap_r ); }
194
195 Queue whatMatchesDep( const SolvAttr &attr, const Capability &cap ) const;
196 Queue whatMatchesSolvable ( const SolvAttr &attr, const Solvable &solv ) const;
197 Queue whatContainsDep ( const SolvAttr &attr, const Capability &cap ) const;
198
199 public:
205 void setTextLocale( const Locale & locale_r );
206
211 void setRequestedLocales( const LocaleSet & locales_r );
212
216 bool addRequestedLocale( const Locale & locale_r );
217
221 bool eraseRequestedLocale( const Locale & locale_r );
222
226 const LocaleSet & getRequestedLocales() const;
227
229 bool isRequestedLocale( const Locale & locale_r ) const;
230
231
233 void initRequestedLocales( const LocaleSet & locales_r );
234
236 const LocaleSet & getAddedRequestedLocales() const;
237
240
241
246 const LocaleSet & getAvailableLocales() const;
247
249 bool isAvailableLocale( const Locale & locale_r ) const;
251
252 public:
260 const MultiversionList & multiversion() const;
264
265 public:
269 Queue autoInstalled() const;
271 void setAutoInstalled( const Queue & autoInstalled_r );
273
274 public:
278 void setNeedrebootSpec( sat::SolvableSpec needrebootSpec_r );
280
281 public:
283 detail::CPool * get() const;
284 private:
286 Pool() {}
287 };
289
291 std::ostream & operator<<( std::ostream & str, const Pool & obj );
292
294 inline bool operator==( const Pool & lhs, const Pool & rhs )
295 { return lhs.get() == rhs.get(); }
296
298 inline bool operator!=( const Pool & lhs, const Pool & rhs )
299 { return lhs.get() != rhs.get(); }
300
302 void updateSolvFileIndex( const Pathname & solvfile_r );
303
305 } // namespace sat
308} // namespace zypp
310#endif // ZYPP_SAT_POOL_H
sat::SolvAttr attr
Definition: PoolQuery.cc:311
A sat capability.
Definition: Capability.h:60
'Language[_Country]' codes.
Definition: Locale.h:50
What is known about a repository.
Definition: RepoInfo.h:72
void eraseFromPool()
Remove this Repository from its Pool.
Definition: Repository.cc:297
Simple serial number provider.
Definition: SerialNumber.h:45
Global sat-pool.
Definition: Pool.h:47
filter_iterator< TFilter, SolvableIterator > filterEnd(const TFilter &filter_r) const
Definition: Pool.h:186
SolvableSet MultiversionList
Definition: Pool.h:259
const SerialNumber & serialIDs() const
Serial number changing whenever resusePoolIDs==true was used.
Definition: Pool.cc:58
Queue autoInstalled() const
Get ident list of all autoinstalled solvables.
Definition: Pool.cc:264
Pool(const detail::PoolMember &)
Ctor from PoolMember.
Definition: Pool.h:59
RepositoryIterator reposEnd() const
Iterator behind the last Repository.
Definition: Pool.cc:87
bool addRequestedLocale(const Locale &locale_r)
Add one Locale to the set of requested locales.
Definition: Pool.cc:239
size_type reposSize() const
Number of repos in Pool.
Definition: Pool.cc:73
const MultiversionList & multiversion() const
Definition: Pool.cc:261
const LocaleSet & getAvailableLocales() const
Get the set of available locales.
Definition: Pool.cc:255
void setAutoInstalled(const Queue &autoInstalled_r)
Set ident list of all autoinstalled solvables.
Definition: Pool.cc:265
Queue whatMatchesSolvable(const SolvAttr &attr, const Solvable &solv) const
Definition: Pool.cc:129
Iterable< RepositoryIterator > repos() const
Iterate the repositories.
Definition: Pool.h:95
const LocaleSet & getRemovedRequestedLocales() const
Removed since last initRequestedLocales.
Definition: Pool.cc:253
Pool()
Default ctor.
Definition: Pool.h:286
Queue whatContainsDep(const SolvAttr &attr, const Capability &cap) const
Definition: Pool.cc:136
bool solvablesEmpty() const
Whether Pool contains solvables.
Definition: Pool.cc:90
bool isRequestedLocale(const Locale &locale_r) const
Whether this Locale is in the set of requested locales.
Definition: Pool.cc:248
WhatProvides whatProvides(Capability cap_r) const
Conainer of all Solvable providing cap_r.
Definition: Pool.h:192
Repository findSystemRepo() const
Return the system repository if it is on the pool.
Definition: Pool.cc:173
size_type capacity() const
Internal array size for stats only.
Definition: Pool.cc:52
filter_iterator< TFilter, SolvableIterator > filterBegin(const TFilter &filter_r) const
Definition: Pool.h:182
void reposErase(const std::string &alias_r)
Remove a Repository named alias_r.
Definition: Pool.h:112
SolvableIterator solvablesEnd() const
Iterator behind the last Solvable.
Definition: Pool.cc:119
void setTextLocale(const Locale &locale_r)
Set the default language for retrieving translated texts.
Definition: Pool.cc:233
Iterable< SolvableIterator > solvables() const
Iterate the solvables.
Definition: Pool.h:175
detail::SolvableIterator SolvableIterator
Definition: Pool.h:49
Pathname rootDir() const
Get rootdir (for file conflicts check)
Definition: Pool.cc:64
zypp::detail::RepositoryIterator RepositoryIterator
Definition: Pool.h:50
RepositoryIterator reposBegin() const
Iterator to the first Repository.
Definition: Pool.cc:76
Repository reposFind(const std::string &alias_r) const
Find a Repository named alias_r.
Definition: Pool.cc:163
size_type solvablesSize() const
Number of solvables in Pool.
Definition: Pool.cc:103
const SerialNumber & serial() const
Housekeeping data serial number.
Definition: Pool.cc:55
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
bool eraseRequestedLocale(const Locale &locale_r)
Erase one Locale from the set of requested locales.
Definition: Pool.cc:242
void reposEraseAll()
Remove all repos from the pool.
Definition: Pool.h:119
static Pool instance()
Singleton ctor.
Definition: Pool.h:55
bool isAvailableLocale(const Locale &locale_r) const
Whether this Locale is in the set of available locales.
Definition: Pool.cc:258
Queue whatMatchesDep(const SolvAttr &attr, const Capability &cap) const
Definition: Pool.cc:122
ZYPP_DEPRECATED bool multiversionEmpty() const
Definition: Pool.h:262
static const std::string & systemRepoAlias()
Reserved system repository alias @System .
Definition: Pool.cc:46
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
SolvableIterator solvablesBegin() const
Iterator to the first Solvable.
Definition: Pool.cc:116
bool operator==(const Pool &lhs, const Pool &rhs)
Definition: Pool.h:294
Repository reposInsert(const std::string &alias_r)
Return a Repository named alias_r.
Definition: Pool.cc:143
void prepare() const
Update housekeeping data if necessary (e.g.
Definition: Pool.cc:61
detail::size_type size_type
Definition: Pool.h:51
void setNeedrebootSpec(sat::SolvableSpec needrebootSpec_r)
Solvables which should trigger the reboot-needed hint if installed/updated.
Definition: Pool.cc:267
detail::CPool * get() const
Expert backdoor.
Definition: Pool.cc:49
void setRequestedLocales(const LocaleSet &locales_r)
Set the requested locales.
Definition: Pool.cc:236
Repository systemRepo()
Return the system repository, create it if missing.
Definition: Pool.cc:178
const LocaleSet & getRequestedLocales() const
Return the requested locales.
Definition: Pool.cc:245
const LocaleSet & getAddedRequestedLocales() const
Added since last initRequestedLocales.
Definition: Pool.cc:252
bool reposEmpty() const
Whether Pool contains repos.
Definition: Pool.cc:70
bool operator!=(const Pool &lhs, const Pool &rhs)
Definition: Pool.h:298
void initRequestedLocales(const LocaleSet &locales_r)
Start tracking changes based on this locales_r.
Definition: Pool.cc:251
Libsolv Id queue wrapper.
Definition: Queue.h:35
Solvable attribute keys.
Definition: SolvAttr.h:41
Solvable set wrapper to allow adding additional convenience iterators.
Definition: SolvableSet.h:36
bool empty() const
Whether the set is epmty.
Definition: SolvableSet.h:59
Define a set of Solvables by ident and provides.
Definition: SolvableSpec.h:45
A Solvable object within the sat Pool.
Definition: Solvable.h:54
Container of Solvable providing a Capability (read only).
Definition: WhatProvides.h:89
Iterate over valid Solvables in the pool.
Definition: Solvable.h:516
String related utilities and Regular expression matching.
SolvableIdType size_type
Definition: PoolMember.h:126
::s_Pool CPool
Wrapped libsolv C data type exposed as backdoor.
Definition: PoolMember.h:61
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
void updateSolvFileIndex(const Pathname &solvfile_r)
Create solv file content digest for zypper bash completion.
Definition: Pool.cc:286
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
std::unordered_set< Locale > LocaleSet
Definition: Locale.h:27
Backlink to the associated PoolImpl.
Definition: PoolMember.h:89
#define ZYPP_DEPRECATED
The ZYPP_DEPRECATED macro can be used to trigger compile-time warnings with gcc >= 3....
Definition: Globals.h:99