Singleton class template to manage the allocation/deallocation of memory blocks of one specific size.
More...
#include <static_mem_pool.h>
|
void * | allocate () |
| Allocates memory and returns its pointer. More...
|
|
void | deallocate (void *ptr) |
| Deallocates memory by putting the memory block into the pool. More...
|
|
virtual void | recycle () override |
| Recycles half of the free memory blocks in the memory pool to the system. More...
|
|
virtual | ~mem_pool_base () |
| Empty base destructor.
|
|
template<size_t _Sz, int _Gid = -1>
class nvwa::static_mem_pool< _Sz, _Gid >
Singleton class template to manage the allocation/deallocation of memory blocks of one specific size.
- Parameters
-
◆ allocate()
template<size_t _Sz, int _Gid = -1>
Allocates memory and returns its pointer.
The template will try to get it from the memory pool first, and request memory from the system if there is no free memory in the pool.
- Returns
- pointer to allocated memory if successful; null otherwise
◆ deallocate()
template<size_t _Sz, int _Gid = -1>
Deallocates memory by putting the memory block into the pool.
- Parameters
-
ptr | pointer to memory to be deallocated |
◆ instance()
template<size_t _Sz, int _Gid = -1>
Gets the instance of the static memory pool.
It will create the instance if it does not already exist. Generally this function is now not needed.
- Returns
- reference to the instance of the static memory pool
- See also
- instance_known
◆ instance_known()
template<size_t _Sz, int _Gid = -1>
Gets the known instance of the static memory pool.
The instance must already exist. Generally the static initializer of the template guarantees it.
- Returns
- reference to the instance of the static memory pool
◆ recycle()
template<size_t _Sz, int _Gid>
Recycles half of the free memory blocks in the memory pool to the system.
It is called when a memory request to the system (in other instances of the static memory pool) fails.
Implements nvwa::mem_pool_base.
The documentation for this class was generated from the following file: