home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c083 / 19.ddi / OWLINC.PAK / BITSET.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-02  |  2.1 KB  |  73 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows - (C) Copyright 1993, 1993 by Borland International
  3. //   source\owl\bitset.h
  4. //----------------------------------------------------------------------------
  5. #if !defined(__OWL_BITSET_H)
  6. #define __OWL_BITSET_H
  7.  
  8. #if !defined(__OWL_OWLDEFS_H)
  9.   #include <owl\owldefs.h>
  10. #endif
  11.  
  12. #if !defined(__CLASSLIB_DEFS_H)
  13.   #include <classlib\defs.h>
  14. #endif
  15.  
  16. class _BIDSCLASS opstream;
  17. class _BIDSCLASS ipstream;
  18.  
  19. class _OWLCLASS TBitSet {
  20.   public:
  21.     TBitSet();
  22.     TBitSet(const TBitSet&);
  23.  
  24.     int Has(int item);
  25.  
  26.     TBitSet operator ~() const;
  27.  
  28.     void DisableItem(int item);
  29.     void EnableItem(int item);
  30.     TBitSet& operator +=(int item) {EnableItem(item); return *this;}
  31.     TBitSet& operator -=(int item) {DisableItem(item); return *this;}
  32.  
  33.     void DisableItem(const TBitSet& bs);
  34.     void EnableItem(const TBitSet& bs);
  35.     TBitSet& operator +=(const TBitSet& bs) {EnableItem(bs); return *this;}
  36.     TBitSet& operator |=(const TBitSet& bs) {EnableItem(bs); return *this;}
  37.     TBitSet& operator -=(const TBitSet& bs) {DisableItem(bs); return *this;}
  38.     TBitSet& operator &=(const TBitSet& bs);
  39.  
  40.     int TBitSet::IsEmpty();
  41.  
  42.     friend TBitSet operator &(const TBitSet& bs1, const TBitSet& bs2);
  43.     friend TBitSet operator |(const TBitSet& bs1, const TBitSet& bs2);
  44.  
  45.     friend int operator ==(const TBitSet& bs1, const TBitSet& bs2);
  46.     friend int operator !=(const TBitSet& bs1, const TBitSet& bs2);
  47.  
  48.     friend opstream& operator <<(opstream& out, const TBitSet& bs);
  49.     friend ipstream& operator >>(ipstream& in, TBitSet& bs);
  50.  
  51.   private:
  52.     int    Loc(int item) {return item / 8;}
  53.     uint8  Mask(int item) {return Masks[item & 0x07];}
  54.  
  55.     static uint8 near Masks[8];
  56.  
  57.     uint8  Bits[32];
  58. };
  59.  
  60. class _OWLCLASS TCharSet : public TBitSet {
  61.   public:
  62.     TCharSet();
  63.     TCharSet(const TCharSet&);
  64.     TCharSet(const char far* str);
  65. };
  66.  
  67.  
  68. inline int operator !=(const TBitSet& bs1, const TBitSet& bs2) {
  69.   return !operator ==(bs1, bs2);
  70. }
  71.  
  72. #endif  // __OWL_BITSET_H
  73.