From 02c18fcb826e63ce7c654d44e9f0afe1eafa7a64 Mon Sep 17 00:00:00 2001 From: brain Date: Mon, 30 May 2005 05:06:12 +0000 Subject: Added BoolSet utility class git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1564 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/base.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'src/base.cpp') diff --git a/src/base.cpp b/src/base.cpp index a6edcb22c..81aea40e2 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -60,3 +60,55 @@ char* Extensible::GetExt(std::string key) return NULL; } +void BoolSet::Set(int number) +{ + this->bits |= bitfields[number]; +} + +void BoolSet::Unset(int number) +{ + this->bits &= inverted_bitfields[number]; +} + +void BoolSet::Invert(int number) +{ + this->bits ^= bitfields[number]; +} + +bool BoolSet::Get(int number) +{ + return ((this->bits | bitfields[number]) > 0); +} + +bool BoolSet::operator==(BoolSet other) +{ + return (this->bits == other.bits); +} + +BoolSet BoolSet::operator|(BoolSet other) +{ + BoolSet x(this->bits | other.bits); + return x; +} + +BoolSet BoolSet::operator&(BoolSet other) +{ + BoolSet x(this->bits & other.bits); + return x; +} + +BoolSet::BoolSet() +{ + this->bits = 0; +} + +BoolSet::BoolSet(char bitmask) +{ + this->bits = bitmask; +} + +bool operator=(BoolSet other) +{ + this->bits = other.bits; + return true; +} -- cgit v1.3.1-10-gc9f91