EPICS ARCHIVER V4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups
Bitset.h
1 // -*- c++ -*-
2 #ifndef __BITSET_H__
3 #define __BITSET_H__
4 
5 // system
6 #include <stdint.h>
7 #include <memory.h>
8 #include <cstddef>
9 #include <string>
10 
11 // Tools
12 
13 // #include "tools/stdString.h"
14 #include "tools/NoCopy.h"
15 
23 class BitSet
24 {
25 public:
26 
27  BitSet ();
28 
29  ~BitSet ();
30 
32 
39  void grow(size_t minimum);
40 
44  void set(size_t bit);
45 
49  void clear(size_t bit);
50 
54  void set(size_t bit, bool value);
55 
59  bool test(size_t bit) const;
60 
62  bool empty() const;
63 
65  bool any() const;
66 
68  size_t count() const;
69 
71  size_t capacity() const
72  { return size; }
73 
75  std::string to_string() const;
76 
77 private:
78  PROHIBIT_DEFAULT_COPY(BitSet);
79 
80  uint32_t *bits;
81  size_t num; // # of W32 that _bits points to
82  size_t size; // bits used
83 };
84 
85 #endif //__BITSET_H__
86 
size_t capacity() const
Number of bits in Bitset.
Definition: Bitset.h:71
size_t count() const
Number of bits set.
bool empty() const
Whole bitset empty?
bool test(size_t bit) const
Check individual bit.
std::string to_string() const
Return 001000.... type of string.
void grow(size_t minimum)
Grow so that size is at least minimum.
void set(size_t bit)
Set bit to 1.
, .Reasons for reinventing this type of class:
Definition: Bitset.h:23
bool any() const
Any bit set?
void clear(size_t bit)
Clear bit, i.e.