libzypp 17.37.17
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 //
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
89 RepositoryIterator reposBegin() const;
90
92 RepositoryIterator reposEnd() const;
93
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
127 Repository findSystemRepo() const;
128
130 Repository systemRepo();
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
169 SolvableIterator solvablesBegin() const;
170
172 SolvableIterator solvablesEnd() const;
173
177
178 public:
181 template<class TFilter>
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() ); }
188
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:
202
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
239 const LocaleSet & getRemovedRequestedLocales() const;
240
241
246 const LocaleSet & getAvailableLocales() const;
247
249 bool isAvailableLocale( const Locale & locale_r ) const;
251
252 public:
260 const MultiversionList & multiversion() const;
262 ZYPP_DEPRECATED bool multiversionEmpty() const { return multiversion().empty(); }
264
265 public:
268
269 Queue autoInstalled() const;
271 void setAutoInstalled( const Queue & autoInstalled_r );
273
274 public:
277
278 void setNeedrebootSpec( sat::SolvableSpec needrebootSpec_r );
280
281 public:
283 detail::CPool * get() const;
284 private:
286 Pool() {}
287 };
288
289
291 std::ostream & operator<<( std::ostream & str, const Pool & obj ) ZYPP_API;
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
An iterator over the subset of elements of some sequence which satisfy a given predicate.
A sat capability.
Definition Capability.h:63
Iterable< TIterator > makeIterable(TIterator &&begin_r, TIterator &&end_r)
convenient construction.
Definition Iterable.h:88
'Language[_Country]' codes.
Definition Locale.h:51
What is known about a repository.
Definition RepoInfo.h:72
Simple serial number provider.
filter_iterator< TFilter, SolvableIterator > filterEnd(const TFilter &filter_r) const
Definition Pool.h:186
Pool(const detail::PoolMember &)
Ctor from PoolMember.
Definition Pool.h:59
RepositoryIterator reposEnd() const
Iterator behind the last Repository.
Definition Pool.cc:87
detail::SolvableIterator SolvableIterator
Definition Pool.h:49
const MultiversionList & multiversion() const
Definition Pool.cc:261
Iterable< RepositoryIterator > repos() const
Iterate the repositories.
Definition Pool.h:95
Pool()
Default ctor.
Definition Pool.h:286
WhatProvides whatProvides(Capability cap_r) const
Conainer of all Solvable providing cap_r.
Definition Pool.h:192
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
Iterable< SolvableIterator > solvables() const
Iterate the solvables.
Definition Pool.h:175
SolvableSet MultiversionList
Definition Pool.h:259
detail::size_type size_type
Definition Pool.h:51
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
void reposEraseAll()
Remove all repos from the pool.
Definition Pool.h:119
static Pool instance()
Singleton ctor.
Definition Pool.h:55
ZYPP_DEPRECATED bool multiversionEmpty() const
Definition Pool.h:262
zypp::detail::RepositoryIterator RepositoryIterator
Definition Pool.h:50
SolvableIterator solvablesBegin() const
Iterator to the first Solvable.
Definition Pool.cc:116
bool operator==(const Pool &lhs, const Pool &rhs)
Definition Pool.h:294
detail::CPool * get() const
Expert backdoor.
Definition Pool.cc:49
bool reposEmpty() const
Whether Pool contains repos.
Definition Pool.cc:70
bool operator!=(const Pool &lhs, const Pool &rhs)
Definition Pool.h:298
Libsolv Id queue wrapper.
Definition Queue.h:36
Solvable attribute keys.
Definition SolvAttr.h:41
Solvable set wrapper to allow adding additional convenience iterators.
Definition SolvableSet.h:36
A Solvable object within the sat Pool.
Definition Solvable.h:54
Container of Solvable providing a Capability (read only).
Iterate over valid Solvables in the pool.
Definition Solvable.h:533
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
Libsolv interface
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.
std::unordered_set< Locale > LocaleSet
Definition Locale.h:29
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition Arch.h:247
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:112