libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Range.h
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
12
#ifndef ZYPP_RANGE_H
13
#define ZYPP_RANGE_H
14
15
#include "
zypp/RelCompare.h
"
16
18
namespace
zypp
19
{
20
21
namespace
range_detail
22
{
23
bool
overlaps
( Rel lhs, Rel rhs,
int
cmp );
24
}
25
27
//
28
// CLASS NAME : Range
29
//
33
template
<
class
_Tp,
class
_Compare = Compare<_Tp> >
34
struct
Range
35
{
37
Rel
op
;
39
_Tp
value
;
40
42
Range
()
43
:
op
(
Rel
::ANY )
44
{}
45
47
Range
(
const
_Tp & value_r )
48
:
op
(
Rel
::EQ )
49
,
value
( value_r )
50
{}
51
53
Range
(
Rel
op_r,
const
_Tp & value_r )
54
:
op
( op_r )
55
,
value
( value_r )
56
{}
57
59
bool
overlaps
(
const
Range
& rhs )
const
60
{
61
return
range_detail::overlaps
(
op
, rhs.
op
,
62
_Compare()(
value
, rhs.
value
) );
63
}
64
};
66
67
template
<
class
_Tp,
class
_Compare>
68
inline
bool
overlaps
(
const
Range<_Tp,_Compare>
& lhs,
69
const
Range<_Tp,_Compare>
& rhs )
70
{
return
lhs.
overlaps
( rhs ); }
71
73
74
template
<
class
_Tp,
class
_Compare>
75
inline
bool
operator==
(
const
Range<_Tp,_Compare>
& lhs,
76
const
Range<_Tp,_Compare>
& rhs )
77
{
78
return
( lhs.
op
== rhs.
op
79
&& ( lhs.
op
==
Rel::ANY
80
|| lhs.
op
==
Rel::NONE
81
|| relCompare(
Rel::EQ
, lhs.
value
, rhs.
value
,
82
_Compare() )
83
)
84
);
85
}
86
87
template
<
class
_Tp,
class
_Compare>
88
inline
bool
operator!=
(
const
Range<_Tp,_Compare>
& lhs,
89
const
Range<_Tp,_Compare>
& rhs )
90
{
return
! ( lhs == rhs ); }
91
93
}
// namespace zypp
95
#endif // ZYPP_RANGE_H
zypp
Range.h
Generated by
1.8.1