This class give memory from a preallocated memory, memory destruction is not performed. More...
This class give memory from a preallocated memory, memory destruction is not performed.
Useful to shape pieces of memory
Usage:
void * ptr = new int[1000]
PtrMemory m = new PtrMemory(ptr,1000);
m.allocate(); int * ptr = m.getPointer(); *ptr[999] = 1000; ....
delete[] ptr;
Definition at line 39 of file PtrMemory.hpp.
#include <PtrMemory.hpp>
Public Member Functions | |
bool | copyDeviceToDevice (const PtrMemory &m) |
copy from same Heap to Heap | |
virtual bool | flush () |
flush the memory | |
virtual bool | allocate (size_t sz) |
allocate memory | |
virtual void | destroy () |
destroy memory | |
virtual bool | copy (const memory &m) |
copy memory | |
virtual size_t | size () const |
the the size of the allocated memory | |
virtual bool | resize (size_t sz) |
resize the memory allocated | |
virtual void * | getPointer () |
get a readable pointer with the data | |
virtual const void * | getPointer () const |
get a readable pointer with the data | |
virtual void * | getDevicePointer () |
get a readable pointer with the data | |
virtual void | deviceToHost () |
Do nothing. | |
virtual void | hostToDevice () |
Do nothing. | |
virtual void | deviceToHost (size_t start, size_t stop) |
Do nothing. | |
virtual void | hostToDevice (size_t start, size_t top) |
Do nothing. | |
virtual void | fill (unsigned char c) |
fill memory with the selected byte | |
virtual void | incRef () |
Increment the reference counter. | |
virtual void | decRef () |
Decrement the reference counter. | |
virtual long int | ref () |
Return the reference counter. | |
bool | isInitialized () |
Allocated Memory is already initialized. | |
PtrMemory (void *ptr, size_t sz) | |
Constructor, we choose a default alignment of 32 for avx. | |
Public Member Functions inherited from memory | |
virtual | ~memory () |
destructor | |
Static Public Member Functions | |
static constexpr bool | isDeviceHostSame () |
Return true if the device and the host pointer are the same. | |
Private Member Functions | |
bool | copyFromPointer (const void *ptr, size_t sz) |
copy from Pointer to Heap | |
void | setAlignment (size_t align) |
Set alignment the memory will be aligned with this number. | |
Private Attributes | |
size_t | spm |
Size of the pointed memory. | |
void * | dm |
Pointed memory. | |
long int | ref_cnt |
Reference counter. | |
|
inline |
Definition at line 136 of file PtrMemory.hpp.
|
inline |
Constructor, we choose a default alignment of 32 for avx.
Definition at line 141 of file PtrMemory.hpp.
|
inline |
Definition at line 145 of file PtrMemory.hpp.
|
virtual |
allocate memory
Allocate a chunk of memory.
sz | size of the chunk of memory to allocate in byte |
Implements memory.
Definition at line 33 of file PtrMemory.cpp.
|
virtual |
copy memory
copy the memory
m | a memory interface |
Here we try to cast memory into PtrMemory
if we fail we get the pointer and simply copy from the pointer
Implements memory.
Definition at line 92 of file PtrMemory.cpp.
bool PtrMemory::copyDeviceToDevice | ( | const PtrMemory & | m | ) |
copy from same Heap to Heap
copy from device to device
copy a piece of memory from device to device
m | PtrMemory from where to copy |
The source buffer is too big to copy it
Definition at line 72 of file PtrMemory.cpp.
|
private |
copy from Pointer to Heap
copy the data from a pointer
ptr |
Definition at line 54 of file PtrMemory.cpp.
|
inlinevirtual |
|
virtual |
destroy memory
destroy a chunk of memory
Implements memory.
Definition at line 45 of file PtrMemory.cpp.
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
fill memory with the selected byte
byte | to fill |
Implements memory.
Definition at line 22 of file PtrMemory.cpp.
|
inlinevirtual |
|
virtual |
get a readable pointer with the data
Return a pointer to the allocated memory.
Implements memory.
Definition at line 167 of file PtrMemory.cpp.
|
virtual |
get a readable pointer with the data
Return a pointer to the allocated memory.
Implements memory.
Definition at line 156 of file PtrMemory.cpp.
|
virtual |
get a readable pointer with the data
Return a pointer to the allocated memory.
Implements memory.
Definition at line 179 of file PtrMemory.cpp.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinestaticconstexpr |
Return true if the device and the host pointer are the same.
Definition at line 120 of file PtrMemory.hpp.
|
inlinevirtual |
Allocated Memory is already initialized.
Implements memory.
Definition at line 130 of file PtrMemory.hpp.
|
inlinevirtual |
|
virtual |
resize the memory allocated
Resize the allocated memory.
Resize the allocated memory, if request is smaller than the allocated memory is not resized
sz | size |
Implements memory.
Definition at line 137 of file PtrMemory.cpp.
|
virtual |
the the size of the allocated memory
Get the size of the allocated memory.
Get the size of the allocated memory
Implements memory.
Definition at line 122 of file PtrMemory.cpp.
|
private |
Pointed memory.
Definition at line 45 of file PtrMemory.hpp.
|
private |
Reference counter.
Definition at line 48 of file PtrMemory.hpp.
|
private |
Size of the pointed memory.
Definition at line 42 of file PtrMemory.hpp.