Class Scine::Utils::StatesHandler¶
-
class
StatesHandler
¶ Class responsible for saving, storing and loading object-specific states.
Core::State is an empty class. This base class is then implemented to have some meaningful definition of a state for an application. I could be, for instance, a density matrix for a Core::Calculator, a partially converged Markov Chain Montecarlo, a checkpoint,… . A Core::StateHandableObject interface exposes the functions for getting and loading a single state. The StatesHandler job is that of storing a list of these states and freely switching between them. This class is stand-alone, but can also be specialized to suit certain needs, this is why it exposes a virtual destructor.
Public Types
Public Functions
Constructor of the class taking a StateHandableObject instance.
-
virtual
~StatesHandler
()¶ Virtual default destructor.
Store an externally generated state as the newest state.
- Parameters
state
: A pointer to the state to store.
-
void
store
()¶ Stores the current state of the Core::StateHandableObject instance in this class.
Loads an externally generated state.
- Parameters
state
: The state to be loaded. The specifics of how exactly the state is stored is not implemented in this class, but is in the Core::StateHandableObject derived class. This just calls the load() method in Core::StateHandableObject instance of this class.
-
void
load
(int index)¶ Loads an internally stored state.
- Parameters
index
: The index of the state to be loaded. The specifics of how exactly the state is stored is not implemented in this class, but is in the Core::StateHandableObject derived class. This just extracts the state and calls the load() method in Core::StateHandableObject instance of this class.
-
std::shared_ptr<Core::State>
getState
(int index) const¶ Gets the state at some index in the StatesContainer.
- Return
A polymorphic smart pointer to the Core::State at some index.
-
std::shared_ptr<Core::State>
popOldestState
()¶ Eliminates the oldest state from the StatesContainer and returns it.
-
std::shared_ptr<Core::State>
popNewestState
()¶ Eliminates the newest state from the underlying container and returns it.
-
void
clear
()¶ Clears all the internally saved states.
-
int
size
() const¶ Gets the current size of the state storage.