23 #include <ktorrent_export.h>
24 #include "constants.h"
36 class KTORRENT_EXPORT BitSet
38 Uint32 num_bits,num_bytes;
46 BitSet(Uint32 num_bits = 8);
53 BitSet(
const Uint8* data,Uint32 num_bits);
64 bool isNull()
const {
return num_bits == 0;}
70 bool get(Uint32 i)
const;
77 void set(Uint32 i,
bool on);
82 Uint32 getNumBytes()
const {
return num_bytes;}
83 Uint32 getNumBits()
const {
return num_bits;}
84 const Uint8* getData()
const {
return data;}
85 Uint8* getData() {
return data;}
88 Uint32 numOnBits()
const {
return num_on;}
104 void orBitSet(
const BitSet & other);
110 void andBitSet(
const BitSet & other);
116 bool includesBitSet(
const BitSet & other);
147 bool operator == (
const BitSet & bs)
const;
152 bool operator != (
const BitSet & bs)
const {
return ! operator == (bs);}
157 void updateNumOnBits();
169 Uint8 b = data[byte] & (0x01 << (7 - bit));
184 data[byte] |= (0x01 << (7 - bit));
186 else if (!on && wasOn)
189 Uint8 b = (0x01 << (7 - bit));