Storage for cached values. More...
#include <ValueCache.h>
Storage for cached values.
Stores cached values of properties evaluated at a particular thermodynamic state. A class that needs cached values can have a ValueCache as a member variable.
Each method in the class that implements caching behavior needs a unique id for its cached value. This id should be obtained by using the getId() function to initialize a static variable within the function.
For cases where the property is a scalar or vector, the cached value can be stored in the CachedValue object. If the data type of the cached value is more complex, then it can be stored in the calling class, and the value attribute of the CachedScalar object can be ignored.
An example use of class ValueCache:
Definition at line 152 of file ValueCache.h.
Public Member Functions | |
int | getId () |
Get a unique id for a cached value. | |
CachedScalar | getScalar (int id) |
Get a reference to a CachedValue object representing a scalar (double) with the given id. | |
CachedArray | getArray (int id) |
Get a reference to a CachedValue object representing an array (vector<double>) with the given id. | |
void | clear () |
Clear all cached values. | |
Protected Attributes | |
map< int, CachedValue< double > > | m_scalarCache |
Cached scalar values. | |
map< int, CachedValue< vector< double > > > | m_arrayCache |
Cached array values. | |
Static Protected Attributes | |
static int | m_last_id = 0 |
The last assigned id. Automatically incremented by the getId() method. | |
int getId | ( | ) |
Get a unique id for a cached value.
Must be called exactly once for each method that implements caching behavior.
Definition at line 21 of file ValueCache.cpp.
|
inline |
Get a reference to a CachedValue object representing a scalar (double) with the given id.
Definition at line 161 of file ValueCache.h.
|
inline |
Get a reference to a CachedValue object representing an array (vector<double>) with the given id.
Definition at line 167 of file ValueCache.h.
void clear | ( | ) |
Clear all cached values.
This method should be called if the cached values may be invalidated in a way that is not represented by the state variables alone, such as a change to the constants defining a species thermodynamics as a function of temperature.
Definition at line 27 of file ValueCache.cpp.
|
protected |
Cached scalar values.
Definition at line 179 of file ValueCache.h.
|
protected |
Cached array values.
Definition at line 182 of file ValueCache.h.
|
staticprotected |
The last assigned id. Automatically incremented by the getId() method.
Definition at line 185 of file ValueCache.h.