123456789101112131415161718192021222324252627282930313233343536373839 |
- package eu.kanade.data
- import androidx.paging.PagingSource
- import com.squareup.sqldelight.Query
- import com.squareup.sqldelight.Transacter
- import eu.kanade.tachiyomi.Database
- import kotlinx.coroutines.flow.Flow
- interface DatabaseHandler {
- suspend fun <T> await(inTransaction: Boolean = false, block: suspend Database.() -> T): T
- suspend fun <T : Any> awaitList(
- inTransaction: Boolean = false,
- block: suspend Database.() -> Query<T>,
- ): List<T>
- suspend fun <T : Any> awaitOne(
- inTransaction: Boolean = false,
- block: suspend Database.() -> Query<T>,
- ): T
- suspend fun <T : Any> awaitOneOrNull(
- inTransaction: Boolean = false,
- block: suspend Database.() -> Query<T>,
- ): T?
- fun <T : Any> subscribeToList(block: Database.() -> Query<T>): Flow<List<T>>
- fun <T : Any> subscribeToOne(block: Database.() -> Query<T>): Flow<T>
- fun <T : Any> subscribeToOneOrNull(block: Database.() -> Query<T>): Flow<T?>
- fun <T : Any> subscribeToPagingSource(
- countQuery: Database.() -> Query<Long>,
- transacter: Database.() -> Transacter,
- queryProvider: Database.(Long, Long) -> Query<T>,
- ): PagingSource<Long, T>
- }
|