ResourceManager

Resource Manager

Simple implementation of LifecycleBoundResources, which propagates close calls to resources registered to it. Implementations are intended to use delegation:

class MyResourceHolder(
private val manager: LifecycleBoundResources = ResourceManager()
): LifecycleBoundResources by manager, AutoCloseable by manager {
// ...
private fun somethingThatSpawnsAResource() {
val resource = // ...
register(resource)
}
}

// later ...
val instance = MyResourceHolder()
instance.use {
// the inner resource will be closed automatically
}

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
open override val allResources: Sequence<BoundResource>

Returns all resources currently bound to this lifecycle.

Functions

Link copied to clipboard
open override fun close()
Link copied to clipboard
open override fun register(resource: Closeable)

Register a Closeable resource to this lifecycle.

open override fun register(resource: AutoCloseable)

Unregister a Closeable resource from this lifecycle.

Link copied to clipboard
open override fun unregister(resource: Closeable)

Register an AutoCloseable resource to this lifecycle.

open override fun unregister(resource: AutoCloseable)

Unregister an AutoCloseable resource from this lifecycle.