26 lines
682 B
Kotlin
26 lines
682 B
Kotlin
package co.electriccoin.zcash.configuration.api
|
|
|
|
import co.electriccoin.zcash.configuration.model.map.Configuration
|
|
import kotlinx.coroutines.flow.Flow
|
|
|
|
/**
|
|
* Provides a remote config implementation.
|
|
*/
|
|
interface ConfigurationProvider {
|
|
|
|
/**
|
|
* @return The configuration if it has been loaded already. If not loaded, returns an empty configuration.
|
|
*/
|
|
fun peekConfiguration(): Configuration
|
|
|
|
/**
|
|
* @return A flow that provides snapshots of configuration updates.
|
|
*/
|
|
fun getConfigurationFlow(): Flow<Configuration>
|
|
|
|
/**
|
|
* Signals to the configuration provider that now might be a good time to refresh.
|
|
*/
|
|
fun hintToRefresh()
|
|
}
|