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 uint32 flags;
00030
00031 public:
00033 csFlags (uint32 value = 0) : flags (value) { }
00034
00041 void SetAll (uint32 value)
00042 { flags = value; }
00043
00050 void Set (uint32 mask)
00051 { flags = (flags & ~mask) | mask; }
00052
00059 void Reset (uint32 mask)
00060 { flags = (flags & ~mask); }
00061
00067 void Set (uint32 mask, uint32 value)
00068 { flags = (flags & ~mask) | value; }
00069
00075 void SetBool (uint32 mask, bool value)
00076 {
00077 if (value) flags = (flags & ~mask) | mask;
00078 else flags = (flags & ~mask);
00079 }
00080
00082 uint32 Get () const
00083 { return flags; }
00084
00086 bool Check (uint32 mask) const
00087 { return (flags & mask) != 0; }
00088
00090 bool CheckAll (uint32 mask) const
00091 { return (flags & mask) == mask; }
00092 };
00093
00094 #endif // __CS_FLAGS_H__
00095