commonMain.net.folivo.trixnity.client.store.TransactionManager.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of trixnity-client-jvm Show documentation
Show all versions of trixnity-client-jvm Show documentation
Multiplatform Kotlin SDK for matrix-protocol
package net.folivo.trixnity.client.store
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.withContext
import net.folivo.trixnity.client.store.repository.RepositoryTransactionManager
interface TransactionManager {
suspend fun transaction(block: suspend CoroutineScope.() -> Unit)
}
class TransactionManagerImpl(private val repositoryTransactionManager: RepositoryTransactionManager) :
TransactionManager {
override suspend fun transaction(block: suspend CoroutineScope.() -> Unit) =
repositoryTransactionManager.writeTransaction {
withContext(KeyStore.SkipOutdatedKeys) {
block()
}
}
}