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>
Inheritance diagram for PtrMemory: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.