Panda3D

- Main Page
- Packages
- Classes

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

Public Member Functions

# SimpleAllocator Class Reference

An implementation of a very simple block allocator. More...

Inheritance diagram for SimpleAllocator:

List of all members.

## 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)

## Detailed Description

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.

## Constructor & Destructor Documentation

SimpleAllocator | ( | unsigned int | max_size,
|  | Mutex | lock
| ) |  |

## Member Function Documentation

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 | ) |

All Classes Namespaces Functions Variables Enumerations Enumerator Properties