This library extents the header-only Vector template library with the memory management capabilities of the MemCore library. More...
This library extents the header-only Vector template library with the memory management capabilities of the MemCore library.
It equips e.g. the abstract multidimensional arrays with memory managament and concrete memory layouts.
typedef MemCore::CreatorBase<MemBase> Fiber::CreativeArrayBase |
Base class for multidimensional arrays that employ deferred storage, i.e.
they do not reside in memory all time, but are created on demand. Child classes must implement the virtual functions
bool makeDimensions | ( | MultiIndex< N > & | Dims, | |
const RefPtr< CreativeArrayBase > & | DC | |||
) | [inline] |
Given a data creator, retrieve the dimensionality information from the associated data, preferably from the size interface as stored (cached) in the Creator, but if none such exists yet, load the data and get it from there once.
On next call, the size interface will be set and data dont need to be loaded again.
Dims | Will store the dimensions of this data set, used for output only (return value) | |
DC | The data creator. |
References makeSizeInterface().
Referenced by Wizt::FieldSlice::apply().
bool makeSizeInterface | ( | MultiIndex< N > & | Dims, | |
const RefPtr< CreativeArrayBase > & | DC | |||
) | [inline] |
Set the size interface of a given data array Creator, based on the associated data (this function will actually CREATE the data - so is slow!).
IF the dimensionality of the data is compatible with the specified multiindex, the dimensions will be returned, and the size interface of the Creator is set to this value.
Note: This function will always inspect the data, even if the Creator might already have size interface defined. If loading data shall be avoided, use the makeDimensions() routine.
Referenced by makeDimensions().