Torque2D Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
MemoryPoolAllocator< BaseAllocator > Class Template Reference

Default memory allocator used by the parser and DOM. More...

`#include <allocators.h>`

Inheritance diagram for MemoryPoolAllocator< BaseAllocator >:

## Public Member Functions
| MemoryPoolAllocator (size_t chunkSize=kDefaultChunkCapacity, BaseAllocator *baseAllocator=0)
| Constructor with chunkSize. More...
| MemoryPoolAllocator (char *buffer, size_t size, size_t chunkSize=kDefaultChunkCapacity, BaseAllocator *baseAllocator=0)
| Constructor with user-supplied buffer. More...
| ~MemoryPoolAllocator ()
| Destructor. More...
void | Clear ()
| Deallocates all memory chunks, excluding the user-supplied buffer. More...
size_t | Capacity ()
| Computes the total capacity of allocated memory chunks. More...
size_t | Size ()
| Computes the memory blocks allocated. More...
void * | Malloc (size_t size)
| Allocates a memory block. (concept Allocator) More...
void * | Realloc (void *originalPtr, size_t originalSize, size_t newSize)
| Resizes a memory block (concept Allocator) More...

## Static Public Member Functions
static void | Free (void *ptr)
| Frees a memory block (concept Allocator) More...

## Static Public Attributes
static const bool | kNeedFree = false
| Tell users that no need to call Free() with this allocator. (concept Allocator) More...

## Detailed Description

### template<typename BaseAllocator = CrtAllocator>
class rapidjson::MemoryPoolAllocator< BaseAllocator >

Default memory allocator used by the parser and DOM.

This allocator allocate memory blocks from pre-allocated memory chunks.

It does not free memory blocks. And Realloc() only allocate new memory.

The memory chunks are allocated by BaseAllocator, which is CrtAllocator by default.

User may also supply a buffer as the first chunk.

If the user-buffer is full then additional chunks are allocated by BaseAllocator.

The user-buffer is not deallocated by this allocator.

Template Parameters

  BaseAllocator | the allocator type for allocating memory chunks. Default is CrtAllocator.

## Constructor & Destructor Documentation

MemoryPoolAllocator | ( | size_t | chunkSize = `kDefaultChunkCapacity`,
|  | BaseAllocator * | baseAllocator = `0`
| ) |  |
| inline

Constructor with chunkSize.

Parameters

  chunkSize | The size of memory chunk. The default is kDefaultChunkSize.
  baseAllocator | The allocator for allocating memory chunks.

MemoryPoolAllocator | ( | char * | buffer,
|  | size_t | size,
|  | size_t | chunkSize = `kDefaultChunkCapacity`,
|  | BaseAllocator * | baseAllocator = `0`
| ) |  |
| inline

Constructor with user-supplied buffer.

The user buffer will be used firstly. When it is full, memory pool allocates new chunk with chunk size.

The user buffer will not be deallocated when this allocator is destructed.

Parameters

  buffer | User supplied buffer.
  size | Size of the buffer in bytes. It must at least larger than sizeof(ChunkHeader).
  chunkSize | The size of memory chunk. The default is kDefaultChunkSize.
  baseAllocator | The allocator for allocating memory chunks.

~MemoryPoolAllocator | ( |  | ) |
| inline

Destructor.

This deallocates all memory chunks, excluding the user-supplied buffer.

## Member Function Documentation

size_t Capacity | ( |  | ) |
| inline

Computes the total capacity of allocated memory chunks.

Returns
  total capacity in bytes.

void Clear | ( |  | ) |
| inline

Deallocates all memory chunks, excluding the user-supplied buffer.

static void Free | ( | void * | ptr | ) |
| inline static

Frees a memory block (concept Allocator)

void* Malloc | ( | size_t | size | ) |
| inline

Allocates a memory block. (concept Allocator)

void* Realloc | ( | void * | originalPtr,
|  | size_t | originalSize,
|  | size_t | newSize
| ) |  |
| inline

Resizes a memory block (concept Allocator)

size_t Size | ( |  | ) |
| inline

Computes the memory blocks allocated.

Returns
  total used bytes.

## Member Data Documentation

const bool kNeedFree = false
| static

Tell users that no need to call Free() with this allocator. (concept Allocator)

The documentation for this class was generated from the following file:

- persistence/rapidjson/include/rapidjson/allocators.h