Class Scine::Utils::StatesHandler

class StatesHandler

Base class for the implementation of a generic saving and loading capability.

Implementation note: If a class having an interface needs to save/load a state, then it has to populate the polymorphic pointers to the State class with a derived class, specific to the class.

Subclassed by Scine::Utils::ExternalQC::OrcaStatesHandler

Public Functions

void store(std::shared_ptr<State> state)

Store a state as the newest state.

Parameters
  • state: A pointer to the state to store internally.

virtual void store(StateSize)

Internally store the current state as the newest state.

Parameters
  • size: The required size of the state to save.

virtual void load(std::shared_ptr<State>)

Loads a state, i.e.

it applies it.

Parameters
  • state: The state to be loaded. Can also be one of the states currently stored in the StatesHandler.

std::shared_ptr<State> getState(int index)

Gets the state with the index i.

Return

A polymorphic smart pointer to the State at index i.

virtual std::shared_ptr<State> getCurrentState(StateSize) const = 0

Gets the current state without the need to load it.

Return

A polymorphic shared pointer to the current State.

std::shared_ptr<State> popOldestState()

Eliminates from the underlying container and returns the oldest state recorded.

std::shared_ptr<State> popNewestState()

Eliminates from the underlying container and returns the newest state recorded.

void clear()

Clear all the internally saved states.

int size() const

Get the current size of the state storage.

Return

The number of states currently saved.