Manager

final class Manager

A resource manager.

Resources can be registered with the manager by calling acquire; such resources will be released in reverse order of their acquisition when the manager is closed, regardless of any exceptions thrown during use.

See the main doc for Using for full details of suppression behavior.

Note

It is recommended for API designers to require an implicit Manager for the creation of custom resources, and to call acquire during those resources' construction. Doing so guarantees that the resource must be automatically managed, and makes it impossible to forget to do so. Example:

class SafeFileReader(file: File)(implicit manager: Using.Manager) extends BufferedReader(new FileReader(file)) { def this(fileName: String)(implicit manager: Using.Manager) = this(new File(fileName)) manager.acquire(this) }
Companion
object
Source
Using.scala
class Object
trait Matchable
class Any

Value members

Concrete methods

def acquire[R](resource: R)(`evidence$12`: Releasable[R]): Unit

Registers the specified resource with this manager, so that the resource is released when the manager is closed.

def apply[R](resource: R)(`evidence$11`: Releasable[R]): R

Registers the specified resource with this manager, so that the resource is released when the manager is closed, and then returns the (unmodified) resource.