libzypp 17.31.23
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
18namespace zypp
19{
20
22 //
23 // CLASS NAME : CapMatch
24 //
38 {
40
41 public:
42
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
Tri state Capability match result.
Definition: CapMatch.h:38
friend bool operator!=(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:58
friend bool operator==(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:55
Result _result
Definition: CapMatch.h:91
static const CapMatch no
Definition: CapMatch.h:52
static const CapMatch irrelevant
Definition: CapMatch.h:53
static const CapMatch yes
Definition: CapMatch.h:51
CapMatch(bool val_r)
Definition: CapMatch.h:47
friend CapMatch operator!(const CapMatch &lhs)
Definition: CapMatch.h:61
friend std::ostream & operator<<(std::ostream &str, const CapMatch &obj)
Definition: CapMatch.cc:32
friend CapMatch operator&&(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:68
friend CapMatch operator||(const CapMatch &lhs, const CapMatch &rhs)
Definition: CapMatch.h:78
String related utilities and Regular expression matching.
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition: SerialNumber.cc:52