libzypp  13.10.6
LocaleSupport.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_SAT_LOCALESUPPORT_H
13 #define ZYPP_SAT_LOCALESUPPORT_H
14 
15 #include <iosfwd>
16 
18 #include "zypp/sat/SolvIterMixin.h"
19 #include "zypp/Locale.h"
20 #include "zypp/Filter.h"
21 
23 namespace zypp
24 {
25  namespace sat
27  {
28 
30  //
31  // CLASS NAME : LocaleSupport
32  //
59  class LocaleSupport : public SolvIterMixin<LocaleSupport,filter_iterator<filter::ByLocaleSupport,Pool::SolvableIterator> >
60  , protected detail::PoolMember
61  {
62  public:
65  {}
67  LocaleSupport( const Locale & locale_r )
68  : _locale( locale_r )
69  {}
70 
71  public:
73  const Locale & locale() const
74  { return _locale; }
75 
77  bool isAvailable() const
78  { return Pool(*this).isAvailableLocale( _locale ); }
79 
81  bool isRequested() const
82  { return Pool(*this).isRequestedLocale( _locale ); }
83 
85  void setRequested( bool yesno_r )
86  { yesno_r ? Pool(*this).addRequestedLocale( _locale ) : Pool(*this).eraseRequestedLocale( _locale ); }
87 
88  public:
91  typedef Solvable_iterator iterator; // from SolvIterMixin
92 
93  iterator begin() const
94  { return Pool(*this).filterBegin( filter::ByLocaleSupport( _locale ) ); }
95 
96  iterator end() const
97  { return Pool(*this).filterEnd( filter::ByLocaleSupport( _locale ) ); }
99 
100  private:
102  };
104 
106  std::ostream & operator<<( std::ostream & str, const LocaleSupport & obj );
107 
109  std::ostream & dumpOn( std::ostream & str, const LocaleSupport & obj );
110 
112  inline bool operator==( const LocaleSupport & lhs, const LocaleSupport & rhs )
113  { return lhs.locale() == rhs.locale(); }
114 
116  inline bool operator!=( const LocaleSupport & lhs, const LocaleSupport & rhs )
117  { return lhs.locale() != rhs.locale(); }
118 
120  inline bool operator<( const LocaleSupport & lhs, const LocaleSupport & rhs )
121  { return lhs.locale() < rhs.locale(); }
122 
124  } // namespace sat
127 } // namespace zypp
129 #endif // ZYPP_SAT_LOCALESUPPORT_H
std::ostream & operator<<(std::ostream &str, const LocaleSupport &obj)
bool isRequestedLocale(const Locale &locale_r) const
Whether this Locale is in the set of requested locales.
Definition: Pool.cc:208
filter_iterator< _Filter, SolvableIterator > filterEnd(const _Filter &filter_r) const
Definition: Pool.h:161
iterator end() const
Definition: LocaleSupport.h:96
bool operator==(const LocaleSupport &lhs, const LocaleSupport &rhs)
LocaleSupport(const Locale &locale_r)
Ctor taking a Locale.
Definition: LocaleSupport.h:67
Base class providing common iterator types based on a Solvable iterator.
Backlink to the associated PoolImpl.
Definition: PoolMember.h:66
void setRequested(bool yesno_r)
Turn on/off solver support for my Locale.
Definition: LocaleSupport.h:85
Filter solvables according to their locale support.
Definition: Filter.h:62
bool isRequested() const
Whether the solver will automatically select language specific packages for my Locale.
Definition: LocaleSupport.h:81
Solvable_iterator iterator
Definition: LocaleSupport.h:91
LocaleSupport()
Default ctor.
Definition: LocaleSupport.h:64
bool operator!=(const LocaleSupport &lhs, const LocaleSupport &rhs)
Convenience methods to manage support for a specific Locale.
Definition: LocaleSupport.h:59
std::ostream & dumpOn(std::ostream &str, const LocaleSupport &obj)
bool addRequestedLocale(const Locale &locale_r)
Add one Locale to the set of requested locales.
Definition: Pool.cc:199
bool operator<(const LocaleSupport &lhs, const LocaleSupport &rhs)
bool isAvailableLocale(const Locale &locale_r) const
Whether this Locale is in the set of available locales.
Definition: Pool.cc:214
const Locale & locale() const
My Locale.
Definition: LocaleSupport.h:73
Global sat-pool.
Definition: Pool.h:42
filter_iterator< _Filter, SolvableIterator > filterBegin(const _Filter &filter_r) const
Definition: Pool.h:157
bool isAvailable() const
Whether there are language specific packages supporting my Locale.
Definition: LocaleSupport.h:77
iterator begin() const
Definition: LocaleSupport.h:93
bool eraseRequestedLocale(const Locale &locale_r)
Erase one Locale from the set of requested locales.
Definition: Pool.cc:202