Fw/DataStructures/docs/CircularIndex.md
CircularIndex is a final class defined in
Fw/DataStructures.
It represents an index value that
wraps around modulo an integer.
CircularIndex has the following private member variables.
| Name | Type | Purpose | Default Value |
|---|---|---|---|
m_value | FwSizeType | The index value | 0 |
m_modulus | FwSizeType | The modulus | 1 |
CircularIndex()
Use default initialization of members.
explicit CircularIndex(FwSizeType modulus, FwSizeType value = 0)
Assert modulus > 0.
Set m_modulus = modulus.
Call setValue(value).
CircularIndex(const CircularIndex& ci)
Set *this = ci.
~CircularIndex()
Defined as = default.
CircularIndex& operator=(const CircularIndex& ci)
If this != &ci
Set m_value = ci.m_value.
Set m_modulus = ci.m_modulus.
Return *this.
FwSizeType getValue() const
Assert m_value < m_modulus.
Return m_value.
void setValue(FwSizeType value)
Assert m_modulus > 0.
Set m_value = m_value % m_modulus.
FwSizeType CircularIndex::getModulus() const
Assert m_value < m_modulus.
Return m_modulus.
void setModulus(FwSizeType modulus)
Set m_modulus = modulus.
Call setValue(m_value).
FwSizeType increment(FwSizeType amount = 1)
Assert m_modulus > 0.
Set offset = amount % m_modulus.
Call setValue(m_value + offset).
Return m_value.
FwSizeType decrement(FwSizeType amount = 1)
Assert m_modulus > 0.
Set offset = amount % m_modulus.
Call setValue(m_value + m_modulus - offset).
Return m_value.