libzypp  11.13.5
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 
26  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