![]() | Patrick's Programming Library Version 6.4.21 - Dokumentation |
Speicherverwaltung: MemMan. Mehr ...
Öffentliche Methoden | |
CMemMan () | |
~CMemMan () | |
void * | Calloc (ppldd size) |
void * | Calloc (size_t nmemb, size_t size) |
void | Clear () |
void | Free (void *adr) |
ppluint64 | GetFreeMem () |
ppluint64 | GetUsedMem () |
void * | Malloc (ppldd size, bool clear=false) |
void | SetDefaultGrow (ppluint32 bytes) |
char * | Strdup (const char *str) |
char * | Strndup (const char *str, size_t size) |
Private Methoden | |
void * | AllocateSlot (void *block, void *slot, ppldd size, bool clear) |
ppluint32 | CRC (void *slot) |
void | FindBiggestSlot (void *block) |
Private Attribute | |
void * | first |
ppluint32 | growth |
void * | last |
ppluint32 | sig |
ppluint64 | size |
ppluint64 | size_free |
ppluint64 | size_used |
ppluint32 | sizeof_memman |
ppluint32 | sizeof_memslot |
CMemMan geht einen Schritt weiter. Sie allokiert von vorne herein mehr Speicher und verwaltet diesen selbst innerhalb einer Liste. Die Klasse ist ideal dafür geeignet, wenn viele kleine Speicherblöcke mit unterschiedlichen Größen allokiert werden müssen, diese aber selten wieder freigegeben werden.
ppl6::CMemMan::CMemMan | ( | ) |
ppl6::CMemMan::~CMemMan | ( | ) |
|
private |
void * ppl6::CMemMan::Calloc | ( | ppldd | size | ) |
void * ppl6::CMemMan::Calloc | ( | size_t | nmemb, |
size_t | size | ||
) |
void ppl6::CMemMan::Clear | ( | ) |
|
private |
|
private |
void ppl6::CMemMan::Free | ( | void * | adr | ) |
ppluint64 ppl6::CMemMan::GetFreeMem | ( | ) |
ppluint64 ppl6::CMemMan::GetUsedMem | ( | ) |
void * ppl6::CMemMan::Malloc | ( | ppldd | size, |
bool | clear = false |
||
) |
void ppl6::CMemMan::SetDefaultGrow | ( | ppluint32 | bytes | ) |
char * ppl6::CMemMan::Strdup | ( | const char * | str | ) |
char * ppl6::CMemMan::Strndup | ( | const char * | str, |
size_t | size | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |