13#ifndef __XF_TASK_BASE_H__
14#define __XF_TASK_BASE_H__
40#define XF_TASK_SIGNAL_READY (1UL << 0)
41#define XF_TASK_SIGNAL_TIMEOUT (1UL << 1)
42#define XF_TASK_SIGNAL_EVENT (1UL << 2)
43#define XF_TASK_SIGNAL_RESUME (1UL << 3)
52#if XF_TASK_HUNGER_IS_ENABLE
53#define XF_TASK_FALG_FEEL_HUNGERY (1UL << 0)
133#if XF_TASK_HUNGER_IS_ENABLE
139#if XF_TASK_USER_DATA_IS_ENABLE
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
task 的父对象,保存了 task 的公共属性。
xf_task_manager_t manager
xf_task_time_t suspend_time
const xf_task_vfunc_t * vfunc
虚函数表,不在 base 对象实现,由子对象完成实现。
const xf_task_update_t update
const xf_task_create_t constructor
const xf_task_reset_t reset
const xf_task_exec_t exec
static void task(xf_task_t task)
xf_task_time_t(* xf_task_update_t)(xf_task_t task)
任务更新函数。当任务出于阻塞状态时运行,更新当前任务状态。
void(* xf_task_reset_t)(xf_task_t task)
任务重置函数。当任务执行不如意希望任务能重新执行的时候调用。
void(* xf_task_delete_t)(xf_task_t task)
删除任务函数指针。函数对象的生命周期结尾时调用。
xf_task_t(* xf_task_create_t)(xf_task_manager_t manager, xf_task_func_t func, void *func_arg, uint16_t priority, void *config)
构造任务函数指针,函数对象由它构造。
struct _xf_task_vfunc_t xf_task_vfunc_t
虚函数表,不在 base 对象实现,由子对象完成实现。
xf_err_t xf_task_vfunc_unregister(xf_task_type_t type)
task 注销虚函数注册(一般用不到的函数)。
void xf_task_base_init(xf_task_base_t *task_base, xf_task_manager_t manager, xf_task_type_t type, uint16_t priority, xf_task_func_t func, void *arg)
task 初始化。
xf_err_t xf_task_base_set_state(xf_task_t task, xf_task_state_t state)
task 设置状态。
struct _xf_task_base_t xf_task_base_t
task 的父对象,保存了 task 的公共属性。
const xf_task_vfunc_t * xf_task_get_vfunc(xf_task_type_t type)
task 获取虚函数。
void xf_task_base_reset(xf_task_base_t *task_base)
重置 task base 部分内容
void(* xf_task_exec_t)(xf_task_manager_t manager)
任务执行函数。调度器用于恢复/执行当前任务。
xf_err_t xf_task_vfunc_register(xf_task_type_t type, const xf_task_vfunc_t *vfunc)
task 的虚函数注册。
void xf_task_destructor(xf_task_t task)
任务销毁。回收任务资源
XF_TASK_TIME_TYPE xf_task_time_t
xf_task 时间戳类型。
void(* xf_task_func_t)(xf_task_t task)
任务调用函数原型。
enum _xf_task_type_t xf_task_type_t
任务类型,通过注册表 xf_task_reg.inc 生成相关的内容。
enum _xf_task_state_t xf_task_state_t
任务状态枚举。
void * xf_task_manager_t
任务管理器句柄。