2020-10-09 13:53:58 +00:00
|
|
|
package oppen.ariane.io.gemini
|
2020-08-18 16:17:04 +00:00
|
|
|
|
2020-11-13 14:01:53 +00:00
|
|
|
import android.net.Uri
|
2020-08-18 16:17:04 +00:00
|
|
|
import androidx.collection.LruCache
|
|
|
|
import java.net.URI
|
|
|
|
|
|
|
|
object RuntimeCache {
|
|
|
|
|
|
|
|
private const val CACHE_SIZE = 4 * 1024 * 1024
|
2020-08-21 15:12:00 +00:00
|
|
|
private val lruCache = LruCache<String, Pair<GeminiResponse.Header, List<String>>>(
|
|
|
|
CACHE_SIZE
|
|
|
|
)
|
2020-08-18 16:17:04 +00:00
|
|
|
|
|
|
|
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()]
|
2020-11-13 14:01:53 +00:00
|
|
|
fun get(uri: Uri): Pair<GeminiResponse.Header, List<String>>? = lruCache[uri.toString()]
|
2020-08-19 11:33:16 +00:00
|
|
|
|
|
|
|
fun clear() = lruCache.evictAll()
|
2020-08-20 13:52:24 +00:00
|
|
|
|
|
|
|
fun remove(address: String) {
|
|
|
|
lruCache.remove(address)
|
|
|
|
}
|
2020-08-18 16:17:04 +00:00
|
|
|
}
|