Skip to main content

Pool <Type>

Index

Constructors

constructor

  • new Pool<Type>(builder: () => Type, recycler: (instance: Type) => Type, maxObjects?: number): Pool<Type>
  • Type parameters

    • Type

    Parameters

    • builder: () => Type
    • recycler: (instance: Type) => Type
    • maxObjects: number = 100

    Returns Pool<Type>

Properties

publicbuilder

builder: () => Type

Type declaration

    • (): Type
    • Returns Type

publicdisableWarnings

disableWarnings: boolean = false

publicindex

index: number = 0

publicmaxObjects

maxObjects: number = 100

publicobjects

objects: Type[] = []

publicrecycler

recycler: (instance: Type) => Type

Type declaration

    • (instance: Type): Type
    • Parameters

      • instance: Type

      Returns Type

publictotalAllocations

totalAllocations: number = 0

Methods

borrow

  • borrow(context: (object: Type) => void): void
  • Use a single instance out of th pool and immediately return it to the pool


    Parameters

    • context: (object: Type) => void

    Returns void

dispose

  • dispose(): void
  • Returns void

done

  • done(...objects: Type[]): Type[]
  • done(): void
  • Signals we are done with the pool objects for now, Reclaims all objects in the pool.

    If a list of pooled objects is passed to done they are un-hooked from the pool and are free to be passed to consumers


    Parameters

    • rest...objects: Type[]

      A list of object to separate from the pool

    Returns Type[]

get

  • get(): Type
  • Retrieve a value from the pool, will allocate a new instance if necessary or recycle from the pool


    Returns Type

preallocate

  • preallocate(): void
  • Returns void

using

  • using(context: (pool: Pool<Type>) => void | Type[]): Type[]
  • Use many instances out of the in the context and return all to the pool.

    By returning values out of the context they will be un-hooked from the pool and are free to be passed to consumers


    Parameters

    • context: (pool: Pool<Type>) => void | Type[]

    Returns Type[]