libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
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
{
39
enum
Result
{
NOMATCH
,
MATCH
,
IRRELEVANT
};
40
41
public
:
42
43
CapMatch
()
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
:
91
Result
_result
;
92
};
94
96
std::ostream &
operator<<
( std::ostream & str,
const
CapMatch
& obj );
97
99
}
// namespace zypp
101
#endif // ZYPP_CAPMATCH_H
zypp
CapMatch.h
Generated by
1.8.1