~thopiekar/zypper/libzypp-manual-import

« back to all changes in this revision

Viewing changes to zypp/sat/detail/PoolImpl.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:
21
21
}
22
22
#include <iosfwd>
23
23
 
24
 
#include "zypp/base/Tr1hash.h"
 
24
#include "zypp/base/Hash.h"
25
25
#include "zypp/base/NonCopyable.h"
26
26
#include "zypp/base/SerialNumber.h"
 
27
#include "zypp/base/SetTracker.h"
27
28
#include "zypp/sat/detail/PoolMember.h"
28
29
#include "zypp/sat/Queue.h"
29
30
#include "zypp/RepoInfo.h"
37
38
  ///////////////////////////////////////////////////////////////////
38
39
  namespace sat
39
40
  { /////////////////////////////////////////////////////////////////
 
41
    class SolvableSet;
40
42
    ///////////////////////////////////////////////////////////////////
41
43
    namespace detail
42
44
    { /////////////////////////////////////////////////////////////////
77
79
           */
78
80
          void setDirty( const char * a1 = 0, const char * a2 = 0, const char * a3 = 0 );
79
81
 
 
82
          /** Invalidate locale related housekeeping data.
 
83
           */
 
84
          void localeSetDirty( const char * a1 = 0, const char * a2 = 0, const char * a3 = 0 );
 
85
 
80
86
          /** Invalidate housekeeping data (e.g. whatprovides) if dependencies changed.
81
87
           */
82
88
          void depSetDirty( const char * a1 = 0, const char * a2 = 0, const char * a3 = 0 );
216
222
          { prepare(); return ::pool_whatprovides( _pool, cap_r.id() ); }
217
223
 
218
224
        public:
219
 
          /** \name Requested locales. */
 
225
          /// \name Requested locales.
 
226
          /// The requested LocaleSets managed in _requestedLocalesTracker
 
227
          /// are unexpanded; i.e. they contain just the pure user selection.
 
228
          /// The resolver however uses expanded sets ('de_DE' will also
 
229
          /// include its fallback locales 'de', (en); here in the namespace:
 
230
          /// callback and in the Resolver itself).
220
231
          //@{
 
232
          /** */
221
233
          void setTextLocale( const Locale & locale_r );
 
234
 
 
235
 
 
236
          /** Start tracking changes based on this \a locales_r.
 
237
           * Usually called on TargetInit.
 
238
           */
 
239
          void initRequestedLocales( const LocaleSet & locales_r );
 
240
 
 
241
          /** Added since last initRequestedLocales. */
 
242
          const LocaleSet & getAddedRequestedLocales() const
 
243
          { return _requestedLocalesTracker.added(); }
 
244
 
 
245
          /** Removed since last initRequestedLocales. */
 
246
          const LocaleSet & getRemovedRequestedLocales() const
 
247
          { return _requestedLocalesTracker.removed(); }
 
248
 
 
249
          /** Current set of requested Locales. */
 
250
          const LocaleSet & getRequestedLocales() const
 
251
          { return _requestedLocalesTracker.current(); }
 
252
 
 
253
          bool isRequestedLocale( const Locale & locale_r ) const
 
254
          { return _requestedLocalesTracker.contains( locale_r ); }
 
255
 
 
256
          /** User change (tracked). */
222
257
          void setRequestedLocales( const LocaleSet & locales_r );
 
258
          /** User change (tracked). */
223
259
          bool addRequestedLocale( const Locale & locale_r );
 
260
          /** User change (tracked). */
224
261
          bool eraseRequestedLocale( const Locale & locale_r );
225
262
 
226
 
          const LocaleSet & getRequestedLocales() const
227
 
          { return _requestedLocales; }
228
 
 
229
 
          bool isRequestedLocale( const Locale & locale_r ) const
230
 
          {
231
 
            LocaleSet::const_iterator it( _requestedLocales.find( locale_r ) );
232
 
            return it != _requestedLocales.end();
233
 
          }
234
 
 
 
263
          /** All Locales occurring in any repo. */
235
264
          const LocaleSet & getAvailableLocales() const;
236
265
 
237
266
          bool isAvailableLocale( const Locale & locale_r ) const
240
269
            LocaleSet::const_iterator it( avl.find( locale_r ) );
241
270
            return it != avl.end();
242
271
          }
 
272
 
 
273
          typedef base::SetTracker<IdStringSet> TrackedLocaleIds;
 
274
 
 
275
          /** Expanded _requestedLocalesTracker for solver.*/
 
276
          const TrackedLocaleIds & trackedLocaleIds() const;
243
277
          //@}
244
278
 
245
279
        public:
246
280
          /** \name Multiversion install. */
247
281
          //@{
248
 
          typedef IdStringSet MultiversionList;
249
 
 
250
 
          const MultiversionList & multiversionList() const
251
 
          {
252
 
            if ( ! _multiversionListPtr )
253
 
              multiversionListInit();
254
 
            return *_multiversionListPtr;
255
 
          }
256
 
 
257
 
          bool isMultiversion( IdString ident_r ) const
258
 
          {
259
 
            const MultiversionList & l( multiversionList() );
260
 
            return l.find( ident_r ) != l.end();
261
 
          }
 
282
          typedef SolvableSet MultiversionList;
 
283
 
 
284
          const MultiversionList & multiversionList() const;
 
285
 
 
286
          bool isMultiversion( const Solvable & solv_r ) const;
262
287
          //@}
263
288
 
264
289
        public:
291
316
          std::map<RepoIdType,RepoInfo> _repoinfos;
292
317
 
293
318
          /**  */
294
 
          LocaleSet _requestedLocales;
 
319
          base::SetTracker<LocaleSet> _requestedLocalesTracker;
 
320
          mutable scoped_ptr<TrackedLocaleIds> _trackedLocaleIdsPtr;
 
321
 
295
322
          mutable scoped_ptr<LocaleSet> _availableLocalesPtr;
296
 
          mutable std::tr1::unordered_set<IdString> _locale2Solver;
297
323
 
298
324
          /**  */
299
325
          void multiversionListInit() const;