00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_FLAGS_H__
00020 #define __CS_FLAGS_H__
00021
00025 class csFlags
00026 {
00027 private:
00029 unsigned flags;
00030
00031 public:
00033 csFlags (int Value = 0) : flags (Value) { }
00034
00036 void SetAll (unsigned value)
00037 { flags = value; }
00038
00040 void Set (unsigned mask)
00041 { flags = (flags & ~mask) | mask; }
00042
00044 void Reset (unsigned mask)
00045 { flags = (flags & ~mask); }
00046
00048 void Set (unsigned mask, unsigned value)
00049 { flags = (flags & ~mask) | value; }
00050
00052 void SetBool (unsigned mask, bool value)
00053 {
00054 if (value) flags = (flags & ~mask) | mask;
00055 else flags = (flags & ~mask);
00056 }
00057
00059 unsigned Get () const
00060 { return flags; }
00061
00063 bool Check (unsigned mask) const
00064 { return (flags & mask) != 0; }
00065
00067 bool CheckAll (unsigned mask) const
00068 { return (flags & mask) == mask; }
00069 };
00070
00071 #endif // __CS_FLAGS_H__
00072