
flag.FlagConfigStorage.kt Maven / Gradle / Ivy
package com.amplitude.experiment.flag
import com.amplitude.experiment.evaluation.FlagConfig
import java.util.concurrent.locks.ReentrantReadWriteLock
import kotlin.concurrent.read
import kotlin.concurrent.write
internal interface FlagConfigStorage {
fun getFlagConfigs(): List
fun putFlagConfigs(flagConfigs: List)
}
internal class InMemoryFlagConfigStorage : FlagConfigStorage {
private val flagConfigs = mutableListOf()
private val flagConfigsLock = ReentrantReadWriteLock()
override fun getFlagConfigs(): List {
return flagConfigsLock.read { flagConfigs.toList() }
}
override fun putFlagConfigs(flagConfigs: List) {
return flagConfigsLock.write {
this.flagConfigs.clear()
this.flagConfigs.addAll(flagConfigs)
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy