XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_task_base.h
浏览该文件的文档.
1
13#ifndef __XF_TASK_BASE_H__
14#define __XF_TASK_BASE_H__
15
16/* ==================== [Includes] ========================================== */
17
18#include "xf_task_kernel.h"
19
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/* ==================== [Defines] =========================================== */
34
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)
54#endif
55
56/* ==================== [Typedefs] ========================================== */
57
68typedef xf_task_t (*xf_task_create_t)(xf_task_manager_t manager, xf_task_func_t func, void *func_arg, uint16_t priority,
69 void *config);
70
77
84
92
98typedef void(*xf_task_exec_t)(xf_task_manager_t manager);
99
109
144
145/* ==================== [Global Prototypes] ================================= */
146
158
168
176
187
199 uint16_t priority, xf_task_func_t func, void *arg);
200
206void xf_task_base_reset(xf_task_base_t *task_base);
207
214
215/* ==================== [Macros] ============================================ */
216
217#ifdef __cplusplus
218} /* extern "C" */
219#endif
220
226#endif // __XF_TASK_BASE_H__
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
task 的父对象,保存了 task 的公共属性。
xf_task_time_t wake_up
xf_task_manager_t manager
uint32_t hunger_time
xf_task_time_t suspend_time
const xf_task_vfunc_t * vfunc
xf_list_t hunger_node
xf_task_func_t func
虚函数表,不在 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
双向链表结构体.
Definition xf_list.h:64
static void task(xf_task_t task)
Definition xf_main.c:45
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 时间戳类型。
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
任务管理器句柄。
void * xf_task_t
任务句柄。