00001 /*
00002 File: Flags.h
00003
00004 Function:
00005
00006 Author: Andrew Willmott
00007
00008 Copyright: (c) 1998-2000, Andrew Willmott
00009 */
00010
00011 #ifndef __Flags__
00012 #define __Flags__
00013
00014 #include "cl/Basics.h"
00015
00016 class Flags32
00017 {
00018 public:
00019 Flags32() : bits(0) {};
00020
00021 Void Set(UInt32 flag)
00022 { bits |= flag; };
00023 Void UnSet(UInt32 flag)
00024 { bits &= ~flag; };
00025 Bool IsSet(UInt32 flag)
00026 { return(bits & flag); };
00027 Bool AreSet(UInt32 flags)
00028 { return((bits & flags) == flags); };
00029 Void Clear()
00030 { bits = 0; };
00031
00032 operator UInt32()
00033 { return(bits); };
00034
00035 protected:
00036 UInt32 bits;
00037 };
00038
00039 class Flags16
00040 {
00041 public:
00042 Flags16() : bits(0) {};
00043
00044 Void Set(UInt16 flag)
00045 { bits |= flag; };
00046 Void UnSet(UInt16 flag)
00047 { bits &= ~flag; };
00048 Bool IsSet(UInt16 flag)
00049 { return(bits & flag); };
00050 Bool AreSet(UInt32 flags)
00051 { return((bits & flags) == flags); };
00052 Void Clear()
00053 { bits = 0; };
00054
00055 operator UInt16()
00056 { return(bits); };
00057
00058 protected:
00059 UInt16 bits;
00060 };
00061
00062 class Flags8
00063 {
00064 public:
00065 Flags8() : bits(0) {};
00066
00067 Void Set(Byte flag)
00068 { bits |= flag; };
00069 Void UnSet(Byte flag)
00070 { bits &= ~flag; };
00071 Bool IsSet(Byte flag)
00072 { return(bits & flag); };
00073 Bool AreSet(UInt32 flags)
00074 { return((bits & flags) == flags); };
00075 Void Clear()
00076 { bits = 0; };
00077
00078 operator Byte()
00079 { return(bits); };
00080
00081 protected:
00082 Byte bits;
00083 };
00084
00085 #endif