[android-components](../../index.md) / [mozilla.components.service.fretboard](../index.md) / [Fretboard](./index.md)

# Fretboard

`class Fretboard` [(source)](https://github.com/mozilla-mobile/android-components/blob/master/components/service/fretboard/src/main/java/mozilla/components/service/fretboard/Fretboard.kt#L18)

Entry point of the library

### Constructors

| Name | Summary |
|---|---|
| [&lt;init&gt;](-init-.md) | `Fretboard(source: `[`ExperimentSource`](../-experiment-source/index.md)`, storage: `[`ExperimentStorage`](../-experiment-storage/index.md)`, valuesProvider: `[`ValuesProvider`](../-values-provider/index.md)` = ValuesProvider())`<br>Entry point of the library |

### Properties

| Name | Summary |
|---|---|
| [experiments](experiments.md) | `val experiments: `[`List`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)`<`[`Experiment`](../-experiment/index.md)`>`<br>Provides the list of experiments (active or not) |

### Functions

| Name | Summary |
|---|---|
| [clearAllOverrides](clear-all-overrides.md) | `fun clearAllOverrides(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Clears all experiment overrides asynchronously |
| [clearAllOverridesNow](clear-all-overrides-now.md) | `fun clearAllOverridesNow(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Clears all experiment overrides as a blocking operation |
| [clearOverride](clear-override.md) | `fun clearOverride(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`, descriptor: `[`ExperimentDescriptor`](../-experiment-descriptor/index.md)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Clears an override for a specified experiment asynchronously |
| [clearOverrideNow](clear-override-now.md) | `fun clearOverrideNow(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`, descriptor: `[`ExperimentDescriptor`](../-experiment-descriptor/index.md)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Clears an override for a specified experiment as a blocking operation |
| [getActiveExperiments](get-active-experiments.md) | `fun getActiveExperiments(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`): `[`List`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)`<`[`Experiment`](../-experiment/index.md)`>`<br>Provides the list of active experiments |
| [getExperiment](get-experiment.md) | `fun getExperiment(descriptor: `[`ExperimentDescriptor`](../-experiment-descriptor/index.md)`): `[`Experiment`](../-experiment/index.md)`?`<br>Gets the metadata associated with the specified experiment, even if the user is not part of it |
| [getExperimentsMap](get-experiments-map.md) | `fun getExperimentsMap(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`): `[`Map`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html)`<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`>`<br>Provides a map of active/inactive experiments |
| [getUserBucket](get-user-bucket.md) | `fun getUserBucket(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`): `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)<br>Returns the user bucket number used to determine whether the user is in or out of the experiment |
| [isInExperiment](is-in-experiment.md) | `fun isInExperiment(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`, descriptor: `[`ExperimentDescriptor`](../-experiment-descriptor/index.md)`): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)<br>Checks if the user is part of the specified experiment |
| [loadExperiments](load-experiments.md) | `fun loadExperiments(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Loads experiments from local storage |
| [setOverride](set-override.md) | `fun setOverride(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`, descriptor: `[`ExperimentDescriptor`](../-experiment-descriptor/index.md)`, active: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Overrides a specified experiment asynchronously |
| [setOverrideNow](set-override-now.md) | `fun setOverrideNow(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`, descriptor: `[`ExperimentDescriptor`](../-experiment-descriptor/index.md)`, active: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Overrides a specified experiment as a blocking operation |
| [updateExperiments](update-experiments.md) | `fun updateExperiments(): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)<br>Requests new experiments from the server and saves them to local storage |
| [withExperiment](with-experiment.md) | `fun withExperiment(context: `[`Context`](https://developer.android.com/reference/android/content/Context.html)`, descriptor: `[`ExperimentDescriptor`](../-experiment-descriptor/index.md)`, block: (`[`Experiment`](../-experiment/index.md)`) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>Performs an action if the user is part of the specified experiment |
