libzypp  17.25.0
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
zypp::sat::LocaleSupport::end
iterator end() const
Definition: LocaleSupport.h:96
zypp::sat::Pool::filterEnd
filter_iterator< TFilter, SolvableIterator > filterEnd(const TFilter &filter_r) const
Definition: Pool.h:186
zypp::sat::LocaleSupport::locale
const Locale & locale() const
My Locale.
Definition: LocaleSupport.h:73
zypp::sat::Pool::isAvailableLocale
bool isAvailableLocale(const Locale &locale_r) const
Whether this Locale is in the set of available locales.
Definition: Pool.cc:258
zypp::sat::LocaleSupport::operator!=
bool operator!=(const LocaleSupport &lhs, const LocaleSupport &rhs)
Definition: LocaleSupport.h:116
zypp::sat::LocaleSupport::isRequested
bool isRequested() const
Whether the solver will automatically select language specific packages for my Locale.
Definition: LocaleSupport.h:81
zypp::sat::Pool::filterBegin
filter_iterator< TFilter, SolvableIterator > filterBegin(const TFilter &filter_r) const
Definition: Pool.h:182
zypp::sat::LocaleSupport::iterator
Solvable_iterator iterator
Definition: LocaleSupport.h:91
PoolMember.h
zypp::sat::LocaleSupport::setRequested
void setRequested(bool yesno_r)
Turn on/off solver support for my Locale.
Definition: LocaleSupport.h:85
zypp::sat::LocaleSupport::LocaleSupport
LocaleSupport(const Locale &locale_r)
Ctor taking a Locale.
Definition: LocaleSupport.h:67
zypp::sat::dumpOn
std::ostream & dumpOn(std::ostream &str, const LocaleSupport &obj)
Definition: LocaleSupport.cc:39
zypp::sat::Pool
Global sat-pool.
Definition: Pool.h:46
zypp::sat::Pool::addRequestedLocale
bool addRequestedLocale(const Locale &locale_r)
Add one Locale to the set of requested locales.
Definition: Pool.cc:239
zypp::sat::LocaleSupport
Convenience methods to manage support for a specific Locale.
Definition: LocaleSupport.h:59
zypp::sat::LocaleSupport::operator<
bool operator<(const LocaleSupport &lhs, const LocaleSupport &rhs)
Definition: LocaleSupport.h:120
zypp::sat::operator<<
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
Definition: FileConflicts.cc:109
zypp::sat::Pool::eraseRequestedLocale
bool eraseRequestedLocale(const Locale &locale_r)
Erase one Locale from the set of requested locales.
Definition: Pool.cc:242
zypp::sat::LocaleSupport::_locale
Locale _locale
Definition: LocaleSupport.h:101
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
zypp::filter::ByLocaleSupport
Filter solvables according to their locale support.
Definition: Filter.h:62
zypp::sat::SolvIterMixin
Base class providing common iterator types based on a Solvable iterator.
Definition: SolvIterMixin.h:116
SolvIterMixin.h
zypp::sat::Pool::isRequestedLocale
bool isRequestedLocale(const Locale &locale_r) const
Whether this Locale is in the set of requested locales.
Definition: Pool.cc:248
zypp::sat::LocaleSupport::LocaleSupport
LocaleSupport()
Default ctor.
Definition: LocaleSupport.h:64
zypp::sat::LocaleSupport::operator==
bool operator==(const LocaleSupport &lhs, const LocaleSupport &rhs)
Definition: LocaleSupport.h:112
Locale.h
zypp::sat::LocaleSupport::isAvailable
bool isAvailable() const
Whether there are language specific packages supporting my Locale.
Definition: LocaleSupport.h:77
zypp::sat::detail::PoolMember
Backlink to the associated PoolImpl.
Definition: PoolMember.h:88
zypp::sat::SolvIterMixin< LocaleSupport, filter_iterator< filter::ByLocaleSupport, Pool::SolvableIterator > >::Solvable_iterator
filter_iterator< filter::ByLocaleSupport, Pool::SolvableIterator > Solvable_iterator
Definition: SolvIterMixin.h:150
str
String related utilities and Regular expression matching.
zypp::Locale
'Language[_Country]' codes.
Definition: Locale.h:49
zypp::sat::LocaleSupport::begin
iterator begin() const
Definition: LocaleSupport.h:93
Filter.h