Abstract indexed range interface. More...
#include <kanzi/core/property/abstract_range.hpp>
Public Member Functions | |
PropertyObjectSharedPtr | getPropertyObjectByIndex (size_t index) |
Gets a property object by index. More... | |
bool | getPropertyValueByIndex (size_t index, AbstractPropertyType propertyType, Variant &value) |
Access a property in a property object at an index. More... | |
size_t | getSize () |
Gets the size of the indexed range. More... | |
bool | getValueByIndex (size_t index, Variant &value) |
Reads a value by index and writes it to a variant. More... | |
Public Member Functions inherited from kanzi::AbstractRange | |
bool | adaptView (AbstractRange &potentialViewRange, size_t length) |
Attempts to reuse a view over this range. More... | |
AbstractRangeIterator | beginIteration () |
Gets an iterator to the beginning of this range. More... | |
AbstractRangeSharedPtr | createView (size_t length) |
Creates a view over this range. More... | |
AbstractRangeSharedPtr | evaluate () |
Evaluate the abstract range. More... | |
AbstractRangeLocationPtr | locationBegin () |
Gets an iteratable location to beginning of the range. More... | |
virtual | ~AbstractRange ()=default |
Destructor. More... | |
Protected Member Functions | |
bool | adaptViewOverride (AbstractRange &potentialViewRange, size_t length) override |
AbstractRange::adaptViewOverride() implementation. More... | |
AbstractRangeSharedPtr | createViewOverride (size_t length) override |
AbstractRange::createViewOverride() implementation. More... | |
virtual PropertyObjectSharedPtr | getPropertyObjectByIndexOverride (size_t index)=0 |
Implementation-dependent access to property object. More... | |
virtual bool | getPropertyValueByIndexOverride (size_t index, AbstractPropertyType propertyType, Variant &value)=0 |
Access a property from an index. More... | |
virtual size_t | getSizeOverride ()=0 |
Implementation-dependent size query. More... | |
virtual bool | getValueByIndexOverride (size_t index, Variant &value)=0 |
Implementation-dependent access of value by index. More... | |
Protected Member Functions inherited from kanzi::AbstractRange | |
AbstractRange ()=default | |
Constructor. More... | |
virtual AbstractRangeSharedPtr | evaluateOverride () |
Implementation-dependent evaluation of the range. More... | |
virtual AbstractRangeLocationPtr | locationBeginOverride ()=0 |
Implementation of iterator to beginning. More... | |
Abstract indexed range interface.
AbstractIndexedRange is intended as use for potential optimization to avoid creating iterators when accessing ranges that can be accessed by index. Its use is intended for internal Kanzi use to avoid casting to several range types offering access without range iterator interface.
|
inline |
Gets the size of the indexed range.
|
inline |
Gets a property object by index.
index | Index of value to access. |
|
inline |
Access a property in a property object at an index.
index | Index of value to access. |
propertyType | property type to access. |
value | Variant to store the value to. |
|
inline |
Reads a value by index and writes it to a variant.
index | Index of value to access. |
value | Variant to store the value to. |
|
overrideprotectedvirtual |
AbstractRange::adaptViewOverride() implementation.
Reimplemented from kanzi::AbstractRange.
|
overrideprotectedvirtual |
AbstractRange::createViewOverride() implementation.
Reimplemented from kanzi::AbstractRange.
|
protectedpure virtual |
Implementation-dependent size query.
Implemented in kanzi::TypedValueRange< T >, kanzi::TypedValueRange< NodeWeakPtr >, kanzi::TypedValueRange< LightInfo >, kanzi::TypedValueRange< LightDistanceInfo >, kanzi::IndexedViewRange, kanzi::ValueRange, kanzi::ImmutableSplitStringRange, kanzi::IndexedPropertyAccessRange, and kanzi::IteratorRange.
|
protectedpure virtual |
Implementation-dependent access to property object.
index | Index of value to access. |
Implemented in kanzi::TypedValueRange< T >, kanzi::TypedValueRange< NodeWeakPtr >, kanzi::TypedValueRange< LightInfo >, kanzi::TypedValueRange< LightDistanceInfo >, kanzi::IndexedViewRange, kanzi::ValueRange, kanzi::ImmutableSplitStringRange, kanzi::IndexedPropertyAccessRange, kanzi::GatherLightsRenderPass::LightRange, and kanzi::IteratorRange.
|
protectedpure virtual |
Access a property from an index.
index | Index of value to access. |
propertyType | property type to access. |
value | Variant to store the value to. |
Implemented in kanzi::TypedValueRange< T >, kanzi::TypedValueRange< NodeWeakPtr >, kanzi::TypedValueRange< LightInfo >, kanzi::TypedValueRange< LightDistanceInfo >, kanzi::IndexedViewRange, kanzi::ValueRange, kanzi::ImmutableSplitStringRange, kanzi::IndexedPropertyAccessRange, kanzi::GatherLightsRenderPass::LightRange, and kanzi::IteratorRange.
|
protectedpure virtual |
Implementation-dependent access of value by index.
index | Index of value to access. |
value | Variant to store the value to. |
Implemented in kanzi::TypedValueRange< T >, kanzi::TypedValueRange< NodeWeakPtr >, kanzi::TypedValueRange< LightInfo >, kanzi::TypedValueRange< LightDistanceInfo >, kanzi::IndexedViewRange, kanzi::ValueRange, kanzi::ImmutableSplitStringRange, kanzi::IndexedPropertyAccessRange, and kanzi::IteratorRange.