PLaSK library
Loading...
Searching...
No Matches
plask::LazyDataImpl< T > Struct Template Referenceabstract

Base class for implementation used by lazy data vector. More...

#include <plask/lazydata.hpp>

Inheritance diagram for plask::LazyDataImpl< T >:
[legend]

Public Types

typedefCellType
 

Public Member Functions

virtual ~LazyDataImpl ()
 
virtualat (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
 

Detailed Description

template<typename T>
struct plask::LazyDataImpl< T >

Base class for implementation used by lazy data vector.

Subclasses must provide thread-safty reading.

Template Parameters
Ttype of data served by the data vector

Definition at line 34 of file lazydata.hpp.

Member Typedef Documentation

◆ CellType

template<typename T >
typedef T plask::LazyDataImpl< T >::CellType

Definition at line 36 of file lazydata.hpp.

Constructor & Destructor Documentation

◆ ~LazyDataImpl()

template<typename T >
virtual plask::LazyDataImpl< T >::~LazyDataImpl ( )
inlinevirtual

Definition at line 38 of file lazydata.hpp.

Member Function Documentation

◆ at()

template<typename T >
virtual T plask::LazyDataImpl< T >::at ( std::size_t  index) const
pure virtual

Get index-th value from vector.

Parameters
indexshould be a value from 0 to size()-1
Returns
index-th value from vector

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 >.

◆ claim()

template<typename T >
virtual DataVector< T > plask::LazyDataImpl< T >::claim ( ) const
inlinevirtual

Reimplemented in plask::LazyDataFromVectorImpl< T >.

Definition at line 74 of file lazydata.hpp.

◆ getAll()

template<typename T >
virtual DataVector< const T > plask::LazyDataImpl< T >::getAll ( ) const
inlinevirtual

◆ size()

template<typename T >
virtual std::size_t plask::LazyDataImpl< T >::size ( ) const
pure virtual

Get the number of elements in this vector.

Returns
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.


The documentation for this struct was generated from the following file: