ariane/app/src/main/java/oppen/ariane/io/gemini/RuntimeCache.kt

26 lines
740 B
Kotlin

package oppen.ariane.io.gemini
import android.net.Uri
import androidx.collection.LruCache
import java.net.URI
object RuntimeCache {
private const val CACHE_SIZE = 4 * 1024 * 1024
private val lruCache = LruCache<String, Pair<GeminiResponse.Header, List<String>>>(
CACHE_SIZE
)
fun put(uri: URI, header: GeminiResponse.Header, lines: List<String>){
lruCache.put(uri.toString(), Pair(header, lines))
}
fun get(uri: URI): Pair<GeminiResponse.Header, List<String>>? = lruCache[uri.toString()]
fun get(uri: Uri): Pair<GeminiResponse.Header, List<String>>? = lruCache[uri.toString()]
fun clear() = lruCache.evictAll()
fun remove(address: String) {
lruCache.remove(address)
}
}