# Configuration

<a id="configuration-5"></a>

# Configuration

```cpp
#include <icy/json/configuration.h>

class Configuration
```

[Defined in src/json/include/icy/json/configuration.h:28](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L28)

> **Inherits:** [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration)

JSON configuration file

See base [Configuration](#configuration-5) for all accessors

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`root`](#root) | `variable` | Declared here |
| [`Configuration`](#configuration-6) | `function` | Declared here |
| [`~Configuration`](#configuration-7) | `function` | Declared here |
| [`load`](#load) | `function` | Declared here |
| [`load`](#load-1) | `function` | Declared here |
| [`save`](#save) | `function` | Declared here |
| [`remove`](#remove-4) | `function` | Declared here |
| [`removeAll`](#removeall) | `function` | Declared here |
| [`replace`](#replace-2) | `function` | Declared here |
| [`keys`](#keys) | `function` | Declared here |
| [`print`](#print-10) | `function` | Declared here |
| [`path`](#path-2) | `function` | Declared here |
| [`loaded`](#loaded) | `function` | Declared here |
| [`_loaded`](#_loaded) | `variable` | Declared here |
| [`_path`](#_path-4) | `variable` | Declared here |
| [`_mutex`](#_mutex-16) | `variable` | Declared here |
| [`getRaw`](#getraw-1) | `function` | Declared here |
| [`setRaw`](#setraw-1) | `function` | Declared here |
| [`PropertyChanged`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#propertychanged) | `variable` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-1) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`~Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-2) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`exists`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#exists) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getstring) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getstring-1) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getRawString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getrawstring) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getRawString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getrawstring-1) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getint) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getint-1) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getLargeInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getlargeint) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getLargeInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getlargeint-1) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getDouble`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getdouble) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getDouble`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getdouble-1) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getBool`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getbool) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getBool`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getbool-1) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`setString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setstring) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`setInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setint) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`setLargeInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setlargeint) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`setDouble`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setdouble) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`setBool`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setbool) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`getRaw`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getraw) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`setRaw`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setraw) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-3) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#operator-9) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-4) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#operator-10) | `function` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |
| [`_mutex`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#_mutex-1) | `variable` | Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration) |

## Inherited from [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration)

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`PropertyChanged`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#propertychanged)  | The Key and Value of the changed configuration property. |
| `function` | [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-1)  | Creates the [Configuration](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration). |
| `function` | [`~Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-2) `virtual` | Destroys the [Configuration](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration). |
| `function` | [`exists`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#exists) `const` | Returns true if the property with the given key exists. |
| `function` | [`getString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getstring) `const` | Returns the string value of the property with the given name. Throws a NotFoundException if the key does not exist. |
| `function` | [`getString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getstring-1) `const` | If a property with the given key exists, returns the property's string value, otherwise returns the given default value. |
| `function` | [`getRawString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getrawstring) `const` | Returns the raw string value of the property with the given name. Throws a NotFoundException if the key does not exist. References to other properties are not expanded. |
| `function` | [`getRawString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getrawstring-1) `const` | If a property with the given key exists, returns the property's raw string value, otherwise returns the given default value. References to other properties are not expanded. |
| `function` | [`getInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getint) `const` | Returns the int value of the property with the given name. Throws a NotFoundException if the key does not exist. Throws a SyntaxException if the property can not be converted to an int. Numbers starting with 0x are treated as hexadecimal. |
| `function` | [`getInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getint-1) `const` | If a property with the given key exists, returns the property's int value, otherwise returns the given default value. Throws a SyntaxException if the property can not be converted to an int. Numbers starting with 0x are treated as hexadecimal. |
| `function` | [`getLargeInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getlargeint) `const` | Returns the int value of the property with the given name. Throws a NotFoundException if the key does not exist. Throws a SyntaxException if the property can not be converted to an int. Numbers starting with 0x are treated as hexadecimal. |
| `function` | [`getLargeInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getlargeint-1) `const` | If a property with the given key exists, returns the property's int value, otherwise returns the given default value. Throws a SyntaxException if the property can not be converted to an int. Numbers starting with 0x are treated as hexadecimal. |
| `function` | [`getDouble`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getdouble) `const` | Returns the double value of the property with the given name. Throws a NotFoundException if the key does not exist. Throws a SyntaxException if the property can not be converted to a double. |
| `function` | [`getDouble`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getdouble-1) `const` | If a property with the given key exists, returns the property's double value, otherwise returns the given default value. Throws a SyntaxException if the property can not be converted to an double. |
| `function` | [`getBool`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getbool) `const` | Returns the double value of the property with the given name. Throws a NotFoundException if the key does not exist. Throws a SyntaxException if the property can not be converted to a double. |
| `function` | [`getBool`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getbool-1) `const` | If a property with the given key exists, returns the property's bool value, otherwise returns the given default value. Throws a SyntaxException if the property can not be converted to a boolean. The following string values can be converted into a boolean: |
| `function` | [`setString`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setstring)  | Sets the property with the given key to the given value. An already existing value for the key is overwritten. |
| `function` | [`setInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setint)  | Sets the property with the given key to the given value. An already existing value for the key is overwritten. |
| `function` | [`setLargeInt`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setlargeint)  | Sets the property with the given key to the given value. An already existing value for the key is overwritten. |
| `function` | [`setDouble`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setdouble)  | Sets the property with the given key to the given value. An already existing value for the key is overwritten. |
| `function` | [`setBool`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setbool)  | Sets the property with the given key to the given value. An already existing value for the key is overwritten. |
| `function` | [`getRaw`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getraw) `virtual` `const` | If the property with the given key exists, stores the property's value in value and returns true. Otherwise, returns false. |
| `function` | [`setRaw`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setraw) `virtual` | Sets the property with the given key to the given value. An already existing value for the key is overwritten. |
| `function` | [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-3)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#operator-9)  | Deleted assignment operator. |
| `function` | [`Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-4)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#operator-10)  | Deleted assignment operator. |
| `variable` | [`_mutex`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#_mutex-1)  |  |

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`json::Value`](https://auscaster.com/icey/docs/api-reference/icy-json.md#value) | [`root`](#root)  |  |

---

<a id="root"></a>

### root

```cpp
json::Value root
```

Type: [`json::Value`](https://auscaster.com/icey/docs/api-reference/icy-json.md#value)

[Defined in src/json/include/icy/json/configuration.h:80](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L80)

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`Configuration`](#configuration-6)  |  |
|  | [`~Configuration`](#configuration-7) `virtual` | Destroys the [Configuration](#configuration-5). |
| `void` | [`load`](#load) `virtual` | Sets the file path and loads the configuration. |
| `void` | [`load`](#load-1) `virtual` | Reloads the configuration from the previously set path. Silently ignores parse errors (e.g. empty file). |
| `void` | [`save`](#save) `virtual` | Writes the current JSON root to the file at the stored path. |
| `bool` | [`remove`](#remove-4) `virtual` | Removes the top-level key `key` from the JSON root. |
| `void` | [`removeAll`](#removeall) `virtual` | Removes all top-level keys whose names contain `baseKey` as a substring. |
| `void` | [`replace`](#replace-2) `virtual` | Performs a global string substitution on the serialized JSON, replacing all occurrences of `from` with `to`, then re-parses. |
| `void` | [`keys`](#keys) `virtual` | Populates `keys` with all top-level key names containing `baseKey` as a substring. |
| `void` | [`print`](#print-10) `virtual` | Writes the pretty-printed JSON to `ost` with 4-space indentation. |
| `std::string` | [`path`](#path-2) `virtual` | Returns the file path that was passed to [load()](#load). |
| `bool` | [`loaded`](#loaded) `virtual` | Returns true if [load()](#load) has been called at least once. |

---

<a id="configuration-6"></a>

### Configuration

```cpp
Configuration()
```

[Defined in src/json/include/icy/json/configuration.h:31](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L31)

---

<a id="configuration-7"></a>

### ~Configuration

`virtual`

```cpp
virtual ~Configuration()
```

[Defined in src/json/include/icy/json/configuration.h:32](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L32)

Destroys the [Configuration](#configuration-5).

#### Reimplements

- [`Configuration::~Configuration`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#configuration-2)

---

<a id="load"></a>

### load

`virtual`

```cpp
virtual void load(const std::string & path, bool create = false)
```

[Defined in src/json/include/icy/json/configuration.h:38](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L38)

Sets the file path and loads the configuration.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `path` | `const std::string &` | Absolute or relative path to the JSON file. |
| `create` | `bool` | Reserved for future use (currently unused). |

#### Exceptions

| Exception | Description |
|-----------|-------------|
| `std::runtime_error` | if the path is empty. |

---

<a id="load-1"></a>

### load

`virtual`

```cpp
virtual void load(bool create = false)
```

[Defined in src/json/include/icy/json/configuration.h:44](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L44)

Reloads the configuration from the previously set path. Silently ignores parse errors (e.g. empty file).

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `create` | `bool` | Reserved for future use (currently unused). |

#### Exceptions

| Exception | Description |
|-----------|-------------|
| `std::runtime_error` | if the path has not been set. |

---

<a id="save"></a>

### save

`virtual`

```cpp
virtual void save()
```

[Defined in src/json/include/icy/json/configuration.h:48](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L48)

Writes the current JSON root to the file at the stored path.

#### Exceptions

| Exception | Description |
|-----------|-------------|
| `std::runtime_error` | if the path is empty or the file cannot be written. |

---

<a id="remove-4"></a>

### remove

`virtual`

```cpp
virtual bool remove(const std::string & key)
```

[Defined in src/json/include/icy/json/configuration.h:53](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L53)

Removes the top-level key `key` from the JSON root. 
#### Returns
true if the key existed and was removed.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `key` | `const std::string &` | Key to remove. |

---

<a id="removeall"></a>

### removeAll

`virtual`

```cpp
virtual void removeAll(const std::string & baseKey)
```

[Defined in src/json/include/icy/json/configuration.h:57](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L57)

Removes all top-level keys whose names contain `baseKey` as a substring.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `baseKey` | `const std::string &` | Substring to match against key names. |

---

<a id="replace-2"></a>

### replace

`virtual`

```cpp
virtual void replace(const std::string & from, const std::string & to)
```

[Defined in src/json/include/icy/json/configuration.h:63](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L63)

Performs a global string substitution on the serialized JSON, replacing all occurrences of `from` with `to`, then re-parses.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `from` | `const std::string &` | Substring to find. |
| `to` | `const std::string &` | Replacement string. |

---

<a id="keys"></a>

### keys

`virtual`

```cpp
virtual void keys(std::vector< std::string > & keys, const std::string & baseKey = "")
```

[Defined in src/json/include/icy/json/configuration.h:68](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L68)

Populates `keys` with all top-level key names containing `baseKey` as a substring.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `keys` | `std::vector< std::string > &` | Output vector to append matching key names to. |
| `baseKey` | `const std::string &` | Filter substring; empty string matches all keys. |

---

<a id="print-10"></a>

### print

`virtual`

```cpp
virtual void print(std::ostream & ost)
```

[Defined in src/json/include/icy/json/configuration.h:72](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L72)

Writes the pretty-printed JSON to `ost` with 4-space indentation.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `ost` | `std::ostream &` | Output stream. |

---

<a id="path-2"></a>

### path

`virtual`

```cpp
virtual std::string path()
```

[Defined in src/json/include/icy/json/configuration.h:75](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L75)

Returns the file path that was passed to [load()](#load).

---

<a id="loaded"></a>

### loaded

`virtual`

```cpp
virtual bool loaded()
```

[Defined in src/json/include/icy/json/configuration.h:78](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L78)

Returns true if [load()](#load) has been called at least once.

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| `bool` | [`_loaded`](#_loaded)  |  |
| `std::string` | [`_path`](#_path-4)  |  |
| `std::mutex` | [`_mutex`](#_mutex-16)  |  |

---

<a id="_loaded"></a>

### _loaded

```cpp
bool _loaded
```

[Defined in src/json/include/icy/json/configuration.h:94](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L94)

---

<a id="_path-4"></a>

### _path

```cpp
std::string _path
```

[Defined in src/json/include/icy/json/configuration.h:95](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L95)

---

<a id="_mutex-16"></a>

### _mutex

```cpp
std::mutex _mutex
```

[Defined in src/json/include/icy/json/configuration.h:96](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L96)

## Protected Methods

| Return | Name | Description |
|--------|------|-------------|
| `bool` | [`getRaw`](#getraw-1) `virtual` `const` `override` | Retrieves the string value for `key` from the JSON root. |
| `void` | [`setRaw`](#setraw-1) `virtual` `override` | Stores `value` under `key` in the JSON root and emits PropertyChanged. |

---

<a id="getraw-1"></a>

### getRaw

`virtual` `const` `override`

```cpp
virtual bool getRaw(const std::string & key, std::string & value) const override
```

[Defined in src/json/include/icy/json/configuration.h:87](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L87)

Retrieves the string value for `key` from the JSON root. 
#### Returns
true if the key was found, false otherwise.

#### Reimplements

- [`Configuration::getRaw`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#getraw)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `key` | `const std::string &` | Top-level JSON key. |
| `value` | `std::string &` | Set to the string value if the key exists. |

---

<a id="setraw-1"></a>

### setRaw

`virtual` `override`

```cpp
virtual void setRaw(const std::string & key, const std::string & value) override
```

[Defined in src/json/include/icy/json/configuration.h:92](https://github.com/auscaster/icey/blob/main/src/json/include/icy/json/configuration.h#L92)

Stores `value` under `key` in the JSON root and emits PropertyChanged.

#### Reimplements

- [`Configuration::setRaw`](https://auscaster.com/icey/docs/api-reference/icy-Configuration.md#setraw)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `key` | `const std::string &` | Top-level JSON key. |
| `value` | `const std::string &` | String value to store. |
