PLaSK library
|
Base class for implementation used by lazy data vector. More...
#include <plask/lazydata.hpp>
Public Types | |
typedef T | CellType |
Public Member Functions | |
virtual | ~LazyDataImpl () |
virtual T | at (std::size_t index) const =0 |
Get index-th value from vector. | |
virtual std::size_t | size () const =0 |
Get the number of elements in this vector. | |
virtual DataVector< const T > | getAll () const |
Get all values as non-lazy vector. | |
virtual DataVector< T > | claim () const |
Base class for implementation used by lazy data vector.
Subclasses must provide thread-safty reading.
T | type of data served by the data vector |
Definition at line 34 of file lazydata.hpp.
typedef T plask::LazyDataImpl< T >::CellType |
Definition at line 36 of file lazydata.hpp.
|
inlinevirtual |
Definition at line 38 of file lazydata.hpp.
|
pure virtual |
Get index-th value from vector.
index | should be a value from 0 to size()-1 |
Implemented in plask::SafeDataImpl< T >, plask::thermal::dynamic::DynamicThermalFem2DSolver< Geometry2DType >::ThermalConductivityData, plask::thermal::dynamic::DynamicThermalFem3DSolver::ThermalConductivityData, plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::ThermalConductivityData, plask::thermal::tstatic::ThermalFem3DSolver::ThermalConductivityData, plask::LazyDataFromVectorImpl< T >, plask::LazyDataDelegateImpl< T >, plask::ScaledLazyDataImpl< T, ScaleT, ReturnedType >, plask::NearestNeighborExtrudedTriangularMesh3DLazyDataImpl< DstT, SrcT >, plask::BarycentricExtrudedTriangularMesh3DLazyDataImpl< DstT, SrcT >, plask::NearestNeighborElementExtrudedTriangularMesh3DLazyDataImpl< DstT, SrcT >, plask::LinearInterpolatedLazyDataImpl< DstT, SrcMeshType, SrcT >, plask::NearestNeighborInterpolatedLazyDataImpl< DstT, SrcMeshType, SrcT >, plask::SplineMaskedRect2DLazyDataImpl< DstT, SrcT >, plask::SplineMaskedRectElement2DLazyDataImpl< DstT, SrcT >, plask::SplineMaskedRect3DLazyDataImpl< DstT, SrcT >, plask::SplineMaskedRectElement3DLazyDataImpl< DstT, SrcT >, plask::SplineRect2DLazyDataImpl< DstT, SrcT >, plask::SplineRect3DLazyDataImpl< DstT, SrcT >, plask::NearestNeighborTriangularMesh2DLazyDataImpl< DstT, SrcT >, plask::BarycentricTriangularMesh2DLazyDataImpl< DstT, SrcT >, plask::NearestNeighborElementTriangularMesh2DLazyDataImpl< DstT, SrcT >, plask::FieldSumProviderImpl< PropertyT, SpaceT, VariadicTemplateTypesHolder< ExtraArgs... > >::SumLazyDataImpl, plask::FilterBaseImpl< PropertyT, FIELD_PROPERTY, OutputSpaceType, VariadicTemplateTypesHolder< ExtraArgs... > >::FilterLazyDataImpl, plask::FilterBaseImpl< PropertyT, MULTI_FIELD_PROPERTY, OutputSpaceType, VariadicTemplateTypesHolder< ExtraArgs... > >::FilterLazyDataImpl, and plask::ConstValueLazyDataImpl< T >.
|
inlinevirtual |
Reimplemented in plask::LazyDataFromVectorImpl< T >.
Definition at line 74 of file lazydata.hpp.
|
inlinevirtual |
Get all values as non-lazy vector.
Reimplemented in plask::ConstValueLazyDataImpl< T >, plask::LazyDataFromVectorImpl< T >, optical::effective::EffectiveFrequencyCyl::FieldDataEfficient< FieldT >, and optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >.
Definition at line 57 of file lazydata.hpp.
|
pure virtual |
Get the number of elements in this vector.
Implemented in plask::FilterBaseImpl< PropertyT, FIELD_PROPERTY, OutputSpaceType, VariadicTemplateTypesHolder< ExtraArgs... > >::FilterLazyDataImpl, plask::FilterBaseImpl< PropertyT, MULTI_FIELD_PROPERTY, OutputSpaceType, VariadicTemplateTypesHolder< ExtraArgs... > >::FilterLazyDataImpl, plask::ConstValueLazyDataImpl< T >, plask::LazyDataFromVectorImpl< T >, plask::LazyDataDelegateImpl< T >, plask::ScaledLazyDataImpl< T, ScaleT, ReturnedType >, plask::SafeDataImpl< T >, plask::InterpolatedLazyDataImpl< DstT, SrcMeshType, SrcT >, plask::InterpolatedLazyDataImpl< DstT, ExtrudedTriangularMesh3D, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, ExtrudedTriangularMesh3D::ElementMesh, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, RectangularMaskedMesh2D, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, RectangularMaskedMesh2D::ElementMesh, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, RectangularMaskedMesh3D, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, RectangularMaskedMesh3D::ElementMesh, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, RectangularMesh2D, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, RectilinearMesh3D, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, SrcMeshType, DstT >, plask::InterpolatedLazyDataImpl< DstT, TriangularMesh2D, const SrcT >, plask::InterpolatedLazyDataImpl< DstT, TriangularMesh2D::ElementMesh, const SrcT >, plask::FieldSumProviderImpl< PropertyT, SpaceT, VariadicTemplateTypesHolder< ExtraArgs... > >::SumLazyDataImpl, plask::electrical::diffusion::Diffusion2DSolver< Geometry2DType >::ConcentrationDataImpl, plask::electrical::diffusion::Diffusion3DSolver::ConcentrationDataImpl, plask::electrical::diffusion1d::DiffusionFem2DSolver< Geometry2DType >::ConcentrationDataImpl, plask::gain::freecarrier::FreeCarrierGainSolver2D< GeometryT >::DataBase< GeometryT >, plask::gain::freecarrier::FreeCarrierGainSolver3D::DataBase< DT >, plask::solvers::FermiNew::DataBase< GeometryT, T >, plask::solvers::FermiNew::DataBase< GeometryT, Tensor2< double > >, optical::effective::EffectiveFrequencyCyl::FieldDataInefficient< FieldT >, optical::effective::EffectiveFrequencyCyl::FieldDataEfficient< FieldT >, optical::effective::EffectiveFrequencyCyl::HeatDataImpl, optical::effective::EffectiveIndex2D::FieldDataInefficient< FieldT >, optical::effective::EffectiveIndex2D::FieldDataEfficient< FieldT >, optical::effective::EffectiveIndex2D::HeatDataImpl, plask::thermal::dynamic::DynamicThermalFem2DSolver< Geometry2DType >::ThermalConductivityData, plask::thermal::dynamic::DynamicThermalFem3DSolver::ThermalConductivityData, plask::thermal::tstatic::ThermalFem2DSolver< Geometry2DType >::ThermalConductivityData, and plask::thermal::tstatic::ThermalFem3DSolver::ThermalConductivityData.