Preallocated memory sequence
External pre-allocated memory, is a class that preallocate memory and than it answer to a particular allocation pattern
Base | memory allocation class [Example] HeapMemory or CudaMemory |
Definition at line 27 of file ExtPreAlloc.hpp.
#include <ExtPreAlloc.hpp>
Public Member Functions | |
ExtPreAlloc () | |
Default constructor. | |
ExtPreAlloc (size_t size, Mem &mem) | |
Preallocated memory sequence. More... | |
bool | copyDeviceToDevice (const ExtPreAlloc< Mem > &m) |
Copy the memory from device to device. More... | |
void | deviceToDevice (void *ptr, size_t start, size_t stop, size_t offset) |
special function to move memory from a raw device pointer More... | |
virtual void | incRef () |
Increment the reference counter. | |
virtual void | decRef () |
Decrement the reference counter. | |
virtual long int | ref () |
Return the reference counter. | |
virtual bool | flush () |
flush the memory | |
virtual void | fill (unsigned char c) |
fill host and device memory with the selected byte More... | |
virtual bool | allocate (size_t sz) |
Allocate a chunk of memory. More... | |
bool | allocate_nocheck (size_t sz) |
Allocate a chunk of memory. More... | |
void * | getPointerEnd () |
Return the end pointer of the previous allocated memory. More... | |
void * | getDevicePointerEnd () |
Return the device end pointer of the previous allocated memory. More... | |
void * | getPointerBase () |
The the base pointer of the preallocate memory. More... | |
virtual void * | getDevicePointer () |
Return the pointer of the last allocation. More... | |
virtual void | hostToDevice () |
Return the pointer of the last allocation. More... | |
virtual void | hostToDevice (size_t start, size_t stop) |
Return the pointer of the last allocation. More... | |
virtual void | deviceToHost () |
Do nothing. | |
virtual void | deviceToHost (size_t start, size_t stop) |
Do nothing. | |
virtual void * | getPointer () |
Return the pointer of the last allocation. More... | |
virtual const void * | getPointer () const |
Return the pointer of the last allocation. More... | |
void * | getPointerOffset (size_t offset) |
Get the base memory pointer increased with an offset. More... | |
virtual bool | resize (size_t sz) |
Allocate or resize the allocated memory. More... | |
virtual size_t | size () const |
Get the size of the LAST allocated memory. More... | |
void | destroy () |
Destroy memory. More... | |
virtual bool | copy (const memory &m) |
Copy memory. More... | |
bool | isInitialized () |
Allocated Memory is never initialized. More... | |
void | shift_backward (size_t sz) |
shift the pointer backward More... | |
void | shift_forward (size_t sz) |
shift the pointer forward More... | |
size_t | getOffset () |
Get offset. More... | |
size_t | getOffsetEnd () |
Get offset. More... | |
void | reset () |
Reset the internal counters. More... | |
![]() | |
virtual | ~memory () |
destructor More... | |
Static Public Member Functions | |
static constexpr bool | isDeviceHostSame () |
static size_t | calculateMem (std::vector< size_t > &mm) |
Calculate the total memory required to pack the message. More... | |
Private Attributes | |
size_t | a_seq |
Actual allocation pointer. | |
size_t | l_size |
Last allocation size. | |
Mem * | mem |
Main class for memory allocation. | |
long int | ref_cnt |
Reference counter. | |
|
inline |
Preallocated memory sequence.
size | number of bytes |
mem | external memory, used if you want to keep the memory |
Definition at line 61 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Allocate a chunk of memory.
Allocate a chunk of memory
sz | size of the chunk of memory to allocate in byte |
Implements memory.
Definition at line 130 of file ExtPreAlloc.hpp.
|
inline |
Allocate a chunk of memory.
Allocate a chunk of memory
sz | size of the chunk of memory to allocate in byte |
Definition at line 157 of file ExtPreAlloc.hpp.
|
inlinestatic |
Calculate the total memory required to pack the message.
Definition at line 336 of file ExtPreAlloc.hpp.
|
inlinevirtual |
|
inline |
Copy the memory from device to device.
m | memory from where to copy |
Definition at line 74 of file ExtPreAlloc.hpp.
|
inlinevirtual |
|
inline |
special function to move memory from a raw device pointer
start | byte |
stop | byte |
offset | destination byte |
Definition at line 87 of file ExtPreAlloc.hpp.
|
inlinevirtual |
fill host and device memory with the selected byte
Implements memory.
Definition at line 118 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Return the pointer of the last allocation.
NULL if memory has not been allocated
Implements memory.
Definition at line 206 of file ExtPreAlloc.hpp.
|
inline |
Return the device end pointer of the previous allocated memory.
Definition at line 184 of file ExtPreAlloc.hpp.
|
inline |
|
inline |
|
inlinevirtual |
Return the pointer of the last allocation.
Implements memory.
Definition at line 250 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Return the pointer of the last allocation.
Implements memory.
Definition at line 260 of file ExtPreAlloc.hpp.
|
inline |
The the base pointer of the preallocate memory.
Definition at line 194 of file ExtPreAlloc.hpp.
|
inline |
Return the end pointer of the previous allocated memory.
Definition at line 174 of file ExtPreAlloc.hpp.
|
inline |
Get the base memory pointer increased with an offset.
offset | memory offset |
Definition at line 270 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Return the pointer of the last allocation.
Implements memory.
Definition at line 218 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Return the pointer of the last allocation.
Implements memory.
Definition at line 228 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Allocated Memory is never initialized.
Implements memory.
Definition at line 326 of file ExtPreAlloc.hpp.
|
inline |
Reset the internal counters.
Definition at line 427 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Allocate or 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 285 of file ExtPreAlloc.hpp.
|
inline |
shift the pointer backward
This function is useful to go ahead in memory and fill the memory later on
how | many byte to shift |
Definition at line 380 of file ExtPreAlloc.hpp.
|
inline |
shift the pointer forward
The same as shift backward, but in this case it move the pointer forward
In general you use this function after the you went back with shift_backward and you have to move forward again
Definition at line 397 of file ExtPreAlloc.hpp.
|
inlinevirtual |
Get the size of the LAST allocated memory.
Get the size of the allocated memory
Implements memory.
Definition at line 298 of file ExtPreAlloc.hpp.