libzypp  13.10.6
LanguageCode.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_LANGUAGECODE_H
13 #define ZYPP_LANGUAGECODE_H
14 
15 #include <iosfwd>
16 #include <string>
17 
18 #include "zypp/base/PtrTypes.h"
19 
21 namespace zypp
22 {
23 
24  class LanguageCode;
25  inline bool operator==( const LanguageCode & lhs, const LanguageCode & rhs );
26  inline bool operator!=( const LanguageCode & lhs, const LanguageCode & rhs );
27 
29  //
30  // CLASS NAME : LanguageCode
31  //
38  {
39  friend std::ostream & operator<<( std::ostream & str, const LanguageCode & obj );
40 
41  public:
43  class Impl;
44 
45  public:
47  LanguageCode();
48 
50  explicit
51  LanguageCode( const std::string & code_r );
52 
54  ~LanguageCode();
55 
56  public:
60  static const LanguageCode noCode;
62 
63  public:
65  std::string code() const;
66 
68  std::string name() const;
69 
71  inline bool hasCode() const
72  { return *this != noCode; }
73 
74  private:
77  };
79 
81  inline std::ostream & operator<<( std::ostream & str, const LanguageCode & obj )
82  { return str << obj.code(); }
83 
87  inline bool operator==( const LanguageCode & lhs, const LanguageCode & rhs ) {
88  return( lhs.code() == rhs.code() );
89  }
91  inline bool operator==( const std::string & lhs, const LanguageCode & rhs ) {
92  return( lhs == rhs.code() );
93  }
95  inline bool operator==( const LanguageCode & lhs, const std::string & rhs ) {
96  return( lhs.code() == rhs );
97  }
98 
100  inline bool operator!=( const LanguageCode & lhs, const LanguageCode & rhs ) {
101  return( ! operator==( lhs, rhs ) );
102  }
104  inline bool operator!=( const std::string & lhs, const LanguageCode & rhs ) {
105  return( ! operator==( lhs, rhs ) );
106  }
108  inline bool operator!=( const LanguageCode & lhs, const std::string & rhs ) {
109  return( ! operator==( lhs, rhs ) );
110  }
112 
114 } // namespace zypp
116 
118 namespace std
119 {
120 
121  template<>
122  inline bool less<zypp::LanguageCode>::operator()( const zypp::LanguageCode & lhs, const zypp::LanguageCode & rhs ) const
123  { return lhs.code() < rhs.code(); }
125 } // namespace std
127 #endif // ZYPP_LANGUAGECODE_H
static const LanguageCode noCode
No or empty code.
Definition: LanguageCode.h:60
LanguageCode()
Default ctor.
bool operator!=(const CountryCode &lhs, const CountryCode &rhs)
std::string code() const
Return the language code.
bool operator!=(const LanguageCode &lhs, const LanguageCode &rhs)
Definition: LanguageCode.h:100
bool operator!=(const LanguageCode &lhs, const std::string &rhs)
Definition: LanguageCode.h:108
std::string name() const
Return the language name; if not available the language code.
bool operator==(const std::string &lhs, const LanguageCode &rhs)
Definition: LanguageCode.h:91
std::ostream & operator<<(std::ostream &str, const LanguageCode &obj)
Definition: LanguageCode.h:81
bool operator!=(const std::string &lhs, const LanguageCode &rhs)
Definition: LanguageCode.h:104
RW_pointer< Impl > _pimpl
Pointer to implementation.
Definition: LanguageCode.h:76
bool operator==(const StrMatcher &lhs, const StrMatcher &rhs)
Definition: StrMatcher.cc:309
bool hasCode() const
*this != noCode.
Definition: LanguageCode.h:71
friend std::ostream & operator<<(std::ostream &str, const LanguageCode &obj)
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:265
bool operator==(const LanguageCode &lhs, const std::string &rhs)
Definition: LanguageCode.h:95
Language codes (iso639_2/iso639_1).
Definition: LanguageCode.h:37
LanguageCode implementation.
Definition: LanguageCode.cc:97
bool operator==(const LanguageCode &lhs, const LanguageCode &rhs)
Comparison based on string value.
Definition: LanguageCode.h:87