Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
include
osl
container
pieceMask64.h
Go to the documentation of this file.
1
/* pieceMask64.h
2
*/
3
#ifndef PIECEMASK64_H
4
#define PIECEMASK64_H
5
6
#include "
osl/misc/mask.h
"
7
8
namespace
osl
9
{
10
namespace
container
11
{
12
class
PieceMask64
13
{
14
protected
:
15
misc::Mask64
mask
;
16
public
:
17
static
int
numToIndex
(
int
) {
return
0; }
18
static
int
numToOffset
(
int
num) {
return
num; }
19
PieceMask64
() {
resetAll
(); }
20
explicit
PieceMask64
(
misc::Mask64
const
& m) :
mask
(m) {}
21
protected
:
22
misc::Mask64
&
mutableMask
(
int
) {
return
mask
; }
23
public
:
24
const
misc::Mask64
&
getMask
(
int
)
const
{
return
mask
; }
25
void
resetAll
()
26
{
27
mask
=
misc::Mask64::makeDirect
(0uLL);
28
}
29
void
setAll
()
30
{
31
mask
=
misc::Mask64::makeDirect
(0xffffffffffuLL);
32
}
33
PieceMask64
&
operator^=
(
const
PieceMask64
& o)
34
{
35
mask
^= o.
mask
;
36
return
*
this
;
37
}
38
PieceMask64
&
operator&=
(
const
PieceMask64
& o)
39
{
40
mask
&= o.
mask
;
41
return
*
this
;
42
}
43
PieceMask64
&
operator|=
(
const
PieceMask64
& o)
44
{
45
mask
|= o.
mask
;
46
return
*
this
;
47
}
48
PieceMask64
&
operator-=
(
const
PieceMask64
& o)
49
{
50
mask
-= o.
mask
;
51
return
*
this
;
52
}
53
PieceMask64
&
operator+=
(
const
PieceMask64
& o)
54
{
55
mask
+= o.
mask
;
56
return
*
this
;
57
}
58
bool
none
()
const
{
return
mask
.
none
(); }
59
bool
hasMultipleBit
()
const
60
{
61
if
(
none
())
62
return
false
;
63
return
mask
.
hasMultipleBit
();
64
}
69
int
countBit2
()
const
70
{
71
if
(
none
())
72
return
0;
73
return
mask
.
countBit2
();
74
}
75
int
76
#ifdef __GNUC__
77
__attribute__
((pure))
78
#endif
79
countBit
()
const
80
{
81
return
mask
.
countBit
();
82
}
83
int
takeOneBit
()
84
{
85
assert(!
none
());
86
return
mask
.
takeOneBit
();
87
}
88
};
89
}
// namespace container
90
using
container::PieceMask64;
91
}
// namespace osl
92
93
94
#endif
/* PIECEMASK64_H */
95
// ;;; Local Variables:
96
// ;;; mode:c++
97
// ;;; c-basic-offset:2
98
// ;;; End:
Generated on Sun Jul 21 2013 13:37:26 by
1.8.4