~thopiekar/zypper/libzypp-manual-import

« back to all changes in this revision

Viewing changes to zypp/ResPool.h

  • Committer: Thomas-Karl Pietrowski
  • Date: 2015-08-15 15:59:50 UTC
  • Revision ID: thopiekar@googlemail.com-20150815155950-j66qn38efmvn289t
syncing with "changes 15.13.0 (11)"  #9a0aca7e3a21d768491b141a8ae86ef0c3fbc227
* https://github.com/openSUSE/libzypp/commit/9a0aca7e3a21d768491b141a8ae86ef0c3fbc227

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
   * an ordinary filter iterator. Do not provide filter iterators
44
44
   * here, if there is no index table for it.
45
45
   *
 
46
   * For most (*Begin,*End) iterator-pairs there's also an \ref Iterable
 
47
   * provided, so you can use then in range-based for loops:
 
48
   * \code
 
49
   *   // classic:
 
50
   *   for_( it, pool.filterBegin(myfilter), pool.filterEnd(myfilter) )
 
51
   *   { ... }
 
52
   *
 
53
   *   // range based:
 
54
   *   for ( const PoolItem & pi : pool.filter(myfilter) )
 
55
   *   { ... }
 
56
   * \endcode
 
57
   *
46
58
   * \include n_ResPool_nomorenameiter
47
59
  */
48
60
  class ResPool
110
122
      template<class _Filter>
111
123
      filter_iterator<_Filter,const_iterator> filterEnd( const _Filter & filter_r ) const
112
124
      { return make_filter_end( filter_r, *this ); }
 
125
 
 
126
      template<class _Filter>
 
127
      Iterable<filter_iterator<_Filter,const_iterator> > filter( const _Filter & filter_r ) const
 
128
      { return makeIterable( filterBegin( filter_r ), filterEnd( filter_r ) ); }
113
129
      //@}
114
130
 
115
131
      /** \name Iterate over all PoolItems by status.
136
152
 
137
153
      filter_iterator<filter::ByStatus,const_iterator> byStatusEnd( const filter::ByStatus & filter_r ) const
138
154
      { return make_filter_end( filter_r, *this ); }
 
155
 
 
156
      Iterable<filter_iterator<filter::ByStatus,const_iterator> > byStatus( const filter::ByStatus & filter_r ) const
 
157
      { return makeIterable( byStatusBegin( filter_r ), byStatusEnd( filter_r ) ); }
139
158
      //@}
140
159
 
141
160
    public:
204
223
      /** Takes a \ref sat::Solvable::ident string. */
205
224
      byIdent_iterator byIdentEnd( IdString ident_r ) const
206
225
      { return byIdentEnd( ByIdent(ident_r) ); }
 
226
 
 
227
 
 
228
      Iterable<byIdent_iterator> byIdent( const ByIdent & ident_r ) const
 
229
      { return makeIterable( byIdentBegin( ident_r ), byIdentEnd( ident_r ) ); }
 
230
 
 
231
      Iterable<byIdent_iterator> byIdent( ResKind kind_r, IdString name_r ) const
 
232
      { return makeIterable( byIdentBegin( kind_r, name_r ), byIdentEnd(  kind_r, name_r ) ); }
 
233
 
 
234
      Iterable<byIdent_iterator> byIdent( ResKind kind_r, const C_Str & name_r ) const
 
235
      { return makeIterable( byIdentBegin(  kind_r, name_r ), byIdentEnd(  kind_r, name_r ) ); }
 
236
 
 
237
      template<class _Res>
 
238
      Iterable<byIdent_iterator> byIdent( IdString name_r ) const
 
239
      { return makeIterable( byIdentBegin<_Res>( name_r ), byIdentEnd<_Res>( name_r ) ); }
 
240
 
 
241
      template<class _Res>
 
242
      Iterable<byIdent_iterator> byIdent( const C_Str & name_r ) const
 
243
      { return makeIterable( byIdentBegin<_Res>( name_r ), byIdentEnd<_Res>( name_r ) ); }
 
244
 
 
245
      Iterable<byIdent_iterator> byIdent( const PoolItem & pi_r ) const
 
246
      { return makeIterable( byIdentBegin( pi_r ), byIdentEnd( pi_r ) ); }
 
247
 
 
248
      Iterable<byIdent_iterator> byIdent(sat::Solvable slv_r ) const
 
249
      { return makeIterable( byIdentBegin( slv_r ), byIdentEnd( slv_r ) ); }
 
250
 
 
251
      Iterable<byIdent_iterator> byIdent( IdString ident_r ) const
 
252
      { return makeIterable( byIdentBegin( ident_r ), byIdentEnd( ident_r ) ); }
207
253
     //@}
208
254
 
209
255
    public:
225
271
      template<class _Res>
226
272
          byKind_iterator byKindEnd() const
227
273
      { return make_filter_end( resfilter::byKind<_Res>(), *this ); }
 
274
 
 
275
      Iterable<byKind_iterator> byKind( const ResKind & kind_r ) const
 
276
      { return makeIterable( byKindBegin( kind_r ), byKindEnd( kind_r ) ); }
 
277
 
 
278
      template<class _Res>
 
279
      Iterable<byKind_iterator> byKind() const
 
280
      { return makeIterable( byKindBegin<_Res>(), byKindEnd<_Res>() ); }
228
281
      //@}
229
282
 
230
283
    public:
238
291
 
239
292
      byName_iterator byNameEnd( const std::string & name_r ) const
240
293
      { return make_filter_end( ByName(name_r), *this ); }
 
294
 
 
295
      Iterable<byName_iterator> byName( const std::string & name_r ) const
 
296
      { return makeIterable( byNameBegin( name_r ), byNameEnd( name_r ) ); }
241
297
      //@}
242
298
 
243
299
    public:
259
315
       * Returns \ref Repository::norepository if there is no such \ref Repository.
260
316
       */
261
317
      Repository reposFind( const std::string & alias_r ) const;
 
318
 
 
319
      Iterable<repository_iterator> knownRepositories() const
 
320
      { return makeIterable( knownRepositoriesBegin(), knownRepositoriesEnd() ); }
262
321
      //@}
263
322
 
264
323
    public:
336
395
      hardLockQueries_iterator hardLockQueriesBegin() const;
337
396
      hardLockQueries_iterator hardLockQueriesEnd() const;
338
397
 
 
398
      Iterable<hardLockQueries_iterator> hardLockQueries() const
 
399
      { return makeIterable( hardLockQueriesBegin(), hardLockQueriesEnd() ); }
 
400
 
339
401
      /** Set a new set of queries.
340
402
       * The hard-locks of existing PoolItems are adjusted according
341
403
       * to the queries. (usually called on target load)