Skip to content

Latest commit

 

History

History
452 lines (250 loc) · 7.84 KB

File metadata and controls

452 lines (250 loc) · 7.84 KB

@zimmed/prefab / Exports / ObjectPool

Class: ObjectPool<O>

Type parameters

Name Type
O extends PoolObject

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

• new ObjectPool<O>(PoolObjectClass, allocSize?)

Type parameters

Name Type
O extends PoolObject<O>

Parameters

Name Type Default value
PoolObjectClass () => O undefined
allocSize number 0

Defined in

src/ObjectPool.ts:60

Properties

_Class

• Protected Readonly _Class: () => O

Type declaration

• new ObjectPool()

Defined in

src/ObjectPool.ts:42


_active

• Private _active: number = 0

Defined in

src/ObjectPool.ts:48


_list

• Protected Readonly _list: LinkedList<O, PoolState<O>>

Defined in

src/ObjectPool.ts:39


_max

• Private _max: number = 0

Defined in

src/ObjectPool.ts:45


Object

▪ Static Object: typeof PoolObject = PoolObject

Objects within the pool must inherit from ObjectPool.Object

Defined in

src/ObjectPool.ts:36

Accessors

count

• get count(): number

The current count of active objects in the pool

Returns

number

Defined in

src/ObjectPool.ts:56


size

• get size(): number

The current (max) size of the object pool

Returns

number

Defined in

src/ObjectPool.ts:51

Methods

[iterator]

▸ [iterator](): Generator<O, void, unknown>

Returns

Generator<O, void, unknown>

Defined in

src/ObjectPool.ts:79


add

▸ Protected add(obj): void

Append new object to end of the pool queue

Parameters

Name Type
obj O

Returns

void

Defined in

src/ObjectPool.ts:186


alloc

▸ alloc(size?): ObjectPool<O>

Increases pool size and allocates new objects to fill it

Parameters

Name Type Default value
size number 1

Returns

ObjectPool<O>

Defined in

src/ObjectPool.ts:124


clear

▸ clear(): ObjectPool<O>

Completely clear the pool, freeing all objects from memory

Returns

ObjectPool<O>

Defined in

src/ObjectPool.ts:161


create

▸ Protected create(): O

Create and return new PoolObject

Returns

O

Defined in

src/ObjectPool.ts:178


dealloc

▸ dealloc(size?): ObjectPool<O>

Downsize pool by specified amount, deallocating overflowing objects

Parameters

Name Type Default value
size number 1

Returns

ObjectPool<O>

Defined in

src/ObjectPool.ts:166


deallocateObject

▸ Protected deallocateObject(obj?, del?): boolean

Cleans and removes object from pool entirely

Parameters

Name Type Default value
obj? O undefined
del boolean true

Returns

boolean

Defined in

src/ObjectPool.ts:198


forceSpawn

▸ forceSpawn(...args): O

Spawns and initializes object from pool, or create new object and increase pool size if full

Parameters

Name Type
...args InitArgs<O>

Returns

O

Defined in

src/ObjectPool.ts:84


free

▸ free(item): ObjectPool<O>

Returns object back to pool to be re-used later

Parameters

Name Type
item O

Returns

ObjectPool<O>

Defined in

src/ObjectPool.ts:117


insert

▸ Protected insert(obj): void

Insert new object into front of the pool queue

Parameters

Name Type
obj O

Returns

void

Defined in

src/ObjectPool.ts:192


items

▸ items(): Generator<O, void, unknown>

Returns

Generator<O, void, unknown>

Defined in

src/ObjectPool.ts:72


realloc

▸ realloc(size?): ObjectPool<O>

Sets max pool size, but ignores call if provided size is smaller than current max

Parameters

Name Type
size number

Returns

ObjectPool<O>

Defined in

src/ObjectPool.ts:150


reallocUnsafe

▸ reallocUnsafe(size?): ObjectPool<O>

Overrides max pool size, deallocating any overflowing objects

Parameters

Name Type
size number

Returns

ObjectPool<O>

Defined in

src/ObjectPool.ts:135


spawn

▸ spawn(...args): undefined | O

Spawns and initializes object from pool (if any are free)

Parameters

Name Type
...args InitArgs<O>

Returns

undefined | O

Defined in

src/ObjectPool.ts:103


toJSON

▸ toJSON(): O[]

Returns

O[]

Defined in

src/ObjectPool.ts:216