# State variables manager

class CStateVariablesManager

  Manager of state variables.

  Public Functions

  const CStateVariable *GetStateVariable(size_t _index) const

    Returns a state variable with the specified index.

    Parameters:

      _index – Index of the state variable.

    Returns:

      Const pointer to state variable.

  CStateVariable *GetStateVariable(size_t _index)

    Returns a state variable with the specified index.

    Parameters:

      _index – Index of the state variable.

    Returns:

      Pointer to state variable.

  const CStateVariable *GetStateVariable(const std::string &_name) const

    Returns a state variable with the specified name.

    Parameters:

      _name – Name of the state variable.

    Returns:

      Const pointer to state variable.

  CStateVariable *GetStateVariable(const std::string &_name)

    Returns a state variable with the specified name.

    Parameters:

      _name – Name of the state variable.

    Returns:

      Pointer to state variable.

  std::vector<const CStateVariable*> GetAllStateVariables() const

    Returns const pointers to all defined state variables.

    Returns:

      Const pointers to all state variables.

  std::vector<CStateVariable*> GetAllStateVariables()

    Returns const pointers to all defined state variables.

    Returns:

      Pointers to all state variables.

  size_t GetStateVariablesNumber() const

    Returns number of defined state variables.

    Returns:

      Number of state variables.

  Friends

  friend void swap(CStateVariablesManager &_first, CStateVariablesManager &_second) noexcept

    Swaps the content of two managers.

    Parameters:

      - _first – First manager.

      - _second – Second manager.