An intermediate class that allows to operate on the pure type information of some memory array.
More...
|
|
| TypedArray (const MemBase::Creator_t &C) |
| |
|
| TypedArray (const TypedArray< T > &)=delete |
| |
|
void | operator= (const TypedArray< T > &)=delete |
| |
| virtual T | first () const =0 |
| | Retrieve the first element.
|
| |
| virtual T | last () const =0 |
| | Retrieve the last element.
|
| |
| virtual CreativeIterator< T > * | creativeIterator ()=0 |
| |
| virtual const CreativeIterator< T > * | creativeIterator () const =0 |
| |
| virtual RefPtr< MemCore::TypedChunk< T > > | myChunk () const =0 |
| | Access to a chunk of contiguous data, if such exists.
|
| |
| RefPtr< MemCore::ChunkBase > | getChunk () const override |
| | Implement the virtual getChunk() function.
|
| |
| const type_info & | getType () const override |
| | Return the element type of the certain array.
|
| |
| template<class UnaryOperator > |
| RefPtr< MemBase > | applyOperator (const UnaryOperator &theOperator, const MemBase::Creator_t &theCreator) const |
| | Apply an unary operator on the data contained here, and provide a new memory array of the same size and dimensionality.
|
| |
|
template<class result_t > |
| RefPtr< MemBase > | applyFunction (const std::function< result_t(const T &)> &theOperator) const |
| | Apply a functor, possibly yielding a different type.
|
| |
|
RefPtr< MemBase > | applyFunction (const std::function< T(const T &)> &theOperator) const |
| | Apply a functor yielding the same type.
|
| |
|
template<class result_t > |
| RefPtr< MemBase > | applyFunction (const std::function< result_t(const T &, index_t I)> &theOperator) const |
| | Apply a functor, possibly yielding a different type.
|
| |
|
RefPtr< MemBase > | applyFunction (const std::function< T(const T &, index_t I)> &theOperator) const |
| | Apply a functor yielding the same type.
|
| |
|
template<class result_t , class SecondType > |
| RefPtr< MemBase > | applyFunction (const TypedArray< SecondType > &R, const std::function< result_t(const T &, const SecondType &ST, index_t I)> &theOperator) const |
| | Apply a binary functor, possibly yielding a different type.
|
| |
| template<class BinaryOperator > |
| RefPtr< MemBase > | applyOperator (const BinaryOperator &theOperator, const RefPtr< MemBase > &rightValue, const MemBase::Creator_t &theCreator) const |
| | Apply a binary operator on the data contained here, and provide a new memory array of the same size and dimensionality.
|
| |
|
auto | getComponent (int Component) -> decltype(getComponentArrayIterator(*this, Component)) |
| |
|
auto | operator() (int Component) -> decltype(getComponentArrayIterator(*this, Component)) |
| |
|
ranged_for_iterator< T > | begin () |
| |
|
ranged_for_iterator< T > | end () |
| |
|
const_ranged_for_iterator< T > | begin () const |
| |
|
const_ranged_for_iterator< T > | end () const |
| |
|
RefPtr< MemBase > | create (const RefPtr< FiberTypeBase > &FT, const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same dimensions but different type.
|
| |
|
template<class T > |
| RefPtr< MemBase > | create (const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same dimensions but different type.
|
| |
|
RefPtr< MemBase > | create (const DynamicSize &DS, const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same type but different dimensions.
|
| |
|
RefPtr< MemBase > | create (const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same type and dimensions, but default values.
|
| |
|
| MemBase (const FiberTypeIndex &theFiberTypeIndex, const Creator_t &theCreator) |
| | Empty default constructor.
|
| |
|
| ~MemBase () |
| | Destructor.
|
| |
|
| MemBase (const MemBase &)=delete |
| |
|
MemCore::WeakPtr< MemBase > | membase () const |
| |
| virtual void | DeferredConstructor () override=0 |
| | Virtual deferred reference pointer construction pointer Don't overload if you don't know exactly what this function is supposed to do. See class DynPtr for more info.
|
| |
| virtual Fiber::Dims_t | rank () const =0 |
| | Return the number of dimensions.
|
| |
| virtual DynamicSize | getSize () const =0 |
| | Return the size of this dataset.
|
| |
| virtual index_t | nElements () const |
| | return the number of elements in this array
|
| |
|
auto | NumberOfElements () const |
| |
|
auto | getNumberOfElements () const |
| |
|
virtual HyperslabParameters & | getHyperslabParameters ()=0 |
| |
|
virtual std::string | getElementAsString (size_t index) const =0 |
| |
|
MemCore::WeakPtr< FiberTypeBase > | getFiberType () const |
| |
|
MemCore::memsize_t | element_memsize () const |
| |
| virtual RefPtr< MemBase > | makeMemArray (const MemBase::Creator_t &C) const =0 |
| | Provide a MemArray, even though the actual data is a procedural array.
|
| |
|
virtual RefPtr< MemBase > | getComponentArray (int member, const MemBase::Creator_t &C)=0 |
| |
| virtual RefPtr< MemBase > | createSubArray (const DynamicSize &Offset, const DynamicSize &CopySize, const MemBase::Creator_t &C) const =0 |
| |
| virtual RefPtr< MemBase > | createEquallySizedMemArray (const RefPtr< MemCore::ChunkBase > &Storage, const MemBase::Creator_t &C) const =0 |
| | Create a memory array of the same dimensions as the current array, but with data as provided by the Storage.
|
| |
|
virtual bool | copyFrom (const RefPtr< MemCore::ChunkBase > &theChunk)=0 |
| |
| bool | copyFrom (const RefPtr< MemBase > &Mb) |
| | Copy all data values from the given MemBase.
|
| |
| virtual RefPtr< MemBase > | copy (const MemBase::Creator_t &C=nullptr) const =0 |
| | Create a copy of the current array, duplicating all data and allocating new memory for it.
|
| |
|
RefPtr< MemBase > | create (const RefPtr< FiberTypeBase > &FT, const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same dimensions but different type.
|
| |
|
template<class T > |
| RefPtr< MemBase > | create (const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same dimensions but different type.
|
| |
|
RefPtr< MemBase > | create (const DynamicSize &DS, const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same type but different dimensions.
|
| |
|
RefPtr< MemBase > | create (const type_info &layout=typeid(void)) const |
| | Create a new mem array of the same type and dimensions, but default values.
|
| |
| virtual void * | getPtr ()=0 |
| | Special Array Storage.
|
| |
| virtual const void * | OriginPtr () const =0 |
| | Get pointer to origin of linearly procedural array, if it is linear.
|
| |
| virtual const void * | DeltaPtr () const =0 |
| | Get pointer to delta of linearly procedural array, if it is linear.
|
| |
| MemCore::memsize_t | memsize () const override |
| | How much memory is occupied here at all in case it's stored in a chunk?
|
| |
|
| Cacheable (const WeakPtr< Creature > &C) |
| |
|
bool | isCached () const |
| |
|
bool | isUncached () const |
| |
|
bool | markAsUsed () |
| |
|
WeakPtr< CacheBase > | myCache () const |
| |
|
const WeakPtr< Creature > & | myCreator () const |
| |
|
int | NumberOfListEntries () const |
| |
|
void | PreDestructor () |
| |
|
void | push_back (CacheQueue &Q) |
| |
|
void | push_front (CacheQueue &Q) |
| |
|
void | setCreator (const WeakPtr< Creature > &C) |
| |
|
auto | getObjectCountID () const noexcept |
| |
|
bool | isIdentical (const WeakPtr< Object, Object > &PossibleSelf) const noexcept |
| |
|
void | mkAutoDestructive () |
| |
|
refcount_t | refcount () const noexcept |
| |
|
| ReferenceBase (Object *that) noexcept |
| |
|
const auto & | self () const |
| |
|
refcount_t | wrefcount () const noexcept |
| |
|
void | addInterface (const RefPtr< InterfaceBase > &I) const |
| |
|
void | addInterfaceData (const Data &D) |
| |
|
void | addInterfaceData (const Data &D) |
| |
|
void | clearInterfaces () |
| |
|
bool | const_iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) const |
| |
|
virtual RefPtr< InterfaceBase > | createInterface (const type_info &) const |
| |
|
RefPtr< InterfaceBase > | findInterface (const type_info &t) const |
| |
|
RefPtr< InterfaceBase > | getInterface (const type_info &t) |
| |
|
std::string | getInterfaceNames (const char delim=';') const |
| |
|
bool | gotNewInterfaceData (const Data &D) |
| |
|
bool | gotNewInterfaceData (mutex &M, const Data &D) |
| |
|
bool | gotNewInterfaceData (mutex &M, const Data &D) |
| |
|
bool | gotNewInterfaceData (mutex &M, const Data &D, const Selector &S) |
| |
|
bool | gotNewInterfaceData (mutex &M, const Data &D, const Selector *S) |
| |
|
bool | hasChangedInterfaceData (const Data &D) const |
| |
|
bool | hasChangedInterfaceData (const Data &D) const |
| |
|
bool | hasChangedInterfaceData (const Data &D, const Selector &) const |
| |
|
bool | hasChangedInterfaceData (const Data &D, const Selector *) const |
| |
|
bool | hasInterface (const type_info &t) const |
| |
|
bool | iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) |
| |
|
void | printInterfaces () const |
| |
|
void | registerInterface (const type_info &t) |
| |
|
void | removeInterface () |
| |
|
void | removeInterfaceBase (const type_info &InterfaceBaseID) |
| |
template<
class T>
class Fiber::TypedArray< T >
An intermediate class that allows to operate on the pure type information of some memory array.
Type casting into TypedArray<> is allowed. For instance, to check if some MemBase object refers to an array of doubles, just do
{
....
}
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
- Author
- Werner Benger
- Examples
- TypedArray.cpp.