PLaSK library

Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
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
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

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

  T | type 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 | ( |  | ) |
| inline virtual

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

  index | should 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
| inline virtual

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
| inline virtual

Get all values as non-lazy vector.

Returns
  non-lazy representation of this

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.

## ◆ 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:

- plask/lazydata.hpp