kzu_task_scheduler.h File Reference

Task scheduler for periodically calling a set of functions. More...

Namespaces

 kanzi
 

Typedefs

typedef kzsError(* KzuTaskFunction) (kzUint deltaTime, void *userData, kzBool *out_done)
 Scheduled task function. More...
 

Functions

KANZI_API kzsError kzuTaskSchedulerCreate (const struct KzcMemoryManager *memoryManager, struct KzuTaskScheduler **out_taskScheduler)
 Create a new task scheduler. More...
 
KANZI_API kzsError kzuTaskSchedulerDelete (struct KzuTaskScheduler *taskScheduler)
 Delete a task scheduler. More...
 
KANZI_API kzsError kzuTaskSchedulerAddRecurringTask (const struct KzuTaskScheduler *taskScheduler, KzuTaskFunction taskFunction, void *userParameters)
 Add a recurring task to the task scheduler. More...
 
KANZI_API kzsError kzuTaskSchedulerRemoveTask (const struct KzuTaskScheduler *taskScheduler, KzuTaskFunction taskFunction, const void *userParameters)
 Remove a task from the task scheduler. More...
 
kzsError kzuTaskSchedulerExecuteAllTasks (struct KzuTaskScheduler *taskScheduler, kzUint deltaTime, kanzi::Node *rootNode)
 Execute all tasks in the task scheduler. More...
 

Detailed Description

Task scheduler for periodically calling a set of functions.

When the application framework is used, Kanzi will automatically create a task scheduler accessible with ::kzaApplicationGetTaskScheduler(). That is used for e.g. playing animations.

Copyright 2008-2017 by Rightware. All rights reserved.

Typedef Documentation

typedef kzsError(* KzuTaskFunction) (kzUint deltaTime, void *userData, kzBool *out_done)

Scheduled task function.

Parameters
deltaTimeElapsed time in milliseconds.
userDataArbitrary pointer previously passed to kzuTaskSchedulerAddRecurringTask().
out_doneSet this to KZ_TRUE to remove the task from the scheduler or KZ_FALSE to keep the the task in execution.
Returns
The function should return KZS_SUCCESS on success. If it returns an error, execution of tasks is aborted and the error is passed forward.

Function Documentation

KANZI_API kzsError kzuTaskSchedulerCreate ( const struct KzcMemoryManager memoryManager,
struct KzuTaskScheduler **  out_taskScheduler 
)

Create a new task scheduler.

KANZI_API kzsError kzuTaskSchedulerDelete ( struct KzuTaskScheduler taskScheduler)

Delete a task scheduler.

KANZI_API kzsError kzuTaskSchedulerAddRecurringTask ( const struct KzuTaskScheduler taskScheduler,
KzuTaskFunction  taskFunction,
void *  userParameters 
)

Add a recurring task to the task scheduler.

Parameters
taskSchedulerThe task scheduler to use.
taskFunctionThe function to call periodically.
userParametersArbitrary pointer that will be passed to the task function.
Returns
KZS_SUCCESS on success.
KANZI_API kzsError kzuTaskSchedulerRemoveTask ( const struct KzuTaskScheduler taskScheduler,
KzuTaskFunction  taskFunction,
const void *  userParameters 
)

Remove a task from the task scheduler.

Parameters
taskSchedulerThe task scheduler to use.
taskFunctionThe function to remove from execution.
userParametersThe pointer that was specified when the task was added to the task scheduler.
Returns
KZU_ERROR_SCHEDULER_TASK_NOT_FOUND if the function with the userParameters was not found. KZS_SUCCESS on success.
kzsError kzuTaskSchedulerExecuteAllTasks ( struct KzuTaskScheduler taskScheduler,
kzUint  deltaTime,
kanzi::Node rootNode 
)

Execute all tasks in the task scheduler.

Parameters
taskSchedulerThe task scheduler to use.
deltaTimeUsually this should be milliseconds elapsed since the last execution, but other values can also be used to e.g. control animations.
rootNodeThe root node of the scheduler. Normally this should be the ::KzuScreen of the application. This is used to disable animations that are attached to nodes under other root nodes, such as nodes which do not belong to any scene.
Returns
KZS_SUCCESS on success. Any error returned by a task function.