scala.ref

package ref

Type Members

class PhantomReference[+T <: AnyRef] extends ReferenceWrapper[T]

trait Reference[+T <: AnyRef] extends () ⇒ T

class ReferenceQueue[+T <: AnyRef] extends AnyRef

trait ReferenceWrapper[+T <: AnyRef] extends Reference[T] with Proxy

class SoftReference[+T <: AnyRef] extends ReferenceWrapper[T]

class WeakReference[+T <: AnyRef] extends ReferenceWrapper[T]

A wrapper class for java.lang.ref.WeakReference The new functionality is (1) results are Option values, instead of using null. (2) There is an extractor that maps the weak reference itself into an option.

Value Members

object SoftReference

A companion object that implements an extractor for SoftReference values

object WeakReference

An extractor for weak reference values

Full Source:

/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2006-2013, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
\*                                                                      */


package scala.ref

/**
 *  @author Sean McDirmid
 */
class PhantomReference[+T <: AnyRef](value: T, queue: ReferenceQueue[T]) extends ReferenceWrapper[T] {
  val underlying: java.lang.ref.PhantomReference[_ <: T] =
    new PhantomReferenceWithWrapper[T](value, queue, this)
}

/**
 *  @author Philipp Haller
 */
private class PhantomReferenceWithWrapper[T <: AnyRef](value: T, queue: ReferenceQueue[T], val wrapper: PhantomReference[T])
  extends java.lang.ref.PhantomReference[T](value, queue.underlying.asInstanceOf[java.lang.ref.ReferenceQueue[T]]) with ReferenceWithWrapper[T]