# sched

<a id="sched"></a>

# sched

Deferred and periodic job scheduling primitives.

## Classes

| Name | Description |
|------|-------------|
| [`Scheduler`](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) | The [Scheduler](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) manages and runs tasks that need to be executed at specific times. |
| [`Task`](https://auscaster.com/icey/docs/api-reference/icy-sched-Task.md#task-5) | Scheduled task with an attached trigger and scheduler association. |
| [`TaskFactory`](https://auscaster.com/icey/docs/api-reference/icy-sched-TaskFactory.md#taskfactory) | The [TaskFactory](https://auscaster.com/icey/docs/api-reference/icy-sched-TaskFactory.md#taskfactory) can dynamically instantiate registered [sched::Task](https://auscaster.com/icey/docs/api-reference/icy-sched-Task.md#task-5) and [sched::Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) classes from named strings. |
| [`DailyTrigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-DailyTrigger.md#dailytrigger) | [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. |
| [`IntervalTrigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-IntervalTrigger.md#intervaltrigger) | [Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) that fires repeatedly at a fixed time interval. |
| [`OnceOnlyTrigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-OnceOnlyTrigger.md#onceonlytrigger) | [Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) that fires exactly once at the scheduled time and then expires. |
| [`Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) | Base class for scheduled task triggers that determine when a task should run. |

## Enumerations

| Name | Description |
|------|-------------|
| [`DaysOfTheWeek`](#daysoftheweek)  | Days of the week. |
| [`MonthOfTheYeay`](#monthoftheyeay)  | Months of the year. |

---

<a id="daysoftheweek"></a>

### DaysOfTheWeek

```cpp
enum DaysOfTheWeek
```

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

Days of the week.

| Value | Description |
|-------|-------------|
| `Sunday` |  |
| `Monday` |  |
| `Tuesday` |  |
| `Wednesday` |  |
| `Thursday` |  |
| `Friday` |  |
| `Saturday` |  |

---

<a id="monthoftheyeay"></a>

### MonthOfTheYeay

```cpp
enum MonthOfTheYeay
```

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

Months of the year.

| Value | Description |
|-------|-------------|
| `January` |  |
| `February` |  |
| `March` |  |
| `April` |  |
| `May` |  |
| `June` |  |
| `July` |  |
| `August` |  |
| `September` |  |
| `October` |  |
| `November` |  |
| `December` |  |
## Typedefs

| Return | Name | Description |
|--------|------|-------------|
| std::vector< [`sched::Task`](https://auscaster.com/icey/docs/api-reference/icy-sched-Task.md#task-5) * > | [`TaskList`](#tasklist)  | Ordered list of task pointers used by the scheduler. |

---

<a id="tasklist"></a>

### TaskList

```cpp
using TaskList = std::vector< sched::Task * >
```

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

[Defined in src/sched/include/icy/sched/task.h:121](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/task.h#L121)

Ordered list of task pointers used by the scheduler.

## Functions

| Return | Name | Description |
|--------|------|-------------|
| std::unique_ptr< [`sched::Task`](https://auscaster.com/icey/docs/api-reference/icy-sched-Task.md#task-5) > | [`instantiateTask`](#instantiatetask)  | Instantiate a registered [Task](https://auscaster.com/icey/docs/api-reference/icy-sched-Task.md#task-5) subtype using its default constructor. |
| std::unique_ptr< [`sched::Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) > | [`instantiateTrigger`](#instantiatetrigger)  | Instantiate a registered [Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) subtype using its default constructor. |

---

<a id="instantiatetask"></a>

### instantiateTask

```cpp
template<typename T> std::unique_ptr< sched::Task > instantiateTask()
```

[Defined in src/sched/include/icy/sched/taskfactory.h:33](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/taskfactory.h#L33)

Instantiate a registered [Task](https://auscaster.com/icey/docs/api-reference/icy-sched-Task.md#task-5) subtype using its default constructor.

---

<a id="instantiatetrigger"></a>

### instantiateTrigger

```cpp
template<typename T> std::unique_ptr< sched::Trigger > instantiateTrigger()
```

[Defined in src/sched/include/icy/sched/taskfactory.h:40](https://github.com/auscaster/icey/blob/main/src/sched/include/icy/sched/taskfactory.h#L40)

Instantiate a registered [Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) subtype using its default constructor.
