libzypp: zypp/sat/Pool.h Source File

libzypp 17.38.9

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-core/Pathname.h>
18
19#include <zypp/sat/detail/PoolMember.h>
20#include <zypp/Repository.h>
21#include <zypp/sat/WhatProvides.h>
22#include <zypp/sat/SolvableSet.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 ZYPP_API Pool : protected detail::PoolMember
47 {
48 public:
49 using SolvableIterator = detail::SolvableIterator;
50 using RepositoryIterator = zypp::detail::RepositoryIterator;
51 using size_type = detail::size_type;
52
53 public:
55 static Pool instance()
56 { return Pool(); }
57
59 Pool( const detail::PoolMember & )
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
95 Iterable<RepositoryIterator> repos() const
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
119 void reposEraseAll()
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
175 Iterable<SolvableIterator> solvables() const
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() ); }
188
189
190 public:
192 WhatProvides whatProvides( Capability cap_r ) const
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:
259 using MultiversionList = SolvableSet;
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
ZYPP_DEPRECATED
#define ZYPP_DEPRECATED
The ZYPP_DEPRECATED macro can be used to trigger compile-time warnings with gcc >= 3....
Definition Globals.h:112
Pathname.h
PoolMember.h
Queue.h
Repository.h
SolvableSet.h
WhatProvides.h
filter_iterator
An iterator over the subset of elements of some sequence which satisfy a given predicate.
zypp::Capability
A sat capability.
Definition Capability.h:63
zypp::Iterable
Definition Iterable.h:37
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::SerialNumber
Simple serial number provider.
Definition SerialNumber.h:45
zypp::detail::RepositoryIterator
Definition Repository.h:465
zypp::filesystem::Pathname
Pathname.
Definition Pathname.h:48
zypp::sat::Pool
Global sat-pool.
Definition Pool.h:47
zypp::sat::Pool::filterEnd
filter_iterator< TFilter, SolvableIterator > filterEnd(const TFilter &filter_r) const
Definition Pool.h:186
zypp::sat::Pool::Pool
Pool(const detail::PoolMember &)
Ctor from PoolMember.
Definition Pool.h:59
zypp::sat::Pool::reposEnd
RepositoryIterator reposEnd() const
Iterator behind the last Repository.
Definition Pool.cc:87
zypp::sat::Pool::SolvableIterator
detail::SolvableIterator SolvableIterator
Definition Pool.h:49
zypp::sat::Pool::multiversion
const MultiversionList & multiversion() const
Definition Pool.cc:261
zypp::sat::Pool::repos
Iterable< RepositoryIterator > repos() const
Iterate the repositories.
Definition Pool.h:95
zypp::sat::Pool::Pool
Pool()
Default ctor.
Definition Pool.h:286
zypp::sat::Pool::whatProvides
WhatProvides whatProvides(Capability cap_r) const
Conainer of all Solvable providing cap_r.
Definition Pool.h:192
zypp::sat::Pool::filterBegin
filter_iterator< TFilter, SolvableIterator > filterBegin(const TFilter &filter_r) const
Definition Pool.h:182
zypp::sat::Pool::reposErase
void reposErase(const std::string &alias_r)
Remove a Repository named alias_r.
Definition Pool.h:112
zypp::sat::Pool::solvablesEnd
SolvableIterator solvablesEnd() const
Iterator behind the last Solvable.
Definition Pool.cc:119
zypp::sat::Pool::solvables
Iterable< SolvableIterator > solvables() const
Iterate the solvables.
Definition Pool.h:175
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::reposEraseAll
void reposEraseAll()
Remove all repos from the pool.
Definition Pool.h:119
zypp::sat::Pool::instance
static Pool instance()
Singleton ctor.
Definition Pool.h:55
zypp::sat::Pool::multiversionEmpty
ZYPP_DEPRECATED bool multiversionEmpty() const
Definition Pool.h:262
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::get
detail::CPool * get() const
Expert backdoor.
Definition Pool.cc:49
zypp::sat::Pool::reposEmpty
bool reposEmpty() const
Whether Pool contains repos.
Definition Pool.cc:70
zypp::sat::Queue
Libsolv Id queue wrapper.
Definition Queue.h:36
zypp::sat::SolvAttr
Solvable attribute keys.
Definition SolvAttr.h:41
zypp::sat::SolvableSet
Solvable set wrapper to allow adding additional convenience iterators.
Definition SolvableSet.h:36
zypp::sat::Solvable
A Solvable object within the sat Pool.
Definition Solvable.h:54
zypp::sat::WhatProvides
Container of Solvable providing a Capability (read only).
Definition WhatProvides.h:89
zypp::sat::detail::SolvableIterator
Iterate over valid Solvables in the pool.
Definition Solvable.h:552
str
String related utilities and Regular expression matching.
zypp::sat::detail::size_type
SolvableIdType size_type
Definition PoolDefines.h:64
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::operator!=
bool operator!=(const FileConflicts &lhs, const FileConflicts &rhs)
relates: FileConflicts
Definition FileConflicts.h:89
zypp::sat::operator==
bool operator==(const FileConflicts &lhs, const FileConflicts &rhs)
relates: FileConflicts
Definition FileConflicts.h:85
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::makeIterable
Iterable< TIterator > makeIterable(TIterator &&begin_r, TIterator &&end_r)
relates: Iterable convenient construction.
Definition Iterable.h:88
zypp::LocaleSet
std::unordered_set< Locale > LocaleSet
Definition Locale.h:29
zypp::ZYPP_API
const Arch Arch_empty ZYPP_API
relates: Arch This is an empty Arch represented by an empty string.
Definition Arch.h:173
zypp::sat::detail::PoolMember
Backlink to the associated PoolImpl.
Definition PoolMember.h:53