CNORXZ
Container with Native Operation Routines and Expressions
|
#include <range_base.h>
Public Types | |
typedef DIndex | IndexType |
Public Member Functions | |
virtual | ~RangeBase ()=default |
virtual RangePtr | sub (SizeT num) const |
virtual MArray< RangePtr > | sub () const |
virtual SizeT | size () const =0 |
virtual SizeT | dim () const =0 |
virtual const TypeInfo & | type () const =0 |
virtual const TypeInfo & | metaType () const =0 |
virtual String | stringMeta (SizeT pos) const =0 |
virtual DIndex | index (SizeT pos=0) const =0 |
virtual RangePtr | extend (const RangePtr &r) const =0 |
bool | operator== (const RangeBase &in) const |
bool | operator!= (const RangeBase &in) const |
Uuid | id () const |
DIndex | begin () const |
DIndex | end () const |
Public Attributes | |
friend | RangeFactoryBase |
Protected Member Functions | |
RangeBase () | |
virtual Vector< Uuid > | key () const =0 |
Protected Attributes | |
Uuid | mId = {0,0} |
Wptr< RangeBase > | mThis |
Abstract range base class
A range defines a parameter space containers and operations are defined on. Indices can be used to iterate over that space.
Ranges have to be created though a corresponding factory.
Ranges always exist within a shared pointer and cannot be copied.
Definition at line 94 of file range_base.h.
Definition at line 97 of file range_base.h.
|
virtualdefault |
default destructor
|
protected |
default constructor
Definition at line 63 of file range_base.cc.
DIndex CNORXZ::RangeBase::begin | ( | ) | const |
return a DIndex pointing to the range's first element
Definition at line 94 of file range_base.cc.
Range dimension. Returns the range's dimension, which is equivalent to the number of sub-ranges. If a sub-range has non-zero dimension this is NOT taken into account!
Implemented in CNORXZ::CRange, CNORXZ::MRange< Ranges >, CNORXZ::PRange< RangeT >, CNORXZ::SRange< MetaT, S >, CNORXZ::URange< MetaT >, and CNORXZ::YRange.
DIndex CNORXZ::RangeBase::end | ( | ) | const |
return a DIndex pointing to the element after the range's last element
Definition at line 99 of file range_base.cc.
Create extended range. Creates a new range consisting of the meta data spaces of this range and the range r
r | shared pointer to range used for extension |
Implemented in CNORXZ::CRange, CNORXZ::MRange< Ranges >, CNORXZ::PRange< RangeT >, CNORXZ::SRange< MetaT, S >, CNORXZ::URange< MetaT >, and CNORXZ::YRange.
Uuid CNORXZ::RangeBase::id | ( | ) | const |
return the range's uuid
Definition at line 88 of file range_base.cc.
Return DIndex iterating over the range's parameter space.
pos | index position, size type argument |
Implemented in CNORXZ::RangeInterface< Range >, CNORXZ::RangeInterface< CRange >, CNORXZ::RangeInterface< MRange< Ranges... > >, CNORXZ::RangeInterface< PRange< RangeT > >, CNORXZ::RangeInterface< SRange< MetaT, S > >, CNORXZ::RangeInterface< URange< MetaT > >, and CNORXZ::RangeInterface< YRange >.
Implemented in CNORXZ::CRange, and CNORXZ::MRange< Ranges >.
The type of the range's meta data
Implemented in CNORXZ::CRange, CNORXZ::MRange< Ranges >, CNORXZ::PRange< RangeT >, CNORXZ::SRange< MetaT, S >, CNORXZ::URange< MetaT >, and CNORXZ::YRange.
check if ranges are not the same
Definition at line 83 of file range_base.cc.
check if ranges are the same
Definition at line 78 of file range_base.cc.
Range size
Implemented in CNORXZ::CRange, CNORXZ::MRange< Ranges >, CNORXZ::PRange< RangeT >, CNORXZ::SRange< MetaT, S >, CNORXZ::URange< MetaT >, and CNORXZ::YRange.
Meta data in string format at lexicographic position pos.
pos | size type argument |
Implemented in CNORXZ::CRange, CNORXZ::MRange< Ranges >, CNORXZ::PRange< RangeT >, CNORXZ::SRange< MetaT, S >, CNORXZ::URange< MetaT >, and CNORXZ::YRange.
Access sub-ranges. In the case the range is multi-dimensional this function returns an array of all sub-ranges (empty is one-dimensional)
Reimplemented in CNORXZ::MRange< Ranges >, and CNORXZ::YRange.
Definition at line 73 of file range_base.cc.
Access sub-ranges. In the case the range is multi-dimensional the num-th sub-range can be accessed through this function
num | size type argument |
Reimplemented in CNORXZ::YRange, and CNORXZ::MRange< Ranges >.
Definition at line 68 of file range_base.cc.
Range type
Implemented in CNORXZ::CRange, CNORXZ::MRange< Ranges >, CNORXZ::PRange< RangeT >, CNORXZ::SRange< MetaT, S >, CNORXZ::URange< MetaT >, and CNORXZ::YRange.
|
protected |
The range's uuid
Definition at line 172 of file range_base.h.
weak pointer to this range
Definition at line 173 of file range_base.h.
friend CNORXZ::RangeBase::RangeFactoryBase |
Definition at line 163 of file range_base.h.