29 lines
916 B
Kotlin
29 lines
916 B
Kotlin
package ru.landrafhomyak.utility.reference_counter
|
|
|
|
import kotlin.jvm.JvmName
|
|
import kotlin.jvm.JvmStatic
|
|
|
|
public class CloseableReferenceCounter : MayBeClosedReferenceCounter {
|
|
public constructor(errMessageClosed: String) : super(errMessageClosed)
|
|
|
|
@Suppress("INAPPLICABLE_JVM_NAME")
|
|
@JvmName("close")
|
|
public override fun close(errExistRefs: String) {
|
|
super.close(errExistRefs)
|
|
}
|
|
|
|
public companion object {
|
|
@JvmStatic
|
|
@JvmName("autoClosed")
|
|
public fun <R> autoClosed(errMessageClosed: String, errExistRefs: String, scope: (MayBeClosedReferenceCounter) -> R): R {
|
|
_Platform.jvm_assertNotNull(errMessageClosed, "param: errMessageClosed")
|
|
_Platform.jvm_assertNotNull(errExistRefs, "param: errExistRefs")
|
|
_Platform.jvm_assertNotNull(scope, "param: scope")
|
|
|
|
val refcnt = CloseableReferenceCounter(errMessageClosed)
|
|
val ret = scope(refcnt)
|
|
refcnt.close(errExistRefs)
|
|
return ret
|
|
}
|
|
}
|
|
} |