Skip to content

CircularIndex

CircularIndex is a final class defined in Fw/DataStructures. It represents an index value that wraps around modulo an integer.

1. Private Member Variables

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

2. Public Constructors and Destructors

2.1. Zero-Argument Constructor

CircularIndex()

Use default initialization of members.

2.2. Constructor with Specified Members

explicit CircularIndex(FwSizeType modulus, FwSizeType value = 0)
  1. Assert modulus > 0.

  2. Set m_modulus = modulus.

  3. Call setValue(value).

2.3. Copy Constructor

CircularIndex(const CircularIndex& ci)

Set *this = ci.

2.4. Destructor

~CircularIndex()

Defined as = default.

3. Public Member Functions

3.1. operator=

CircularIndex& operator=(const CircularIndex& ci)
  1. If this != &ci

    1. Set m_value = ci.m_value.

    2. Set m_modulus = ci.m_modulus.

  2. Return *this.

3.2. getValue

FwSizeType getValue() const
  1. Assert m_value < m_modulus.

  2. Return m_value.

3.3. setValue

void setValue(FwSizeType value)
  1. Assert m_modulus > 0.

  2. Set m_value = m_value % m_modulus.

3.4. getModulus

FwSizeType CircularIndex::getModulus() const
  1. Assert m_value < m_modulus.

  2. Return m_modulus.

3.5. setModulus

void setModulus(FwSizeType modulus)
  1. Set m_modulus = modulus.

  2. Call setValue(m_value).

3.6. increment

FwSizeType increment(FwSizeType amount = 1)
  1. Assert m_modulus > 0.

  2. Set offset = amount % m_modulus.

  3. Call setValue(m_value + offset).

  4. Return m_value.

3.7. decrement

FwSizeType decrement(FwSizeType amount = 1)
  1. Assert m_modulus > 0.

  2. Set offset = amount % m_modulus.

  3. Call setValue(m_value + m_modulus - offset).

  4. Return m_value.