home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 May / Pcwk5b98.iso / Borland / Cplus45 / BC45 / OWLINC.PAK / BITSET.H < prev    next >
C/C++ Source or Header  |  1995-08-29  |  2KB  |  71 lines

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