⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitmask.hpp

📁 mysql-5.0.22.tar.gz源码包
💻 HPP
📖 第 1 页 / 共 2 页
字号:
   */  static void clear(Uint32 data[]);  void clear();  /**   * isclear -  Check if all bits are clear.  This is faster   * than checking count() == 0.   */  static bool isclear(const Uint32 data[]);  bool isclear() const;  /**   * count - Count number of set bits.   */  static unsigned count(const Uint32 data[]);  unsigned count() const;  /**   * find - Find first set bit, starting at given position.   * Returns NotFound when not found.   */  static unsigned find(const Uint32 data[], unsigned n);  unsigned find(unsigned n) const;  /**   * equal - Bitwise equal.   */  static bool equal(const Uint32 data[], const Uint32 data2[]);  bool equal(const BitmaskPOD<size>& mask2) const;  /**   * bitOR - Bitwise (x | y) into first operand.   */  static void bitOR(Uint32 data[], const Uint32 data2[]);  BitmaskPOD<size>& bitOR(const BitmaskPOD<size>& mask2);  /**   * bitAND - Bitwise (x & y) into first operand.   */  static void bitAND(Uint32 data[], const Uint32 data2[]);  BitmaskPOD<size>& bitAND(const BitmaskPOD<size>& mask2);  /**   * bitANDC - Bitwise (x & ~y) into first operand.   */  static void bitANDC(Uint32 data[], const Uint32 data2[]);  BitmaskPOD<size>& bitANDC(const BitmaskPOD<size>& mask2);  /**   * bitXOR - Bitwise (x ^ y) into first operand.   */  static void bitXOR(Uint32 data[], const Uint32 data2[]);  BitmaskPOD<size>& bitXOR(const BitmaskPOD<size>& mask2);  /**   * bitXORC - Bitwise (x ^ ~y) into first operand.   */  static void bitXORC(Uint32 data[], const Uint32 data2[]);  BitmaskPOD<size>& bitXORC(const BitmaskPOD<size>& mask2);  /**   * contains - Check if all bits set in data2 (that) are also set in data (this)   */  static bool contains(Uint32 data[], const Uint32 data2[]);  bool contains(BitmaskPOD<size> that);  /**   * overlaps - Check if any bit set in this BitmaskPOD (data) is also set in that (data2)   */  static bool overlaps(Uint32 data[], const Uint32 data2[]);  bool overlaps(BitmaskPOD<size> that);  /**   * getText - Return as hex-digits (only for debug routines).   */  static char* getText(const Uint32 data[], char* buf);  char* getText(char* buf) const;};template <unsigned size>inline voidBitmaskPOD<size>::assign(Uint32 dst[], const Uint32 src[]){  BitmaskImpl::assign(size, dst, src);}template <unsigned size>inline voidBitmaskPOD<size>::assign(Uint32 dst[], const BitmaskPOD<size> & src){  BitmaskImpl::assign(size, dst, src.rep.data);}template <unsigned size>inline voidBitmaskPOD<size>::assign(const typename BitmaskPOD<size>::Data & src){  BitmaskPOD<size>::assign(rep.data, src.data);}template <unsigned size>inline voidBitmaskPOD<size>::assign(const BitmaskPOD<size> & src){  BitmaskPOD<size>::assign(rep.data, src.rep.data);}template <unsigned size>inline voidBitmaskPOD<size>::copyto(unsigned sz, Uint32 dst[]) const{  BitmaskImpl::assign(sz, dst, rep.data);}template <unsigned size>inline voidBitmaskPOD<size>::assign(unsigned sz, const Uint32 src[]){  BitmaskImpl::assign(sz, rep.data, src);}template <unsigned size>inline boolBitmaskPOD<size>::get(const Uint32 data[], unsigned n){  return BitmaskImpl::get(size, data, n);}template <unsigned size>inline boolBitmaskPOD<size>::get(unsigned n) const{  return BitmaskPOD<size>::get(rep.data, n);}template <unsigned size>inline voidBitmaskPOD<size>::set(Uint32 data[], unsigned n, bool value){  BitmaskImpl::set(size, data, n, value);}template <unsigned size>inline voidBitmaskPOD<size>::set(unsigned n, bool value){  BitmaskPOD<size>::set(rep.data, n, value);}template <unsigned size>inline voidBitmaskPOD<size>::set(Uint32 data[], unsigned n){  BitmaskImpl::set(size, data, n);}template <unsigned size>inline voidBitmaskPOD<size>::set(unsigned n){  BitmaskPOD<size>::set(rep.data, n);}template <unsigned size>inline voidBitmaskPOD<size>::set(Uint32 data[]){  BitmaskImpl::set(size, data);}template <unsigned size>inline voidBitmaskPOD<size>::set(){  BitmaskPOD<size>::set(rep.data);}template <unsigned size>inline voidBitmaskPOD<size>::clear(Uint32 data[], unsigned n){  BitmaskImpl::clear(size, data, n);}template <unsigned size>inline voidBitmaskPOD<size>::clear(unsigned n){  BitmaskPOD<size>::clear(rep.data, n);}template <unsigned size>inline voidBitmaskPOD<size>::clear(Uint32 data[]){  BitmaskImpl::clear(size, data);}template <unsigned size>inline voidBitmaskPOD<size>::clear(){  BitmaskPOD<size>::clear(rep.data);}template <unsigned size>inline boolBitmaskPOD<size>::isclear(const Uint32 data[]){  return BitmaskImpl::isclear(size, data);}template <unsigned size>inline boolBitmaskPOD<size>::isclear() const{  return BitmaskPOD<size>::isclear(rep.data);}template <unsigned size>unsignedBitmaskPOD<size>::count(const Uint32 data[]){  return BitmaskImpl::count(size, data);}template <unsigned size>inline unsignedBitmaskPOD<size>::count() const{  return BitmaskPOD<size>::count(rep.data);}template <unsigned size>unsignedBitmaskPOD<size>::find(const Uint32 data[], unsigned n){  return BitmaskImpl::find(size, data, n);}template <unsigned size>inline unsignedBitmaskPOD<size>::find(unsigned n) const{  return BitmaskPOD<size>::find(rep.data, n);}template <unsigned size>inline boolBitmaskPOD<size>::equal(const Uint32 data[], const Uint32 data2[]){  return BitmaskImpl::equal(size, data, data2);}template <unsigned size>inline boolBitmaskPOD<size>::equal(const BitmaskPOD<size>& mask2) const{  return BitmaskPOD<size>::equal(rep.data, mask2.rep.data);}template <unsigned size>inline voidBitmaskPOD<size>::bitOR(Uint32 data[], const Uint32 data2[]){  BitmaskImpl::bitOR(size,data, data2);}template <unsigned size>inline BitmaskPOD<size>&BitmaskPOD<size>::bitOR(const BitmaskPOD<size>& mask2){  BitmaskPOD<size>::bitOR(rep.data, mask2.rep.data);  return *this;}template <unsigned size>inline voidBitmaskPOD<size>::bitAND(Uint32 data[], const Uint32 data2[]){  BitmaskImpl::bitAND(size,data, data2);}template <unsigned size>inline BitmaskPOD<size>&BitmaskPOD<size>::bitAND(const BitmaskPOD<size>& mask2){  BitmaskPOD<size>::bitAND(rep.data, mask2.rep.data);  return *this;}template <unsigned size>inline voidBitmaskPOD<size>::bitANDC(Uint32 data[], const Uint32 data2[]){  BitmaskImpl::bitANDC(size,data, data2);}template <unsigned size>inline BitmaskPOD<size>&BitmaskPOD<size>::bitANDC(const BitmaskPOD<size>& mask2){  BitmaskPOD<size>::bitANDC(rep.data, mask2.rep.data);  return *this;}template <unsigned size>inline voidBitmaskPOD<size>::bitXOR(Uint32 data[], const Uint32 data2[]){  BitmaskImpl::bitXOR(size,data, data2);}template <unsigned size>inline BitmaskPOD<size>&BitmaskPOD<size>::bitXOR(const BitmaskPOD<size>& mask2){  BitmaskPOD<size>::bitXOR(rep.data, mask2.rep.data);  return *this;}template <unsigned size>inline voidBitmaskPOD<size>::bitXORC(Uint32 data[], const Uint32 data2[]){  BitmaskImpl::bitXORC(size,data, data2);}template <unsigned size>inline BitmaskPOD<size>&BitmaskPOD<size>::bitXORC(const BitmaskPOD<size>& mask2){  BitmaskPOD<size>::bitXORC(rep.data, mask2.rep.data);  return *this;}template <unsigned size>char *BitmaskPOD<size>::getText(const Uint32 data[], char* buf){  return BitmaskImpl::getText(size, data, buf);}template <unsigned size>inline char *BitmaskPOD<size>::getText(char* buf) const{  return BitmaskPOD<size>::getText(rep.data, buf);}template <unsigned size>inline boolBitmaskPOD<size>::contains(Uint32 data[], const Uint32 data2[]){  return BitmaskImpl::contains(size, data, data2);}template <unsigned size>inline boolBitmaskPOD<size>::contains(BitmaskPOD<size> that){  return BitmaskPOD<size>::contains(this->rep.data, that.rep.data);}template <unsigned size>inline boolBitmaskPOD<size>::overlaps(Uint32 data[], const Uint32 data2[]){  return BitmaskImpl::overlaps(size, data, data2);}template <unsigned size>inline boolBitmaskPOD<size>::overlaps(BitmaskPOD<size> that){  return BitmaskPOD<size>::overlaps(this->rep.data, that.rep.data);}template <unsigned size>class Bitmask : public BitmaskPOD<size> {public:  Bitmask() { this->clear();}};inline voidBitmaskImpl::getField(unsigned size, const Uint32 src[],		      unsigned pos, unsigned len, Uint32 dst[]){  assert(pos + len <= (size << 5));    src += (pos >> 5);  Uint32 offset = pos & 31;  * dst = (* src >> offset) & (len >= 32 ? ~0 : (1 << len) - 1);    if(offset + len <= 32)  {    return;  }  Uint32 used = (32 - offset);  assert(len > used);  getFieldImpl(src+1, used & 31, len-used, dst+(used >> 5));}inline voidBitmaskImpl::setField(unsigned size, Uint32 dst[],		      unsigned pos, unsigned len, const Uint32 src[]){  assert(pos + len <= (size << 5));  dst += (pos >> 5);  Uint32 offset = pos & 31;  Uint32 mask = (len >= 32 ? ~0 : (1 << len) - 1) << offset;    * dst = (* dst & ~mask) | ((*src << offset) & mask);    if(offset + len <= 32)  {    return;  }  Uint32 used = (32 - offset);  assert(len > used);  setFieldImpl(dst+1, used & 31, len-used, src+(used >> 5));}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -