blitz Version 1.0.2
|
#include <memblock.h>
Public Types | |
typedef P_type | T_type |
Protected Member Functions | |
MemoryBlock (sizeType items) | |
MemoryBlock (sizeType length, T_type *data) | |
Constructor for a preallocated block that should be deleted when we are done? | |
virtual | ~MemoryBlock () |
bool | doLock (bool lockingPolicy) |
void | addReference () |
T_type *restrict | data () |
const T_type *restrict | data () const |
T_type *& | dataBlockAddress () |
sizeType | length () const |
int | removeReference () |
int | references () const |
void | allocate (sizeType length) |
void | deallocate () |
Private Member Functions | |
MemoryBlock (const MemoryBlock< T_type > &) | |
void | operator= (const MemoryBlock< T_type > &) |
MemoryBlock () | |
The default constructor is needed for serialization. | |
Private Attributes | |
bool | allocatedByUs_ |
Keeps track of whether the block was preallocated or not. | |
union { | |
T_type *restrict data_ | |
simdTypes< T_type >::vecType *restrict data_tv_ | |
char *restrict data_char_ | |
}; | |
union { | |
T_type * dataBlockAddress_ | |
simdTypes< T_type >::vecType *restrict dBA_tv_ | |
char * dBA_char_ | |
}; | |
sizeType | length_ |
Friends | |
class | MemoryBlockReference< P_type > |
typedef P_type blitz::MemoryBlock< P_type >::T_type |
|
inlineexplicitprotected |
|
inlineprotected |
Constructor for a preallocated block that should be deleted when we are done?
References blitz::MemoryBlock< P_type >::allocatedByUs_, BZ_MUTEX_INIT, blitz::MemoryBlock< P_type >::data(), blitz::MemoryBlock< P_type >::data_, blitz::MemoryBlock< P_type >::dataBlockAddress_, blitz::MemoryBlock< P_type >::length(), and blitz::MemoryBlock< P_type >::length_.
|
inlineprotectedvirtual |
|
inlineprivate |
|
inlineprivate |
The default constructor is needed for serialization.
|
inlineprotected |
|
inlineprotected |
Referenced by blitz::MemoryBlock< P_type >::MemoryBlock().
|
inlineprotected |
|
inlineprotected |
References blitz::MemoryBlock< P_type >::data_.
|
inlineprotected |
References blitz::MemoryBlock< P_type >::dataBlockAddress_.
|
protected |
Referenced by blitz::MemoryBlock< P_type >::~MemoryBlock().
|
inlineprotected |
Referenced by blitz::MemoryBlockReference< P_type >::lockReferenceCount().
|
inlineprotected |
References blitz::MemoryBlock< P_type >::length_.
Referenced by blitz::MemoryBlockReference< P_type >::blockLength(), and blitz::MemoryBlock< P_type >::MemoryBlock().
|
inlineprivate |
|
inlineprotected |
References BZ_MUTEX_LOCK, and BZ_MUTEX_UNLOCK.
Referenced by blitz::MemoryBlockReference< P_type >::numReferences().
|
inlineprotected |
|
friend |
union { ... } blitz::MemoryBlock< P_type >::@1 |
union { ... } blitz::MemoryBlock< P_type >::@3 |
|
private |
Keeps track of whether the block was preallocated or not.
This affects potential alignment so must be taken into account when we delete.
Referenced by blitz::MemoryBlock< P_type >::MemoryBlock().
T_type* restrict blitz::MemoryBlock< P_type >::data_ |
Referenced by blitz::MemoryBlock< P_type >::data(), and blitz::MemoryBlock< P_type >::MemoryBlock().
char* restrict blitz::MemoryBlock< P_type >::data_char_ |
simdTypes<T_type>::vecType* restrict blitz::MemoryBlock< P_type >::data_tv_ |
T_type* blitz::MemoryBlock< P_type >::dataBlockAddress_ |
char* blitz::MemoryBlock< P_type >::dBA_char_ |
simdTypes<T_type>::vecType* restrict blitz::MemoryBlock< P_type >::dBA_tv_ |
|
private |