closeable-state.kt/src/commonMain/kotlin/ru/landgrafhomyak/utility/closeable_state/CloseableState.kt

27 lines
548 B
Kotlin

package ru.landgrafhomyak.utility.closeable_state
public interface CloseableState : AutoCloseable {
public fun throwClosed(): Nothing
public fun throwInUse(): Nothing
public fun assertNotClosed()
public val isClosed: Boolean
@ManualStateManipulation
public fun startUsage()
@ManualStateManipulation
public fun finishUsage()
@ManualStateManipulation
public override fun close()
public interface AllowsConcurrency : CloseableState {
}
public interface ExternallySynchronized : CloseableState {
public val isInUse: Boolean
}
}