Files
Sun1602/SUN3DEngine/include/ProgramCommon/wzflag.h
T
2022-10-26 12:25:11 +08:00

67 lines
956 B
Objective-C

// wzflag.h
#ifndef _PROGRAMCOMMON_WZFLAG_H_
#define _PROGRAMCOMMON_WZFLAG_H_
#include "wztypedef.h"
//------------------------------------------------------------------------------
/**
@class CWzFlag
*/
template <class T>
class CWzFlag
{
public:
CWzFlag( void )
: m_flags( 0 )
{
// empty
}
~CWzFlag( void )
{
// empty
}
void Clear( void )
{
m_flags = 0;
}
void Init( T flag )
{
m_flags = flag;
}
void Set( T flag )
{
m_flags |= flag;
}
void Unset( T flag )
{
m_flags &= ~flag;
}
void SetB( T flag, bool b )
{
b ? Set( flag ) : Unset( flag );
}
void SetB( T flag, BOOL b )
{
( b != FALSE ) ? Set( flag ) : Unset( flag );
}
bool Check( T flag ) const
{
return ( ( m_flags & flag ) == flag );
}
private:
T m_flags;
};
#endif // _PROGRAMCOMMON_WZFLAG_H_