libzypp 17.28.8
ResFilters.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_RESFILTERS_H
13#define ZYPP_RESFILTERS_H
14
15#include <boost/function.hpp>
16
18#include <zypp/Filter.h>
19#include <zypp/Resolvable.h>
20
21#include <zypp/PoolItem.h>
22#include <zypp/Repository.h>
23
25namespace zypp
26{
28 namespace resfilter
29 {
30
145 //
146 // Some ResObject attributes
147 //
149
151 typedef std::unary_function<ResObject::constPtr, bool> ResObjectFilterFunctor;
152 typedef boost::function<bool ( ResObject::constPtr )> ResFilter;
153
155 template<class TRes>
158
161 {
163 {}
164
165 ByName( const std::string & name_r )
166 : _name( name_r )
167 {}
168
170 {
171 return p->name() == _name;
172 }
173
174 std::string _name;
175 };
176
179 {
180 ByRepository( Repository repository_r )
181 : _alias( repository_r.info().alias() )
182 {}
183
184 ByRepository( const std::string & alias_r )
185 : _alias( alias_r )
186 {}
187
189 {
190 return p->repoInfo().alias() == _alias;
191 }
192
193 std::string _alias;
194 };
195
208 template<class TCompare = CompareByEQ<Edition> >
210 {
211 ByEdition( const Edition & edition_r, TCompare cmp_r )
212 : _edition( edition_r )
213 , _cmp( cmp_r )
214 {}
215
217 {
218 return _cmp( p->edition(), _edition );
219 }
220
222 TCompare _cmp;
223 };
224
226 template<class TCompare>
227 ByEdition<TCompare> byEdition( const Edition & edition_r, TCompare cmp_r )
228 { return ByEdition<TCompare>( edition_r, cmp_r ); }
229
231 template<class TCompare>
233 { return byEdition( edition_r, TCompare() ); }
234
235
248 template<class TCompare = CompareByEQ<Arch> >
250 {
251 ByArch( const Arch & arch_r, TCompare cmp_r )
252 : _arch( arch_r )
253 , _cmp( cmp_r )
254 {}
255
257 {
258 return _cmp( p->arch(), _arch );
259 }
260
262 TCompare _cmp;
263 };
264
266 template<class TCompare>
267 ByArch<TCompare> byArch( const Arch & arch_r, TCompare cmp_r )
268 { return ByArch<TCompare>( arch_r, cmp_r ); }
269
271 template<class TCompare>
272 ByArch<TCompare> byArch( const Arch & arch_r )
273 { return byArch( arch_r, TCompare() ); }
274
275
277
279 //
280 // Some PoolItem attributes
281 //
283
285 typedef std::unary_function<PoolItem, bool> PoolItemFilterFunctor;
286
289 {
290 bool operator()( const PoolItem & p ) const
291 {
292 return p.status().isInstalled();
293 }
294 };
295
298 {
299 bool operator()( const PoolItem & p ) const
300 {
301 return p.status().isUninstalled();
302 }
303 };
304
307 {
308 bool operator()( const PoolItem & p ) const
309 {
310 return p.status().transacts();
311 }
312 };
313
316 {
317 bool operator()( const PoolItem & p ) const
318 {
319 return p.status().isLocked();
320 }
321 };
322
325 {
326 bool operator()( const PoolItem & p ) const
327 {
328 return p.status().isKept();
329 }
330 };
331
334 {
335 bool operator()( const PoolItem & p ) const
336 {
337 return p.status().isRecommended();
338 }
339 };
340
343 {
344 bool operator()( const PoolItem & p ) const
345 {
346 return p.status().isSuggested();
347 }
348 };
349
351
352 } // namespace resfilter
355} // namespace zypp
357#endif // ZYPP_RESFILTERS_H
Architecture.
Definition: Arch.h:37
Edition represents [epoch:]version[-release]
Definition: Edition.h:61
Combining sat::Solvable and ResStatus.
Definition: PoolItem.h:51
ResStatus & status() const
Returns the current status.
Definition: PoolItem.cc:204
TraitsType::constPtrType constPtr
Definition: ResObject.h:43
bool isSuggested() const
Definition: ResStatus.h:185
bool isLocked() const
Definition: ResStatus.h:264
bool isKept() const
Definition: ResStatus.h:273
bool transacts() const
Definition: ResStatus.h:276
bool isRecommended() const
Definition: ResStatus.h:182
bool isInstalled() const
Definition: ResStatus.h:240
bool isUninstalled() const
Definition: ResStatus.h:243
Filter solvables according to their kind.
Definition: Filter.h:106
ByEdition< TCompare > byEdition(const Edition &edition_r, TCompare cmp_r)
Definition: ResFilters.h:227
ByArch< TCompare > byArch(const Arch &arch_r, TCompare cmp_r)
Definition: ResFilters.h:267
boost::function< bool(ResObject::constPtr)> ResFilter
Definition: ResFilters.h:152
filter::ByKind byKind()
Definition: ResFilters.h:156
std::unary_function< PoolItem, bool > PoolItemFilterFunctor
Definition: ResFilters.h:285
std::unary_function< ResObject::constPtr, bool > ResObjectFilterFunctor
Definition: ResFilters.h:151
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
ResTraits.
Definition: ResTraits.h:80
Select ResObject by Arch using TCompare functor.
Definition: ResFilters.h:250
ByArch(const Arch &arch_r, TCompare cmp_r)
Definition: ResFilters.h:251
bool operator()(ResObject::constPtr p) const
Definition: ResFilters.h:256
Select ResObject by Edition using TCompare functor.
Definition: ResFilters.h:210
ByEdition(const Edition &edition_r, TCompare cmp_r)
Definition: ResFilters.h:211
bool operator()(ResObject::constPtr p) const
Definition: ResFilters.h:216
Select PoolItem by installed.
Definition: ResFilters.h:289
bool operator()(const PoolItem &p) const
Definition: ResFilters.h:290
Select PoolItem by keep.
Definition: ResFilters.h:325
bool operator()(const PoolItem &p) const
Definition: ResFilters.h:326
Select PoolItem by lock.
Definition: ResFilters.h:316
bool operator()(const PoolItem &p) const
Definition: ResFilters.h:317
Select ResObject by name.
Definition: ResFilters.h:161
ByName(const std::string &name_r)
Definition: ResFilters.h:165
bool operator()(ResObject::constPtr p) const
Definition: ResFilters.h:169
PoolItem which is recommended.
Definition: ResFilters.h:334
bool operator()(const PoolItem &p) const
Definition: ResFilters.h:335
Select ResObject by repository or repository alias.
Definition: ResFilters.h:179
ByRepository(const std::string &alias_r)
Definition: ResFilters.h:184
ByRepository(Repository repository_r)
Definition: ResFilters.h:180
bool operator()(ResObject::constPtr p) const
Definition: ResFilters.h:188
PoolItem which is suggested.
Definition: ResFilters.h:343
bool operator()(const PoolItem &p) const
Definition: ResFilters.h:344
Select PoolItem by transact.
Definition: ResFilters.h:307
bool operator()(const PoolItem &p) const
Definition: ResFilters.h:308
Select PoolItem by uninstalled.
Definition: ResFilters.h:298
bool operator()(const PoolItem &p) const
Definition: ResFilters.h:299