Home
Sched module

Task

Scheduled task with an attached trigger and scheduler association.

Task

#include <icy/sched/task.h>
class Task

Defined in src/sched/include/icy/sched/task.h:32

Inherits: Task, ISerializable

Scheduled task with an attached trigger and scheduler association.

List of all members

NameKindOwner
SchedulerfriendDeclared here
TaskfunctionDeclared here
TaskfunctionDeclared here
serializefunctionDeclared here
deserializefunctionDeclared here
createTriggerfunctionDeclared here
setTriggerfunctionDeclared here
triggerfunctionDeclared here
schedulerfunctionDeclared here
remainingfunctionDeclared here
typefunctionDeclared here
namefunctionDeclared here
setNamefunctionDeclared here
~TaskfunctionDeclared here
_typevariableDeclared here
_namevariableDeclared here
_schedulervariableDeclared here
_triggervariableDeclared here
_mutexvariableDeclared here
beforeRunfunctionDeclared here
runfunctionDeclared here
afterRunfunctionDeclared here
TaskRunnerfriendInherited from Task
TaskfunctionInherited from Task
destroyfunctionInherited from Task
destroyedfunctionInherited from Task
repeatingfunctionInherited from Task
idfunctionInherited from Task
~TaskfunctionInherited from Task
TaskfunctionInherited from Task
operator=functionInherited from Task
TaskfunctionInherited from Task
operator=functionInherited from Task
_idvariableInherited from Task
_repeatingvariableInherited from Task
_destroyedvariableInherited from Task
runfunctionInherited from Task
RunnablefunctionInherited from Runnable
~RunnablefunctionInherited from Runnable
runfunctionInherited from Runnable
cancelfunctionInherited from Runnable
cancelledfunctionInherited from Runnable
exitvariableInherited from Runnable
~ISerializablefunctionInherited from ISerializable
serializefunctionInherited from ISerializable
deserializefunctionInherited from ISerializable

Inherited from Task

KindNameDescription
friendTaskRunnerTasks belong to a TaskRunner instance.
functionTask
functiondestroy virtualSets the task to destroyed state.
functiondestroyed virtual constSignals that the task should be disposed of.
functionrepeating virtual constSignals that the task should be called repeatedly by the TaskRunner. If this returns false the task will be cancelled.
functionid virtual constUnique task ID.
function~Task virtual
functionTaskDeleted constructor.
functionoperator=Deleted assignment operator.
functionTaskDeleted constructor.
functionoperator=Deleted assignment operator.
variable_id
variable_repeating
variable_destroyed
functionrun virtual overrideCalled by the TaskRunner 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() was called during the current task iteration.

Inherited from Runnable

KindNameDescription
functionRunnable inline
function~Runnable virtualDefaulted destructor.
functionrun virtualThe run method will be called by the asynchronous context.
functioncancel virtual inlineCancel the current task. The run() method should return ASAP.
functioncancelled virtual const inlineReturns true when the task has been cancelled.
variableexit

Inherited from ISerializable

KindNameDescription
function~ISerializable virtualDefaulted destructor.
functionserialize virtualSerializes this object's state into root.
functiondeserialize virtualPopulates this object's state from root.

Friends

NameDescription
Scheduler

Scheduler

friend class Scheduler

Defined in src/sched/include/icy/sched/task.h:111

Public Methods

ReturnNameDescription
TaskConstructs a detached task without an associated scheduler. A trigger must be set before scheduling.
TaskConstructs a task associated with the given scheduler.
voidserialize virtual overrideSerializes the task to JSON.
voiddeserialize virtual overrideDeserializes the task from JSON.
T *createTrigger inlineCreates 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.
voidsetTriggerReplaces the current trigger with trigger.
sched::Trigger &triggerReturns a reference to the associated sched::Trigger or throws an exception.
Scheduler &schedulerReturns a reference to the associated Scheduler or throws an exception.
std::int64_tremaining constReturns the milliseconds remaining until the next scheduled timeout. An sched::Trigger must be associated or an exception will be thrown.
std::stringtype constReturns the registered type string for this task.
std::stringname constReturns the human-readable display name of this task.
voidsetNameSets the human-readable display name.

Task

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

Defined in src/sched/include/icy/sched/task.h:40

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

Parameters

  • type Registered type name used by TaskFactory.

  • name Human-readable display name.


Task

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

Defined in src/sched/include/icy/sched/task.h:46

Constructs a task associated with the given scheduler.

Parameters

  • scheduler Scheduler that will own and run this task.

  • type Registered type name used by TaskFactory.

  • name Human-readable display name.


serialize

virtual override

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

Defined in src/sched/include/icy/sched/task.h:51

Serializes the task to JSON.

Reimplements

deserialize

virtual override

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

Defined in src/sched/include/icy/sched/task.h:54

Deserializes the task from JSON.

Reimplements

createTrigger

inline

template<typename T> inline T * createTrigger()

Defined in src/sched/include/icy/sched/task.h:61

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.

Parameters

Returns

Raw pointer to the newly created trigger (still owned by this task).


setTrigger

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

Defined in src/sched/include/icy/sched/task.h:71

Replaces the current trigger with trigger.

Parameters

  • trigger Owning pointer to the new trigger; must not be null before calling.

trigger

sched::Trigger & trigger()

Defined in src/sched/include/icy/sched/task.h:75

Returns a reference to the associated sched::Trigger or throws an exception.


scheduler

Scheduler & scheduler()

Defined in src/sched/include/icy/sched/task.h:79

Returns a reference to the associated Scheduler or throws an exception.


remaining

const

std::int64_t remaining() const

Defined in src/sched/include/icy/sched/task.h:85

Returns the milliseconds remaining until the next scheduled timeout. An sched::Trigger must be associated or an exception will be thrown.


type

const

std::string type() const

Defined in src/sched/include/icy/sched/task.h:88

Returns the registered type string for this task.


name

const

std::string name() const

Defined in src/sched/include/icy/sched/task.h:91

Returns the human-readable display name of this task.


setName

void setName(const std::string & name)

Defined in src/sched/include/icy/sched/task.h:95

Sets the human-readable display name.

Parameters

  • name New display name.

Protected Attributes

ReturnNameDescription
std::string_type
std::string_name
sched::Scheduler *_scheduler
std::unique_ptr< sched::Trigger >_trigger
std::mutex_mutex

_type

std::string _type

Defined in src/sched/include/icy/sched/task.h:113


_name

std::string _name

Defined in src/sched/include/icy/sched/task.h:114


_scheduler

sched::Scheduler * _scheduler

Defined in src/sched/include/icy/sched/task.h:115


_trigger

std::unique_ptr< sched::Trigger > _trigger

Defined in src/sched/include/icy/sched/task.h:116


_mutex

std::mutex _mutex

Defined in src/sched/include/icy/sched/task.h:117

Protected Methods

ReturnNameDescription
boolbeforeRun virtual
voidrun virtual overrideCalled by the TaskRunner 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() was called during the current task iteration.
boolafterRun virtual

beforeRun

virtual

virtual bool beforeRun()

Defined in src/sched/include/icy/sched/task.h:100


run

virtual override

virtual void run() override

Defined in src/sched/include/icy/sched/task.h:101

Called by the TaskRunner 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() was called during the current task iteration.

Reimplements

afterRun

virtual

virtual bool afterRun()

Defined in src/sched/include/icy/sched/task.h:102