# Task

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

# Task

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

class Task
```

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

> **Inherits:** [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task), [`ISerializable`](https://auscaster.com/icey/docs/api-reference/icy-json-ISerializable.md#iserializable)

Scheduled task with an attached trigger and scheduler association.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`Scheduler`](#scheduler-3) | `friend` | Declared here |
| [`Task`](#task-6) | `function` | Declared here |
| [`Task`](#task-7) | `function` | Declared here |
| [`serialize`](#serialize-4) | `function` | Declared here |
| [`deserialize`](#deserialize-4) | `function` | Declared here |
| [`createTrigger`](#createtrigger) | `function` | Declared here |
| [`setTrigger`](#settrigger) | `function` | Declared here |
| [`trigger`](#trigger) | `function` | Declared here |
| [`scheduler`](#scheduler-4) | `function` | Declared here |
| [`remaining`](#remaining-1) | `function` | Declared here |
| [`type`](#type-19) | `function` | Declared here |
| [`name`](#name-13) | `function` | Declared here |
| [`setName`](#setname-1) | `function` | Declared here |
| [`~Task`](#task-8) | `function` | Declared here |
| [`_type`](#_type-2) | `variable` | Declared here |
| [`_name`](#_name-3) | `variable` | Declared here |
| [`_scheduler`](#_scheduler) | `variable` | Declared here |
| [`_trigger`](#_trigger) | `variable` | Declared here |
| [`_mutex`](#_mutex-21) | `variable` | Declared here |
| [`beforeRun`](#beforerun) | `function` | Declared here |
| [`run`](#run-14) | `function` | Declared here |
| [`afterRun`](#afterrun) | `function` | Declared here |
| [`TaskRunner`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#taskrunner) | `friend` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-1) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`destroy`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#destroy-2) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`destroyed`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#destroyed) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`repeating`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#repeating-2) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`id`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#id-2) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`~Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-2) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-3) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#operator-96) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-4) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#operator-97) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`_id`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#_id-1) | `variable` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`_repeating`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#_repeating) | `variable` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`_destroyed`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#_destroyed) | `variable` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`run`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#run-5) | `function` | Inherited from [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task) |
| [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-1) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`~Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-2) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`run`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#run-11) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`cancel`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancel-7) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`cancelled`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancelled-3) | `function` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`exit`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#exit) | `variable` | Inherited from [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable) |
| [`~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 [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task)

| Kind | Name | Description |
|------|------|-------------|
| `friend` | [`TaskRunner`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#taskrunner)  | Tasks belong to a [TaskRunner](https://auscaster.com/icey/docs/api-reference/icy-TaskRunner.md#taskrunner-1) instance. |
| `function` | [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-1)  |  |
| `function` | [`destroy`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#destroy-2) `virtual` | Sets the task to destroyed state. |
| `function` | [`destroyed`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#destroyed) `virtual` `const` | Signals that the task should be disposed of. |
| `function` | [`repeating`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#repeating-2) `virtual` `const` | Signals that the task should be called repeatedly by the [TaskRunner](https://auscaster.com/icey/docs/api-reference/icy-TaskRunner.md#taskrunner-1). If this returns false the task will be cancelled. |
| `function` | [`id`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#id-2) `virtual` `const` | Unique task ID. |
| `function` | [`~Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-2) `virtual` |  |
| `function` | [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-3)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#operator-96)  | Deleted assignment operator. |
| `function` | [`Task`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#task-4)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#operator-97)  | Deleted assignment operator. |
| `variable` | [`_id`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#_id-1)  |  |
| `variable` | [`_repeating`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#_repeating)  |  |
| `variable` | [`_destroyed`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#_destroyed)  |  |
| `function` | [`run`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#run-5) `virtual` `override` | Called by the [TaskRunner](https://auscaster.com/icey/docs/api-reference/icy-TaskRunner.md#taskrunner-1) to run the task. Override this method to implement task action. Returning true means the task should be called again, and false will cause the task to be destroyed. The task will similarly be destroyed if [destroy()](https://auscaster.com/icey/docs/api-reference/icy-Task.md#destroy-2) was called during the current task iteration. |

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

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-1) `inline` |  |
| `function` | [`~Runnable`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#runnable-2) `virtual` | Defaulted destructor. |
| `function` | [`run`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#run-11) `virtual` | The run method will be called by the asynchronous context. |
| `function` | [`cancel`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancel-7) `virtual` `inline` | Cancel the current task. The [run()](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#run-11) method should return ASAP. |
| `function` | [`cancelled`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#cancelled-3) `virtual` `const` `inline` | Returns true when the task has been cancelled. |
| `variable` | [`exit`](https://auscaster.com/icey/docs/api-reference/icy-basic-Runnable.md#exit)  |  |

## 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`. |

## Friends

| Name | Description |
|------|-------------|
| [`Scheduler`](#scheduler-3)  |  |

---

<a id="scheduler-3"></a>

### Scheduler

```cpp
friend class Scheduler
```

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

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`Task`](#task-6)  | Constructs a detached task without an associated scheduler. A trigger must be set before scheduling. |
|  | [`Task`](#task-7)  | Constructs a task associated with the given scheduler. |
| `void` | [`serialize`](#serialize-4) `virtual` `override` | Serializes the task to JSON. |
| `void` | [`deserialize`](#deserialize-4) `virtual` `override` | Deserializes the task from JSON. |
| `T *` | [`createTrigger`](#createtrigger) `inline` | Creates a trigger of type T, attaches it to this task, and returns a raw pointer to it. Ownership of the trigger is transferred to this task. |
| `void` | [`setTrigger`](#settrigger)  | Replaces the current trigger with `trigger`. |
| [`sched::Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) & | [`trigger`](#trigger)  | Returns a reference to the associated [sched::Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) or throws an exception. |
| [`Scheduler`](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) & | [`scheduler`](#scheduler-4)  | Returns a reference to the associated [Scheduler](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) or throws an exception. |
| `std::int64_t` | [`remaining`](#remaining-1) `const` | Returns the milliseconds remaining until the next scheduled timeout. An [sched::Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) must be associated or an exception will be thrown. |
| `std::string` | [`type`](#type-19) `const` | Returns the registered type string for this task. |
| `std::string` | [`name`](#name-13) `const` | Returns the human-readable display name of this task. |
| `void` | [`setName`](#setname-1)  | Sets the human-readable display name. |
|  | [`~Task`](#task-8) `virtual` |  |

---

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

### Task

```cpp
Task(const std::string & type = "", const std::string & name = "")
```

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

Constructs a detached task without an associated scheduler. A trigger must be set before scheduling.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `type` | `const std::string &` | Registered type name used by [TaskFactory](https://auscaster.com/icey/docs/api-reference/icy-sched-TaskFactory.md#taskfactory). |
| `name` | `const std::string &` | Human-readable display name. |

---

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

### Task

```cpp
Task(Scheduler & scheduler, const std::string & type, const std::string & name = "")
```

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

Constructs a task associated with the given scheduler.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `scheduler` | [`Scheduler`](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) & | [Scheduler](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) that will own and run this task. |
| `type` | `const std::string &` | Registered type name used by [TaskFactory](https://auscaster.com/icey/docs/api-reference/icy-sched-TaskFactory.md#taskfactory). |
| `name` | `const std::string &` | Human-readable display name. |

---

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

### serialize

`virtual` `override`

```cpp
virtual void serialize(json::Value & root) override
```

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

Serializes the task to JSON.

#### Reimplements

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

---

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

### deserialize

`virtual` `override`

```cpp
virtual void deserialize(json::Value & root) override
```

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

Deserializes the task from JSON.

#### Reimplements

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

---

<a id="createtrigger"></a>

### createTrigger

`inline`

```cpp
template<typename T> inline T * createTrigger()
```

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

Creates a trigger of type T, attaches it to this task, and returns a raw pointer to it. Ownership of the trigger is transferred to this task. 
#### Returns
Raw pointer to the newly created trigger (still owned by this task).

---

<a id="settrigger"></a>

### setTrigger

```cpp
void setTrigger(std::unique_ptr< sched::Trigger > trigger)
```

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

Replaces the current trigger with `trigger`.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `trigger` | std::unique_ptr< [`sched::Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) > | Owning pointer to the new trigger; must not be null before calling. |

---

<a id="trigger"></a>

### trigger

```cpp
sched::Trigger & trigger()
```

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

Returns a reference to the associated [sched::Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) or throws an exception.

---

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

### scheduler

```cpp
Scheduler & scheduler()
```

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

Returns a reference to the associated [Scheduler](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) or throws an exception.

---

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

### remaining

`const`

```cpp
std::int64_t remaining() const
```

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

Returns the milliseconds remaining until the next scheduled timeout. An [sched::Trigger](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) must be associated or an exception will be thrown.

---

<a id="type-19"></a>

### type

`const`

```cpp
std::string type() const
```

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

Returns the registered type string for this task.

---

<a id="name-13"></a>

### name

`const`

```cpp
std::string name() const
```

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

Returns the human-readable display name of this task.

---

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

### setName

```cpp
void setName(const std::string & name)
```

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

Sets the human-readable display name.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `name` | `const std::string &` | New display name. |

---

<a id="task-8"></a>

### ~Task

`virtual`

```cpp
virtual ~Task()
```

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

#### Reimplements

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

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| `std::string` | [`_type`](#_type-2)  |  |
| `std::string` | [`_name`](#_name-3)  |  |
| [`sched::Scheduler`](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) * | [`_scheduler`](#_scheduler)  |  |
| std::unique_ptr< [`sched::Trigger`](https://auscaster.com/icey/docs/api-reference/icy-sched-Trigger.md#trigger-1) > | [`_trigger`](#_trigger)  |  |
| `std::mutex` | [`_mutex`](#_mutex-21)  |  |

---

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

### _type

```cpp
std::string _type
```

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

---

<a id="_name-3"></a>

### _name

```cpp
std::string _name
```

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

---

<a id="_scheduler"></a>

### _scheduler

```cpp
sched::Scheduler * _scheduler
```

Type: [`sched::Scheduler`](https://auscaster.com/icey/docs/api-reference/icy-sched-Scheduler.md#scheduler) *

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

---

<a id="_trigger"></a>

### _trigger

```cpp
std::unique_ptr< sched::Trigger > _trigger
```

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

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

---

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

### _mutex

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

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

## Protected Methods

| Return | Name | Description |
|--------|------|-------------|
| `bool` | [`beforeRun`](#beforerun) `virtual` |  |
| `void` | [`run`](#run-14) `virtual` `override` | Called by the [TaskRunner](https://auscaster.com/icey/docs/api-reference/icy-TaskRunner.md#taskrunner-1) to run the task. Override this method to implement task action. Returning true means the task should be called again, and false will cause the task to be destroyed. The task will similarly be destroyed if [destroy()](https://auscaster.com/icey/docs/api-reference/icy-Task.md#destroy-2) was called during the current task iteration. |
| `bool` | [`afterRun`](#afterrun) `virtual` |  |

---

<a id="beforerun"></a>

### beforeRun

`virtual`

```cpp
virtual bool beforeRun()
```

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

---

<a id="run-14"></a>

### run

`virtual` `override`

```cpp
virtual void run() override
```

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

Called by the [TaskRunner](https://auscaster.com/icey/docs/api-reference/icy-TaskRunner.md#taskrunner-1) to run the task. Override this method to implement task action. Returning true means the task should be called again, and false will cause the task to be destroyed. The task will similarly be destroyed if [destroy()](https://auscaster.com/icey/docs/api-reference/icy-Task.md#destroy-2) was called during the current task iteration.

#### Reimplements

- [`Task::run`](https://auscaster.com/icey/docs/api-reference/icy-Task.md#run-5)

---

<a id="afterrun"></a>

### afterRun

`virtual`

```cpp
virtual bool afterRun()
```

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