|
FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
|
Base class for multidimensional arrays with MemCore memory management. More...
#include <MemBase.hpp>
Classes | |
| class | Allocator |
| Same as above but using a unsinged int vector. More... | |
Public Types | |
| 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 | |
| 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 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 > | 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 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) |
Static Public Member Functions | |
| 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 | |
| static int | RegisteredTypes = 0 |
Additional Inherited Members | |
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 () |
|
pure virtual |
Create a copy of the current array, duplicating all data and allocating new memory for it.
Implemented in Fiber::DirectProductMemArray< T, Category, MDIMS >, Fiber::DirectProductMemArray< Eagle::point3, LinearCoordinateAxisArray, T::SIZE >, Fiber::DirectProductMemArray< T, LinearCoordinateAxisArray, T::SIZE >, Fiber::MemArray< N, T >, and Fiber::UniformCartesianArray.
Copy all data values from the given MemBase.
No new data allocation will be performed here.
|
static |
Given a description of a certain data type for each element on array, allocate a multidimensional array of the given type.
The creation will be forwarded to certain Allocators of this specific type, which have been registered through registerCreator();
Referenced by Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), create(), and create().
|
pure virtual |
Create a memory array of the same dimensions as the current array, but with data as provided by the Storage.
Will return NullPtr if the size and types don't match. Calls MemArray::createMemArray() .
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 >.
Referenced by Fiber::TypedArray< T >::applyOperator(), and Fiber::TypedArray< T >::applyOperator().
|
pure virtual |
Implemented in Fiber::MemArrayBase< N >, and Fiber::MemArrayBase< MDIMS >.
|
overridepure virtual |
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.
Reimplemented from MemCore::Cacheable.
Implemented in Fiber::DirectProductMemArrayBase< T, Category, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, T::SIZE >, and Fiber::ReferencingMemArray< N, T >.
Get pointer to delta of linearly procedural array, if it is linear.
Implemented in Fiber::DirectProductMemArray< T, Category, MDIMS >, Fiber::DirectProductMemArray< Eagle::point3, LinearCoordinateAxisArray, T::SIZE >, Fiber::DirectProductMemArray< T, LinearCoordinateAxisArray, T::SIZE >, Fiber::LinearDirectProductMemArray< T, DeltaT, MDIMS >, Fiber::LinearDirectProductMemArray< Eagle::point3, Eagle::tvector3 >, and Fiber::ReferencingMemArray< N, T >.
|
pure virtual |
Get chunk to underlying data, if this is a contiguous array.
Implemented in Fiber::TypedArray< T >, and Fiber::TypedArray< Eagle::point3 >.
Special Array Storage.
Get pointer to underlying data, if this is a contiguous array
Implemented in Fiber::DirectProductMemArrayBase< T, Category, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, MDIMS >, Fiber::DirectProductMemArrayBase< T::FixedArray_t, LinearCoordinateAxisArray, T::SIZE >, and Fiber::ReferencingMemArray< N, T >.
|
pure virtual |
Return the size of this dataset.
Implemented in Fiber::MemArrayBase< N >, and Fiber::MemArrayBase< MDIMS >.
Referenced by Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), Fiber::TypedArray< T >::applyFunction(), and create().
Return the element type of the certain array.
Implemented in Fiber::DirectProductMemArray< T, Category, MDIMS >, Fiber::DirectProductMemArray< Eagle::point3, LinearCoordinateAxisArray, T::SIZE >, Fiber::DirectProductMemArray< T, LinearCoordinateAxisArray, T::SIZE >, Fiber::ReferencingMemArray< N, T >, Fiber::TypedArray< T >, and Fiber::TypedArray< Eagle::point3 >.
|
pure virtual |
Provide a MemArray, even though the actual data is a procedural array.
This is useful when some code explicitely needs to deal with data pointer, even though it is inefficient in terms of memory.
Implemented in Fiber::MemArray< N, T >, Fiber::DirectProductMemArray< T, Category, MDIMS >, Fiber::DirectProductMemArray< Eagle::point3, LinearCoordinateAxisArray, T::SIZE >, and Fiber::DirectProductMemArray< T, LinearCoordinateAxisArray, T::SIZE >.
|
inlineoverridevirtual |
How much memory is occupied here at all in case it's stored in a chunk?
Implements MemCore::Cacheable.
Reimplemented in Fiber::ReferencingMemArray< N, T >.
return the number of elements in this array
Reimplemented in Fiber::ReferencingMemArray< N, T >.
Get pointer to origin of linearly procedural array, if it is linear.
Implemented in Fiber::DirectProductMemArray< T, Category, MDIMS >, Fiber::DirectProductMemArray< Eagle::point3, LinearCoordinateAxisArray, T::SIZE >, Fiber::DirectProductMemArray< T, LinearCoordinateAxisArray, T::SIZE >, Fiber::LinearDirectProductMemArray< T, DeltaT, MDIMS >, Fiber::LinearDirectProductMemArray< Eagle::point3, Eagle::tvector3 >, and Fiber::ReferencingMemArray< N, T >.
|
pure virtual |
Return the number of dimensions.
Implemented in Fiber::MemArrayBase< N >, and Fiber::MemArrayBase< MDIMS >.