class axl::sl::BitMap

#include <axl_sl_BitMap.h>

class BitMap
{
public:
    // construction

    BitMap(size_t bitCount = 0);
    BitMap(const BitMap& src);

    // methods

    BitMap&
    operator=(const BitMap& src);

    bool
    operator==(const BitMap& src) const;

    bool
    operator!=(const BitMap& src) const;

    const size_t*
    getMap() const;

    size_t*
    getMap();

    size_t
    getPageCount() const;

    size_t
    getBitCount() const;

    void
    clear();

    void
    copy(const BitMap& src);

    size_t
    hash() const;

    int
    cmp(const BitMap& src) const;

    bool
    isEqual(const BitMap& src) const;

    bool
    create(size_t bitCount);

    bool
    setBitCount(size_t bitCount);

    bool
    ensureBitCount(size_t bitCount);

    bool
    getBit(size_t bit) const;

    bool
    setBit(
        size_t bit,
        bool value = true
        );

    bool
    setBitResize(
        size_t bit,
        bool value = true
        );

    bool
    setBitRange(
        size_t from,
        size_t to,
        bool value = true
        );

    bool
    setBitRangeResize(
        size_t from,
        size_t to,
        bool value = true
        );

    bool
    merge(
        const BitMap& bitMap2,
        BitOpKind op
        );

    bool
    mergeResize(
        const BitMap& bitMap2,
        BitOpKind op
        );

    void
    inverse();

    size_t
    findBit(
        size_t start,
        bool value = true
        ) const;
};