reference-counter.kt/src/commonMain/kotlin/ru/landrafhomyak/utility/reference_counter/CloseableReferenceCounter.kt

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
}
}
}