libzypp  17.25.1
CapMatch.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_CAPMATCH_H
13 #define ZYPP_CAPMATCH_H
14 
15 #include <iosfwd>
16 
18 namespace zypp
19 {
20 
22  //
23  // CLASS NAME : CapMatch
24  //
37  class CapMatch
38  {
40 
41  public:
42 
44  : _result( IRRELEVANT )
45  {}
46 
47  CapMatch( bool val_r )
48  : _result( val_r ? MATCH : NOMATCH )
49  {}
50 
51  static const CapMatch yes;
52  static const CapMatch no;
53  static const CapMatch irrelevant;
54 
55  friend bool operator==( const CapMatch & lhs, const CapMatch & rhs )
56  { return lhs._result == rhs._result; }
57 
58  friend bool operator!=( const CapMatch & lhs, const CapMatch & rhs )
59  { return lhs._result != rhs._result; }
60 
61  friend CapMatch operator!( const CapMatch & lhs )
62  {
63  if ( lhs._result == CapMatch::IRRELEVANT )
64  return lhs;
65  return !(lhs._result == CapMatch::MATCH);
66  }
67 
68  friend CapMatch operator&&( const CapMatch & lhs, const CapMatch & rhs )
69  {
70  if ( lhs._result == CapMatch::IRRELEVANT )
71  return rhs;
72  if ( rhs._result == CapMatch::IRRELEVANT )
73  return lhs;
74  return (lhs._result == CapMatch::MATCH)
75  && (rhs._result == CapMatch::MATCH);
76  }
77 
78  friend CapMatch operator||( const CapMatch & lhs, const CapMatch & rhs )
79  {
80  if ( lhs._result == CapMatch::IRRELEVANT )
81  return rhs;
82  if ( rhs._result == CapMatch::IRRELEVANT )
83  return lhs;
84  return (lhs._result == CapMatch::MATCH)
85  || (rhs._result == CapMatch::MATCH);
86  }
87 
88  friend std::ostream & operator<<( std::ostream & str, const CapMatch & obj );
89 
90  private:
92  };
94 
96  std::ostream & operator<<( std::ostream & str, const CapMatch & obj );
97 
99 } // namespace zypp
101 #endif // ZYPP_CAPMATCH_H
zypp::CapMatch::operator!
friend CapMatch operator!(const CapMatch &lhs)
Definition: CapMatch.h:61
zypp::CapMatch::NOMATCH
Definition: CapMatch.h:39
zypp::CapMatch::Result
Result
Definition: CapMatch.h:39
zypp::CapMatch::MATCH
Definition: CapMatch.h:39
zypp::CapMatch::yes
static const CapMatch yes
Definition: CapMatch.h:51
zypp::CapMatch::operator<<
friend std::ostream & operator<<(std::ostream &str, const CapMatch &obj)
Definition: CapMatch.cc:31
zypp::CapMatch::operator!=
friend bool operator!=(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:58
zypp::CapMatch::operator&&
friend CapMatch operator&&(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:68
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
zypp::CapMatch::IRRELEVANT
Definition: CapMatch.h:39
zypp::CapMatch::CapMatch
CapMatch()
Definition: CapMatch.h:43
zypp::CapMatch::_result
Result _result
Definition: CapMatch.h:91
zypp::CapMatch::no
static const CapMatch no
Definition: CapMatch.h:52
zypp::operator<<
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:147
zypp::CapMatch
Tri state Capability match result.
Definition: CapMatch.h:37
zypp::CapMatch::operator||
friend CapMatch operator||(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:78
zypp::CapMatch::irrelevant
static const CapMatch irrelevant
Definition: CapMatch.h:53
str
String related utilities and Regular expression matching.
zypp::CapMatch::CapMatch
CapMatch(bool val_r)
Definition: CapMatch.h:47
zypp::CapMatch::operator==
friend bool operator==(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:55