|
Panda3D
|
An implementation of a very simple block allocator. More...
Public Member Functions | |
| SimpleAllocator (unsigned int max_size, Mutex lock) | |
| SimpleAllocatorBlock | alloc (unsigned int size) |
| Allocates a new block. | |
| unsigned int | getContiguous () |
| Returns an upper-bound estimate of the size of the largest contiguous block that may be allocated. | |
| SimpleAllocatorBlock | getFirstBlock () |
| Returns a pointer to the first allocated block, or NULL if there are no allocated blocks. | |
| unsigned int | getMaxSize () |
| Returns the available space for allocated objects. | |
| unsigned int | getTotalSize () |
| Returns the total size of allocated objects. | |
| bool | isEmpty () |
| Returns true if there are no blocks allocated on this page, or false if there is at least one. | |
| output (ostream out) | |
| setMaxSize (unsigned int max_size) | |
| Changes the available space for allocated objects. | |
| write (ostream out) | |
An implementation of a very simple block allocator.
This class can allocate ranges of nonnegative integers within a specified upper limit; it uses a simple first-fit algorithm to find the next available space.
| SimpleAllocator | ( | unsigned int | max_size, |
| Mutex | lock | ||
| ) |
| SimpleAllocatorBlock alloc | ( | unsigned int | size | ) |
Allocates a new block.
Returns NULL if a block of the requested size cannot be allocated.
To free the allocated block, call block->free(), or simply delete the block pointer.
Reimplemented in VertexDataPage.
| unsigned int getContiguous | ( | ) |
Returns an upper-bound estimate of the size of the largest contiguous block that may be allocated.
It is guaranteed that an attempt to allocate a block larger than this will fail, though it is not guaranteed that an attempt to allocate a block this size or smaller will succeed.
| SimpleAllocatorBlock getFirstBlock | ( | ) |
Returns a pointer to the first allocated block, or NULL if there are no allocated blocks.
Reimplemented in VertexDataPage.
| unsigned int getMaxSize | ( | ) |
Returns the available space for allocated objects.
| unsigned int getTotalSize | ( | ) |
Returns the total size of allocated objects.
| bool isEmpty | ( | ) |
Returns true if there are no blocks allocated on this page, or false if there is at least one.
| output | ( | ostream | out | ) |
Reimplemented in VertexDataPage.
| setMaxSize | ( | unsigned int | max_size | ) |
Changes the available space for allocated objects.
This will not affect any already-allocated objects, but will have an effect on future calls to alloc().
| write | ( | ostream | out | ) |
1.7.3