Home

# Class goog.structs.SimplePool

A generic pool class. Simpler and more efficient than goog.structs.Pool because it doesn't maintain a list of objects that are in use. This class has constant overhead and doesn't create any additional objects as part of the pool management after construction time. IMPORTANT: If the objects being pooled are arrays or maps that can have unlimited number of properties, they need to be cleaned before being returned to the pool. Also note that {@see goog.object.clean} actually allocates an array to clean the object passed to it, so simply using this function would defy the purpose of using the pool.

extends goog.Disposable

Instance Method Summary
| `createInitial_(number initialCount)` Populates the pool with initialCount objects.
| `createObject() ⇒ <Any Type>` Should be overriden by sub-classes to return an instance of the object type that is expected in the pool.
| `disposeInternal()` Disposes of the pool and all objects currently held in the pool.
| `disposeObject(<Any Type> obj)` Should be overriden to dispose of an object. Default implementation is to remove all of the object's members, which should render it useless. Calls the object's dispose method, if available.
| `getObject() ⇒ <Any Type>` Gets an unused object from the the pool, if there is one available, otherwise creates a new one.
| `releaseObject(<Any Type> obj)` Returns an object to the pool so that it can be reused. If the pool is already full, the object is disposed instead.
| `setCreateObjectFn(?Function createObjectFn)` Sets the {@code createObject} function which is used for creating a new object in the pool.
| `setDisposeObjectFn(?Function disposeObjectFn)` Sets the {@code disposeObject} function which is used for disposing of an object in the pool.