ranges: add stype()
This commit is contained in:
parent
b4ab639747
commit
1e4daf8691
17 changed files with 69 additions and 12 deletions
|
@ -178,6 +178,7 @@ namespace CNORXZ
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
||||||
/** return meta data at given position
|
/** return meta data at given position
|
||||||
|
|
|
@ -772,6 +772,12 @@ namespace CNORXZ
|
||||||
return (this->begin()+pos).stringMeta();
|
return (this->begin()+pos).stringMeta();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class... Ranges>
|
||||||
|
String MRange<Ranges...>::stype() const
|
||||||
|
{
|
||||||
|
return "M";
|
||||||
|
}
|
||||||
|
|
||||||
template <class... Ranges>
|
template <class... Ranges>
|
||||||
const TypeInfo& MRange<Ranges...>::type() const
|
const TypeInfo& MRange<Ranges...>::type() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -373,6 +373,7 @@ namespace CNORXZ
|
||||||
virtual SizeT size() const override final;
|
virtual SizeT size() const override final;
|
||||||
virtual SizeT dim() const override final;
|
virtual SizeT dim() const override final;
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
|
@ -320,6 +320,12 @@ namespace CNORXZ
|
||||||
return mRange->stringMeta( mParts[pos] );
|
return mRange->stringMeta( mParts[pos] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class RangeT>
|
||||||
|
String PRange<RangeT>::stype() const
|
||||||
|
{
|
||||||
|
return "P";
|
||||||
|
}
|
||||||
|
|
||||||
template <class RangeT>
|
template <class RangeT>
|
||||||
const TypeInfo& PRange<RangeT>::type() const
|
const TypeInfo& PRange<RangeT>::type() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -193,6 +193,7 @@ namespace CNORXZ
|
||||||
virtual SizeT size() const override final;
|
virtual SizeT size() const override final;
|
||||||
virtual SizeT dim() const override final;
|
virtual SizeT dim() const override final;
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
|
@ -118,7 +118,7 @@ namespace CNORXZ
|
||||||
*/
|
*/
|
||||||
virtual MArray<RangePtr> sub() const;
|
virtual MArray<RangePtr> sub() const;
|
||||||
|
|
||||||
/** Range size */
|
/** Range size. */
|
||||||
virtual SizeT size() const = 0;
|
virtual SizeT size() const = 0;
|
||||||
|
|
||||||
/** Range dimension.
|
/** Range dimension.
|
||||||
|
@ -128,42 +128,45 @@ namespace CNORXZ
|
||||||
*/
|
*/
|
||||||
virtual SizeT dim() const = 0;
|
virtual SizeT dim() const = 0;
|
||||||
|
|
||||||
/** Range type */
|
/** Range type. */
|
||||||
virtual const TypeInfo& type() const = 0;
|
virtual const TypeInfo& type() const = 0;
|
||||||
|
|
||||||
/** The type of the range's meta data */
|
/** The type of the range's meta data. */
|
||||||
virtual const TypeInfo& metaType() const = 0;
|
virtual const TypeInfo& metaType() const = 0;
|
||||||
|
|
||||||
|
/** String identifier indicating the range's type. */
|
||||||
|
virtual String stype() const = 0;
|
||||||
|
|
||||||
/** Meta data in string format at lexicographic position pos.
|
/** Meta data in string format at lexicographic position pos.
|
||||||
@param pos size type argument
|
@param pos size type argument.
|
||||||
*/
|
*/
|
||||||
virtual String stringMeta(SizeT pos) const = 0;
|
virtual String stringMeta(SizeT pos) const = 0;
|
||||||
|
|
||||||
/** Return DIndex iterating over the range's parameter space.
|
/** Return DIndex iterating over the range's parameter space.
|
||||||
@param pos index position, size type argument
|
@param pos index position, size type argument.
|
||||||
*/
|
*/
|
||||||
virtual DIndex index(SizeT pos = 0) const = 0;
|
virtual DIndex index(SizeT pos = 0) const = 0;
|
||||||
|
|
||||||
/** Create extended range.
|
/** Create extended range.
|
||||||
Creates a new range consisting of the meta data spaces
|
Creates a new range consisting of the meta data spaces
|
||||||
of this range and the range r
|
of this range and the range r.
|
||||||
@param r shared pointer to range used for extension
|
@param r shared pointer to range used for extension.
|
||||||
*/
|
*/
|
||||||
virtual RangePtr extend(const RangePtr& r) const = 0;
|
virtual RangePtr extend(const RangePtr& r) const = 0;
|
||||||
|
|
||||||
/** check if ranges are the same */
|
/** check if ranges are the same. */
|
||||||
bool operator==(const RangeBase& in) const;
|
bool operator==(const RangeBase& in) const;
|
||||||
|
|
||||||
/** check if ranges are not the same */
|
/** check if ranges are not the same. */
|
||||||
bool operator!=(const RangeBase& in) const;
|
bool operator!=(const RangeBase& in) const;
|
||||||
|
|
||||||
/** return the range's uuid */
|
/** return the range's uuid. */
|
||||||
Uuid id() const;
|
Uuid id() const;
|
||||||
|
|
||||||
/** return a DIndex pointing to the range's first element */
|
/** return a DIndex pointing to the range's first element. */
|
||||||
DIndex begin() const;
|
DIndex begin() const;
|
||||||
|
|
||||||
/** return a DIndex pointing to the element after the range's last element */
|
/** return a DIndex pointing to the element after the range's last element. */
|
||||||
DIndex end() const;
|
DIndex end() const;
|
||||||
|
|
||||||
friend RangeFactoryBase;
|
friend RangeFactoryBase;
|
||||||
|
|
|
@ -294,6 +294,12 @@ namespace CNORXZ
|
||||||
return toString(mSpace[pos]);
|
return toString(mSpace[pos]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename MetaType, SizeT S>
|
||||||
|
String SRange<MetaType,S>::stype() const
|
||||||
|
{
|
||||||
|
return "S";
|
||||||
|
}
|
||||||
|
|
||||||
template <typename MetaType, SizeT S>
|
template <typename MetaType, SizeT S>
|
||||||
const TypeInfo& SRange<MetaType,S>::type() const
|
const TypeInfo& SRange<MetaType,S>::type() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -192,6 +192,7 @@ namespace CNORXZ
|
||||||
virtual SizeT size() const override final;
|
virtual SizeT size() const override final;
|
||||||
virtual SizeT dim() const override final;
|
virtual SizeT dim() const override final;
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
|
@ -326,6 +326,12 @@ namespace CNORXZ
|
||||||
return toString(this->get(pos));
|
return toString(this->get(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename MetaT>
|
||||||
|
String URange<MetaT>::stype() const
|
||||||
|
{
|
||||||
|
return "U";
|
||||||
|
}
|
||||||
|
|
||||||
template <typename MetaT>
|
template <typename MetaT>
|
||||||
const TypeInfo& URange<MetaT>::type() const
|
const TypeInfo& URange<MetaT>::type() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -181,6 +181,7 @@ namespace CNORXZ
|
||||||
virtual SizeT size() const override final;
|
virtual SizeT size() const override final;
|
||||||
virtual SizeT dim() const override final;
|
virtual SizeT dim() const override final;
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
|
@ -356,6 +356,12 @@ namespace CNORXZ
|
||||||
return toString(this->get(pos));
|
return toString(this->get(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename MetaT>
|
||||||
|
String WRange<MetaT>::stype() const
|
||||||
|
{
|
||||||
|
return "W";
|
||||||
|
}
|
||||||
|
|
||||||
template <typename MetaT>
|
template <typename MetaT>
|
||||||
const TypeInfo& WRange<MetaT>::type() const
|
const TypeInfo& WRange<MetaT>::type() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -184,6 +184,7 @@ namespace CNORXZ
|
||||||
virtual SizeT size() const override final;
|
virtual SizeT size() const override final;
|
||||||
virtual SizeT dim() const override final;
|
virtual SizeT dim() const override final;
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
|
@ -320,6 +320,7 @@ namespace CNORXZ
|
||||||
virtual SizeT size() const override final;
|
virtual SizeT size() const override final;
|
||||||
virtual SizeT dim() const override final;
|
virtual SizeT dim() const override final;
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
|
@ -225,6 +225,11 @@ namespace CNORXZ
|
||||||
return toString(pos);
|
return toString(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String CRange::stype() const
|
||||||
|
{
|
||||||
|
return "C";
|
||||||
|
}
|
||||||
|
|
||||||
const TypeInfo& CRange::type() const
|
const TypeInfo& CRange::type() const
|
||||||
{
|
{
|
||||||
return typeid(CRange);
|
return typeid(CRange);
|
||||||
|
|
|
@ -629,6 +629,11 @@ namespace CNORXZ
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String YRange::stype() const
|
||||||
|
{
|
||||||
|
return "Y";
|
||||||
|
}
|
||||||
|
|
||||||
const TypeInfo& YRange::type() const
|
const TypeInfo& YRange::type() const
|
||||||
{
|
{
|
||||||
return typeid(YRange);
|
return typeid(YRange);
|
||||||
|
|
|
@ -606,6 +606,12 @@ namespace CNORXZ
|
||||||
return (this->begin()+pos).stringMeta();
|
return (this->begin()+pos).stringMeta();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <class RangeI, class RangeK>
|
||||||
|
String RRange<RangeI,RangeK>::stype() const
|
||||||
|
{
|
||||||
|
return "R";
|
||||||
|
}
|
||||||
|
|
||||||
template <class RangeI, class RangeK>
|
template <class RangeI, class RangeK>
|
||||||
const TypeInfo& RRange<RangeI,RangeK>::type() const
|
const TypeInfo& RRange<RangeI,RangeK>::type() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -270,6 +270,7 @@ namespace CNORXZ
|
||||||
virtual SizeT size() const override final;
|
virtual SizeT size() const override final;
|
||||||
virtual SizeT dim() const override final;
|
virtual SizeT dim() const override final;
|
||||||
virtual String stringMeta(SizeT pos) const override final;
|
virtual String stringMeta(SizeT pos) const override final;
|
||||||
|
virtual String stype() const override final;
|
||||||
virtual const TypeInfo& type() const override final;
|
virtual const TypeInfo& type() const override final;
|
||||||
virtual const TypeInfo& metaType() const override final;
|
virtual const TypeInfo& metaType() const override final;
|
||||||
virtual RangePtr extend(const RangePtr& r) const override final;
|
virtual RangePtr extend(const RangePtr& r) const override final;
|
||||||
|
|
Loading…
Reference in a new issue