All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.net.folivo.trixnity.client.store.TransactionManager.kt Maven / Gradle / Ivy

There is a newer version: 4.7.1
Show newest version
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()
            }
        }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy