diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2019-04-24 17:26:22 -0400 |
---|---|---|
committer | Billy Donahue <billy.donahue@mongodb.com> | 2019-04-30 00:28:32 -0400 |
commit | 3d2cb8571b68999c10a5fab5bd0e8b9e5e498337 (patch) | |
tree | e8df2217e2fd568e25b8cd1a1a3e3aa17d6247cd /src/mongo/util/safe_num.h | |
parent | 54e3e3d5de5a87ca76c98c97fb4e46fdfacf525d (diff) | |
download | mongo-3d2cb8571b68999c10a5fab5bd0e8b9e5e498337.tar.gz |
SERVER-40813 remove all -inl.h files
Diffstat (limited to 'src/mongo/util/safe_num.h')
-rw-r--r-- | src/mongo/util/safe_num.h | 98 |
1 files changed, 96 insertions, 2 deletions
diff --git a/src/mongo/util/safe_num.h b/src/mongo/util/safe_num.h index f6ef4042533..529adec4878 100644 --- a/src/mongo/util/safe_num.h +++ b/src/mongo/util/safe_num.h @@ -242,6 +242,100 @@ private: // Convenience method for unittest code. Please use accessors otherwise. std::ostream& operator<<(std::ostream& os, const SafeNum& snum); -} // namespace mongo +inline SafeNum::SafeNum() : _type(EOO) {} + +inline SafeNum::~SafeNum() {} + +inline SafeNum::SafeNum(const SafeNum& rhs) : _type(rhs._type), _value(rhs._value) {} + +inline SafeNum& SafeNum::operator=(const SafeNum& rhs) { + _type = rhs._type; + _value = rhs._value; + return *this; +} + +inline SafeNum::SafeNum(int32_t num) : _type(NumberInt) { + _value.int32Val = num; +} + +inline SafeNum::SafeNum(int64_t num) : _type(NumberLong) { + _value.int64Val = num; +} + +inline SafeNum::SafeNum(double num) : _type(NumberDouble) { + _value.doubleVal = num; +} + +inline SafeNum::SafeNum(Decimal128 num) : _type(NumberDecimal) { + _value.decimalVal = num.getValue(); +} + +inline bool SafeNum::operator==(const SafeNum& rhs) const { + return isEquivalent(rhs); +} + +inline bool SafeNum::operator!=(const SafeNum& rhs) const { + return !isEquivalent(rhs); +} + +inline SafeNum SafeNum::operator+(const SafeNum& rhs) const { + return addInternal(*this, rhs); +} + +inline SafeNum& SafeNum::operator+=(const SafeNum& rhs) { + return *this = addInternal(*this, rhs); +} + +inline SafeNum SafeNum::operator*(const SafeNum& rhs) const { + return mulInternal(*this, rhs); +} + +inline SafeNum& SafeNum::operator*=(const SafeNum& rhs) { + return *this = mulInternal(*this, rhs); +} + +inline SafeNum SafeNum::bitAnd(const SafeNum& rhs) const { + return andInternal(*this, rhs); +} + +inline SafeNum SafeNum::operator&(const SafeNum& rhs) const { + return bitAnd(rhs); +} + +inline SafeNum& SafeNum::operator&=(const SafeNum& rhs) { + return *this = bitAnd(rhs); +} + +inline SafeNum SafeNum::bitOr(const SafeNum& rhs) const { + return orInternal(*this, rhs); +} + +inline SafeNum SafeNum::operator|(const SafeNum& rhs) const { + return bitOr(rhs); +} + +inline SafeNum& SafeNum::operator|=(const SafeNum& rhs) { + return *this = bitOr(rhs); +} + +inline SafeNum SafeNum::bitXor(const SafeNum& rhs) const { + return xorInternal(*this, rhs); +} + +inline SafeNum SafeNum::operator^(const SafeNum& rhs) const { + return bitXor(rhs); +} + +inline SafeNum& SafeNum::operator^=(const SafeNum& rhs) { + return *this = bitXor(rhs); +} + +inline bool SafeNum::isValid() const { + return _type != EOO; +} -#include "mongo/util/safe_num-inl.h" +inline BSONType SafeNum::type() const { + return _type; +} + +} // namespace mongo |