Dart DocumentationdartemisPoolable

Poolable abstract class

Objects of this class can be pooled in the ObjectPool for later reuse.

Should be added as a mixin.

abstract class Poolable {

 /**
  * Creates a new [Poolable] of [Type] [type].
  *
  * The instance created with [createPoolable] should be created with
  * a zero-argument contructor because it will only be called once. All fields
  * of the created object should be set in the calling factory constructor.
  */
 factory Poolable.of(Type type, CreatePoolable createPoolable) {
   return ObjectPool.get(type, createPoolable);
 }
 /**
  * If you need to do some cleanup before this object moves into the Pool of
  * reusable objects.
  */
 void cleanUp();

 /**
  * Calls the cleanup function and moves this object to the [ObjectPool].
  */
 void moveToPool() {
   cleanUp();
   ObjectPool.add(this);
 }
}

Constructors

factory Poolable.of(Type type, CreatePoolable createPoolable) #

Creates a new Poolable of [Type] [type].

The instance created with createPoolable should be created with a zero-argument contructor because it will only be called once. All fields of the created object should be set in the calling factory constructor.

factory Poolable.of(Type type, CreatePoolable createPoolable) {
 return ObjectPool.get(type, createPoolable);
}

Methods

abstract void cleanUp() #

If you need to do some cleanup before this object moves into the Pool of reusable objects.

void moveToPool() #

Calls the cleanup function and moves this object to the ObjectPool.

void moveToPool() {
 cleanUp();
 ObjectPool.add(this);
}