27 lines
548 B
Kotlin
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
|
|
}
|
|
} |