
commonMain.com.m2f.archer.ExpirationRegistryQueries.kt Maven / Gradle / Ivy
package com.m2f.archer
import app.cash.sqldelight.Query
import app.cash.sqldelight.SuspendingTransacterImpl
import app.cash.sqldelight.db.QueryResult
import app.cash.sqldelight.db.SqlCursor
import app.cash.sqldelight.db.SqlDriver
import kotlin.Any
import kotlin.Long
import kotlin.String
public class ExpirationRegistryQueries(
driver: SqlDriver,
) : SuspendingTransacterImpl(driver) {
public fun getInstant(
key: String,
hash: Long,
mapper: (
key: String,
hash: Long,
name: String,
instant: String,
whenCreated: String,
) -> T,
): Query = GetInstantQuery(key, hash) { cursor ->
mapper(
cursor.getString(0)!!,
cursor.getLong(1)!!,
cursor.getString(2)!!,
cursor.getString(3)!!,
cursor.getString(4)!!
)
}
public fun getInstant(key: String, hash: Long): Query = getInstant(key,
hash) { key_, hash_, name, instant, whenCreated ->
ExpirationRegistry(
key_,
hash_,
name,
instant,
whenCreated
)
}
public suspend fun insertInstant(
key: String,
hash: Long,
name: String,
instant: String,
whenCreated: String,
) {
driver.execute(657_443_409, """
|INSERT OR REPLACE INTO ExpirationRegistry(key, hash, name, instant, whenCreated)
|VALUES (?, ?, ?, ?, ?)
""".trimMargin(), 5) {
bindString(0, key)
bindLong(1, hash)
bindString(2, name)
bindString(3, instant)
bindString(4, whenCreated)
}.await()
notifyQueries(657_443_409) { emit ->
emit("ExpirationRegistry")
}
}
public suspend fun deleteInstant(key: String, hash: Long) {
driver.execute(964_178_719, """DELETE FROM ExpirationRegistry WHERE key = ? AND hash = ?""", 2)
{
bindString(0, key)
bindLong(1, hash)
}.await()
notifyQueries(964_178_719) { emit ->
emit("ExpirationRegistry")
}
}
private inner class GetInstantQuery(
public val key: String,
public val hash: Long,
mapper: (SqlCursor) -> T,
) : Query(mapper) {
override fun addListener(listener: Query.Listener) {
driver.addListener("ExpirationRegistry", listener = listener)
}
override fun removeListener(listener: Query.Listener) {
driver.removeListener("ExpirationRegistry", listener = listener)
}
override fun execute(mapper: (SqlCursor) -> QueryResult): QueryResult =
driver.executeQuery(-278_830_878,
"""SELECT * FROM ExpirationRegistry WHERE key = ? AND hash = ?""", mapper, 2) {
bindString(0, key)
bindLong(1, hash)
}
override fun toString(): String = "ExpirationRegistry.sq:getInstant"
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy