modulo_num.h 820 B

12345678910111213141516171819202122232425262728293031
  1. #ifndef __MODULO_NUM_H__
  2. #define __MODULO_NUM_H__
  3. #include "fixed_types.h"
  4. class ModuloNum
  5. {
  6. private:
  7. UInt32 m_value;
  8. UInt32 m_max_value;
  9. public:
  10. ModuloNum(UInt32 max_value = -1, UInt32 value = 0);
  11. ~ModuloNum();
  12. UInt32 getValue() const { return m_value; }
  13. UInt32 getMaxValue() const { return m_max_value; }
  14. void setValue(UInt32 value) { m_value = value; }
  15. void setMaxValue(UInt32 max_value) { m_max_value = max_value; }
  16. ModuloNum operator+(const ModuloNum& num) const;
  17. ModuloNum operator-(const ModuloNum& num) const;
  18. ModuloNum operator+(UInt32 value) const;
  19. ModuloNum operator-(UInt32 value) const;
  20. bool operator==(const ModuloNum& num) const;
  21. bool operator!=(const ModuloNum& num) const;
  22. };
  23. #endif /* __MODULO_NUM_H__ */