Packages

  • package root
    Definition Classes
    root
  • package io
    Definition Classes
    root
  • package github
    Definition Classes
    io
  • package andrebeat
    Definition Classes
    github
  • package pool

    This library provides classes for dealing with object pooling that allow:

    This library provides classes for dealing with object pooling that allow:

    • blocking/non-blocking object acquisition
    • object invalidation
    • capping the number of pooled objects
    • creating new objects lazily, as needed
    • health checking
    • time-based pool eviction (idle instances)
    • GC-based pool eviction (soft and weak references)
    • efficient thread-safety

    Overview

    In order create a new io.github.andrebeat.pool.Pool the constructor method should be used like so

    scala> val pool = Pool(4, () => new Object)
    pool: io.github.andrebeat.pool.SimplePool[Object] = _
    scala> val lease = pool.acquire()
    lease: io.github.andrebeat.pool.Lease[Object] = _
    scala> lease.release()

    Additionally, in order to avoid manually releasing the lease after its used, you can use the use method on the lease:

    scala> val pool = Pool(4, () => new Object)
    pool: io.github.andrebeat.pool.SimplePool[Object] = _
    scala> val lease = pool.acquire()
    lease: io.github.andrebeat.pool.Lease[Object] = _
    scala> lease(println) // the lease is released automatically after its used
    java.lang.Object@7970d6d
    Definition Classes
    andrebeat
  • ArrayBlockingQueuePool
  • ExpiringPool
  • Lease
  • Pool
  • ReferenceType
  • SimplePool

object Pool

Object containing factory methods for io.github.andrebeat.pool.Pool.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Pool
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class ClosedPoolException extends Exception

    An exception that is thrown when trying to use a closed pool.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply[A <: AnyRef](capacity: Int, factory: () ⇒ A, referenceType: ReferenceType = ReferenceType.Strong, maxIdleTime: Duration = Duration.Inf, reset: (A) ⇒ Unit = _: A => (), dispose: (A) ⇒ Unit = _: A => (), healthCheck: (A) ⇒ Boolean = _: A => true): Pool[A]

    Creates a new io.github.andrebeat.pool.ExpiringPool or io.github.andrebeat.pool.SimplePool instance depending on whether a non-zero and finite maxIdleTime is set or not.

    Creates a new io.github.andrebeat.pool.ExpiringPool or io.github.andrebeat.pool.SimplePool instance depending on whether a non-zero and finite maxIdleTime is set or not.

    capacity

    the maximum capacity of the pool

    factory

    the function used to create new objects in the pool

    referenceType

    the reference type of objects in the io.github.andrebeat.pool.Pool. io.github.andrebeat.pool.ReferenceType.Soft and io.github.andrebeat.pool.ReferenceType.Weak reference are eligible for collection by the GC

    maxIdleTime

    the maximum amount of the time that objects are allowed to idle in the pool before being evicted

    reset

    the function used to reset objects in the pool (called when leasing an object from the pool)

    dispose

    the function used to destroy an object from the pool

    healthCheck

    the predicate used to test whether an object is healthy and should be used, or destroyed otherwise.

    returns

    a new instance of io.github.andrebeat.pool.Pool.

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped