libzypp  13.10.6
CountryCode.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_COUNTRYCODE_H
13 #define ZYPP_COUNTRYCODE_H
14 
15 #include <iosfwd>
16 #include <string>
17 
18 #include "zypp/base/PtrTypes.h"
19 
21 namespace zypp
22 {
23 
24  class CountryCode;
25  inline bool operator==( const CountryCode & lhs, const CountryCode & rhs );
26  inline bool operator!=( const CountryCode & lhs, const CountryCode & rhs );
27 
29  //
30  // CLASS NAME : CountryCode
31  //
38  {
39  friend std::ostream & operator<<( std::ostream & str, const CountryCode & obj );
40 
41  public:
43  class Impl;
44 
45  public:
47  CountryCode();
48 
50  explicit
51  CountryCode( const std::string & code_r );
52 
54  ~CountryCode();
55 
56  public:
57 
61  static const CountryCode noCode;
63 
64  public:
66  std::string code() const;
67 
69  std::string name() const;
70 
72  bool hasCode() const
73  { return *this != noCode; }
74 
75  private:
78  };
80 
82  inline std::ostream & operator<<( std::ostream & str, const CountryCode & obj )
83  { return str << obj.code(); }
84 
88  inline bool operator==( const CountryCode & lhs, const CountryCode & rhs ) {
89  return( lhs.code() == rhs.code() );
90  }
92  inline bool operator==( const std::string & lhs, const CountryCode & rhs ) {
93  return( lhs == rhs.code() );
94  }
96  inline bool operator==( const CountryCode & lhs, const std::string & rhs ) {
97  return( lhs.code() == rhs );
98  }
99 
101  inline bool operator!=( const CountryCode & lhs, const CountryCode & rhs ) {
102  return( ! operator==( lhs, rhs ) );
103  }
105  inline bool operator!=( const std::string & lhs, const CountryCode & rhs ) {
106  return( ! operator==( lhs, rhs ) );
107  }
109  inline bool operator!=( const CountryCode & lhs, const std::string & rhs ) {
110  return( ! operator==( lhs, rhs ) );
111  }
113 
115 } // namespace zypp
117 
119 namespace std
120 {
121 
122  template<>
123  inline bool less<zypp::CountryCode>::operator()( const zypp::CountryCode & lhs, const zypp::CountryCode & rhs ) const
124  { return lhs.code() < rhs.code(); }
126 } // namespace std
128 #endif // ZYPP_COUNTRYCODE_H
bool operator!=(const CountryCode &lhs, const CountryCode &rhs)
bool operator!=(const std::string &lhs, const CountryCode &rhs)
Definition: CountryCode.h:105
RW_pointer< Impl > _pimpl
Pointer to implementation.
Definition: CountryCode.h:77
bool operator==(const std::string &lhs, const CountryCode &rhs)
Definition: CountryCode.h:92
friend std::ostream & operator<<(std::ostream &str, const CountryCode &obj)
CountryCode()
Default ctor.
Definition: CountryCode.cc:149
std::ostream & operator<<(std::ostream &str, const CountryCode &obj)
Definition: CountryCode.h:82
bool operator==(const StrMatcher &lhs, const StrMatcher &rhs)
Definition: StrMatcher.cc:309
std::string name() const
Return the country name; if not available the country code.
Definition: CountryCode.cc:183
bool operator==(const CountryCode &lhs, const CountryCode &rhs)
Comparison based on string value.
Definition: CountryCode.h:88
bool operator==(const CountryCode &lhs, const std::string &rhs)
Definition: CountryCode.h:96
bool hasCode() const
*this != noCode.
Definition: CountryCode.h:72
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:265
bool operator!=(const CountryCode &lhs, const CountryCode &rhs)
Definition: CountryCode.h:101
static const CountryCode noCode
No or empty code.
Definition: CountryCode.h:61
std::string code() const
Return the country code.
Definition: CountryCode.cc:175
CountryCode implementation.
Definition: CountryCode.cc:97
Country codes (iso3166-1-alpha-2).
Definition: CountryCode.h:37
bool operator!=(const CountryCode &lhs, const std::string &rhs)
Definition: CountryCode.h:109