# TimedToken

<a id="timedtoken"></a>

# TimedToken

```cpp
#include <icy/timeout.h>

class TimedToken
```

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

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

Token that expires after the specified duration.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`TimedToken`](#timedtoken-1) | `function` | Declared here |
| [`TimedToken`](#timedtoken-2) | `function` | Declared here |
| [`id`](#id-4) | `function` | Declared here |
| [`operator==`](#operator-102) | `function` | Declared here |
| [`operator==`](#operator-103) | `function` | Declared here |
| [`_id`](#_id-2) | `variable` | Declared here |
| [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-2) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-3) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-4) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`~Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-5) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`running`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#running-2) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`start`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#start-11) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`stop`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#stop-4) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`reset`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#reset-8) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`remaining`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#remaining) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`expired`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#expired) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`setDelay`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#setdelay) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`delay`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#delay) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#operator-104) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#operator-105) | `function` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`_startAt`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#_startat) | `variable` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`_delay`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#_delay) | `variable` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |
| [`_running`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#_running-1) | `variable` | Inherited from [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) |

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

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-2)  | Constructs a [Timeout](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-1) with the given delay. |
| `function` | [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-3)  | Copy constructor. |
| `function` | [`Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-4) `noexcept` | Defaulted constructor. |
| `function` | [`~Timeout`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#timeout-5)  |  |
| `function` | [`running`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#running-2) `const` | Returns true if the timer is currently running. |
| `function` | [`start`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#start-11)  | Starts (or restarts) the timer, recording the current time as the start point. |
| `function` | [`stop`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#stop-4)  | Stops the timer without resetting it. [expired()](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#expired) will return false after this call. |
| `function` | [`reset`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#reset-8)  | Restarts the timer from now, equivalent to calling [start()](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#start-11). |
| `function` | [`remaining`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#remaining) `const` | Returns the number of milliseconds remaining before expiry. Returns 0 if already expired, or the full delay if not running. |
| `function` | [`expired`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#expired) `const` | Returns true if the timer is running and the delay has fully elapsed. |
| `function` | [`setDelay`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#setdelay) `inline` | Sets the expiry delay without restarting the timer. |
| `function` | [`delay`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#delay) `const` `inline` | Returns the configured delay in milliseconds. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#operator-104)  | Copy assignment operator. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#operator-105) `noexcept` | Defaulted assignment operator. |
| `variable` | [`_startAt`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#_startat)  |  |
| `variable` | [`_delay`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#_delay)  |  |
| `variable` | [`_running`](https://auscaster.com/icey/docs/api-reference/icy-Timeout.md#_running-1)  |  |

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`TimedToken`](#timedtoken-1) `explicit` | Constructs a [TimedToken](#timedtoken) with a randomly generated 32-character ID, started immediately with the given duration. |
|  | [`TimedToken`](#timedtoken-2) `explicit` | Constructs a [TimedToken](#timedtoken) with an explicit ID, started immediately. |
| `std::string` | [`id`](#id-4) `const` `inline` | Returns the token's identifier string. |
| `bool` | [`operator==`](#operator-102) `const` `inline` | Compares two tokens by ID. |
| `bool` | [`operator==`](#operator-103) `const` `inline` | Compares this token's ID against a string. |

---

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

### TimedToken

`explicit`

```cpp
explicit TimedToken(long duration = 1000)
```

[Defined in src/base/include/icy/timeout.h:101](https://github.com/auscaster/icey/blob/main/src/base/include/icy/timeout.h#L101)

Constructs a [TimedToken](#timedtoken) with a randomly generated 32-character ID, started immediately with the given duration.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `duration` | `long` | Lifetime in milliseconds (default: 1000). |

---

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

### TimedToken

`explicit`

```cpp
explicit TimedToken(const std::string & id, long duration = 1000)
```

[Defined in src/base/include/icy/timeout.h:106](https://github.com/auscaster/icey/blob/main/src/base/include/icy/timeout.h#L106)

Constructs a [TimedToken](#timedtoken) with an explicit ID, started immediately.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `id` | `const std::string &` | Token identifier. |
| `duration` | `long` | Lifetime in milliseconds (default: 1000). |

---

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

### id

`const` `inline`

```cpp
inline std::string id() const
```

[Defined in src/base/include/icy/timeout.h:110](https://github.com/auscaster/icey/blob/main/src/base/include/icy/timeout.h#L110)

Returns the token's identifier string. 
#### Returns
Token ID.

---

<a id="operator-102"></a>

### operator==

`const` `inline`

```cpp
inline bool operator==(const TimedToken & r) const
```

[Defined in src/base/include/icy/timeout.h:113](https://github.com/auscaster/icey/blob/main/src/base/include/icy/timeout.h#L113)

Compares two tokens by ID.

---

<a id="operator-103"></a>

### operator==

`const` `inline`

```cpp
inline bool operator==(std::string_view r) const
```

[Defined in src/base/include/icy/timeout.h:116](https://github.com/auscaster/icey/blob/main/src/base/include/icy/timeout.h#L116)

Compares this token's ID against a string.

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| `std::string` | [`_id`](#_id-2)  |  |

---

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

### _id

```cpp
std::string _id
```

[Defined in src/base/include/icy/timeout.h:119](https://github.com/auscaster/icey/blob/main/src/base/include/icy/timeout.h#L119)
