|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Abstract class for N-dimensional MultiArrays with MemCore memory management. More...
#include <MemArrayBase.hpp>
Public Types | |
| enum | Dims_t { Dims = N } |
| typedef MultiIndex< N > | MIndex_t |
Public Types inherited from Fiber::MemBase | |
| typedef WeakPtrCreativeArrayBase_t | Creator_t |
Public Types inherited from MemCore::Cacheable | |
| typedef unsigned long | cachecounter_t |
Public Types inherited from MemCore::ReferenceBase< Cacheable > | |
| typedef Object | reference_domain_t |
| typedef WeakPtr< Object, Object > | SelfPtr_t |
Public Member Functions | |
| MemArrayBase (const FiberTypeIndex &theFiberTypeIndex, const WeakPtr< CreativeArrayBase > &theCreator) | |
| MemArrayBase (const MemArrayBase< N > &)=delete | |
| void | operator= (const MemArrayBase< N > &)=delete |
| Fiber::Dims_t | rank () const override |
| Return the number of array dimensions. | |
| virtual MultiIndex< N > | Size () const =0 |
| The multi-dimensional size of this array. | |
| virtual RefPtr< MemBase > | newMemArraynD (const MultiIndex< N > &NewSize, const MemBase::Creator_t &C) const =0 |
| Create a new array of the same type as the current one, but using the specified dimensions. | |
| virtual RefPtr< MemBase > | createSubMemArray (const MultiIndex< N > &Offset, const MultiIndex< N > &CopySize, const MemBase::Creator_t &C) const =0 |
| Create a new MemArray from a subset of the current array's data. | |
| RefPtr< MemBase > | createSubArray (const DynamicSize &Offset, const DynamicSize &CopySize, const MemBase::Creator_t &C) const override |
| Implement creation of new memory sub array using the DynamicSize class. | |
| DynamicSize | getSize () const override |
| Return the size of this dataset. | |
| RefPtr< ArrayInterpolator > | getInterpolator () const |
| virtual RefPtr< MemBase > | getSlice (index_t n, const MemBase::Creator_t &C) const =0 |
| For a multidimensional array retrieve the nth slice. | |
Public Member Functions inherited from Fiber::MemBase | |
| 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 index_t | nElements () const |
| return the number of elements in this array | |
| auto | NumberOfElements () const |
| auto | getNumberOfElements () const |
| virtual const type_info & | getType () const =0 |
| Return the element type of the certain array. | |
| 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 > | 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 RefPtr< MemCore::ChunkBase > | getChunk () const =0 |
| Get chunk to underlying data, if this is a contiguous array. | |
| 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? | |
Public Member Functions inherited from MemCore::Cacheable | |
| 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) |
Public Member Functions inherited from MemCore::ReferenceBase< Cacheable > | |
| 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 |
Public Member Functions inherited from MemCore::Intercube | |
| 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) |
Additional Inherited Members | |
Static Public Member Functions inherited from Fiber::MemBase | |
| static RefPtr< MemBase > | create (const RefPtr< FiberTypeBase > &FT, const DynamicSize &DS, const type_info &layout=typeid(void)) |
| Given a description of a certain data type for each element on array, allocate a multidimensional array of the given type. | |
| static bool | registerCreator (const RefPtr< Allocator > &A, const RefPtr< FiberTypeBase > &FT) |
Static Public Attributes inherited from Fiber::MemBase | |
| static int | RegisteredTypes = 0 |
Protected Member Functions inherited from MemCore::Cacheable | |
| void | adjustCacheableSize (memsize_t memDiff) |
Protected Member Functions inherited from MemCore::ReferenceBase< Cacheable > | |
| virtual void | extremeUnction () |
| ReferenceBase & | operator= (const ReferenceBase &R) |
| void | suicide () |
Abstract class for N-dimensional MultiArrays with MemCore memory management.
|
inlineoverridevirtual |
Implement creation of new memory sub array using the DynamicSize class.
Implements Fiber::MemBase.
References Fiber::MemArrayBase< N >::createSubMemArray().
|
pure virtual |
Create a new MemArray from a subset of the current array's data.
Implemented in Fiber::MemArray< N, T >.
Referenced by Fiber::MemArrayBase< N >::createSubArray().
|
inlineoverridevirtual |
Return the size of this dataset.
Implements Fiber::MemBase.
References Fiber::MemArrayBase< N >::Size().
|
pure virtual |
For a multidimensional array retrieve the nth slice.
The result will be of one dimension less. A Creator object must be given for Cache management.
Implemented in Fiber::DirectProductMemArrayBase< T, Category, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, T::SIZE >, and Fiber::MemArray< N, T >.
|
pure virtual |
Create a new array of the same type as the current one, but using the specified dimensions.
Content-wise the new array will be unrelated to the current one, but only be of the same type. The new array's data will be initialized with the type's default values.
Implemented in Fiber::MemArray< N, T >.
References Fiber::MemArrayBase< N >::newMemArraynD().
Referenced by Fiber::MemArrayBase< N >::newMemArraynD().
|
inlineoverridevirtual |
Return the number of array dimensions.
Implements Fiber::MemBase.
|
pure virtual |
The multi-dimensional size of this array.
Implemented in Fiber::DirectProductMemArrayBase< T, Category, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, T::SIZE >, Fiber::DirectProductMemArray< T, Category, MDIMS >, Fiber::DirectProductMemArray< Eagle::point3, LinearCoordinateAxisArray, T::SIZE >, Fiber::DirectProductMemArray< T, LinearCoordinateAxisArray, T::SIZE >, Fiber::MemArray< N, T >, and Fiber::ReferencingMemArray< N, T >.
Referenced by Fiber::MemArrayBase< N >::getSize().