# DailyTrigger

<a id="dailytrigger"></a>

# DailyTrigger

```cpp
#include <icy/sched/trigger.h>

struct DailyTrigger
```

[Defined in src/sched/include/icy/sched/trigger.h:167](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/trigger.h#L167)

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

[Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) that fires once per day at a configured time, with optional day-of-week exclusions.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`timeOfDay`](#timeofday) | `variable` | Declared here |
| [`daysExcluded`](#daysexcluded) | `variable` | Declared here |
| [`DailyTrigger`](#dailytrigger-1) | `function` | Declared here |
| [`update`](#update-6) | `function` | Declared here |
| [`type`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#type-20) | `variable` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`name`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#name-14) | `variable` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`timesRun`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#timesrun) | `variable` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`createdAt`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#createdat) | `variable` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`scheduleAt`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#scheduleat) | `variable` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`lastRunAt`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#lastrunat) | `variable` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-2) | `function` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`update`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#update-10) | `function` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`remaining`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#remaining-2) | `function` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`timeout`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#timeout-11) | `function` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`expired`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#expired-5) | `function` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`serialize`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#serialize-5) | `function` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`deserialize`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#deserialize-5) | `function` | Inherited from [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) |
| [`~ISerializable`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#iserializable-1) | `function` | Inherited from [`ISerializable`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#iserializable) |
| [`serialize`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#serialize-1) | `function` | Inherited from [`ISerializable`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#iserializable) |
| [`deserialize`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#deserialize-1) | `function` | Inherited from [`ISerializable`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#iserializable) |

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

| Kind | Name | Description |
|------|------|-------------|
| `variable` | [`type`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#type-20)  | The type of this trigger class. |
| `variable` | [`name`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#name-14)  | The display name of this trigger class. |
| `variable` | [`timesRun`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#timesrun)  | The number of times the task has run since creation; |
| `variable` | [`createdAt`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#createdat)  | The time the task was created. |
| `variable` | [`scheduleAt`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#scheduleat)  | The time the task is scheduled to run. |
| `variable` | [`lastRunAt`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#lastrunat)  | The time the task was last run. |
| `function` | [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-2)  |  |
| `function` | [`update`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#update-10) `virtual` | Updates the scheduleAt value to the next scheduled time. |
| `function` | [`remaining`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#remaining-2) `virtual` | Returns the milliseconds remaining until the next scheduled timeout. |
| `function` | [`timeout`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#timeout-11) `virtual` | Returns true if the task is ready to be run, false otherwise. |
| `function` | [`expired`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#expired-5) `virtual` | Returns true if the task is expired and should be destroyed. Returns false by default. |
| `function` | [`serialize`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#serialize-5) `virtual` `override` | Serializes timing state (type, name, createdAt, scheduleAt, lastRunAt, timesRun) to `root`. |
| `function` | [`deserialize`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#deserialize-5) `virtual` `override` | Deserializes timing state from `root`. |

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

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`~ISerializable`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#iserializable-1) `virtual` | Defaulted destructor. |
| `function` | [`serialize`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#serialize-1) `virtual` | Serializes this object's state into `root`. |
| `function` | [`deserialize`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#deserialize-1) `virtual` | Populates this object's state from `root`. |

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`DateTime`](https://auscaster.com/icey/docs/api-reference/icy-DateTime.md#datetime) | [`timeOfDay`](#timeofday)  | This value represents the time of day the task will trigger. The date part of the timestamp is redundant. |
| std::vector< [`DaysOfTheWeek`](https://auscaster.com/icey/docs/api-reference/icy-sched.md#daysoftheweek) > | [`daysExcluded`](#daysexcluded)  | Days of the week can be excluded by adding the appropriate bit flag here. |

---

<a id="timeofday"></a>

### timeOfDay

```cpp
DateTime timeOfDay
```

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

[Defined in src/sched/include/icy/sched/trigger.h:179](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/trigger.h#L179)

This value represents the time of day the task will trigger. The date part of the timestamp is redundant.

---

<a id="daysexcluded"></a>

### daysExcluded

```cpp
std::vector< DaysOfTheWeek > daysExcluded
```

Type: std::vector< [`DaysOfTheWeek`](https://auscaster.com/icey/docs/api-reference/icy-sched.md#daysoftheweek) >

[Defined in src/sched/include/icy/sched/trigger.h:183](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/trigger.h#L183)

Days of the week can be excluded by adding the appropriate bit flag here.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`DailyTrigger`](#dailytrigger-1)  | Constructs the trigger with type "DailyTrigger". |
| `void` | [`update`](#update-6) `virtual` `override` | Computes the next scheduleAt value by advancing to the next non-excluded weekday at the configured timeOfDay. |

---

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

### DailyTrigger

```cpp
DailyTrigger()
```

[Defined in src/sched/include/icy/sched/trigger.h:170](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/trigger.h#L170)

Constructs the trigger with type "DailyTrigger".

---

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

### update

`virtual` `override`

```cpp
virtual void update() override
```

[Defined in src/sched/include/icy/sched/trigger.h:174](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/trigger.h#L174)

Computes the next scheduleAt value by advancing to the next non-excluded weekday at the configured timeOfDay.

#### Reimplements

- [`Trigger::update`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#update-10)
