XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_task_base.h 文件参考

本头文件外界无法调用,manager 基于 base 进行调度。 开放部分在 xf_task_kernel.h . 更多...

#include "xf_task_kernel.h"
xf_task_base.h 的引用(Include)关系图:

浏览源代码.

结构体

struct  _xf_task_vfunc_t
 虚函数表,不在 base 对象实现,由子对象完成实现。 更多...
 
struct  _xf_task_base_t
 task 的父对象,保存了 task 的公共属性。 更多...
 

宏定义

#define XF_TASK_FALG_FEEL_HUNGERY   (1UL << 0)
 外部设置的标志位,内部只会读取不会设置.
 
XF_TASK_SIGNAL

内部传递消息使用,外部无法设置。

#define XF_TASK_SIGNAL_READY   (1UL << 0)
 
#define XF_TASK_SIGNAL_TIMEOUT   (1UL << 1)
 
#define XF_TASK_SIGNAL_EVENT   (1UL << 2)
 
#define XF_TASK_SIGNAL_RESUME   (1UL << 3)
 

类型定义

typedef 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)
 构造任务函数指针,函数对象由它构造。
 
typedef void(* xf_task_delete_t) (xf_task_t task)
 删除任务函数指针。函数对象的生命周期结尾时调用。
 
typedef void(* xf_task_reset_t) (xf_task_t task)
 任务重置函数。当任务执行不如意希望任务能重新执行的时候调用。
 
typedef xf_task_time_t(* xf_task_update_t) (xf_task_t task)
 任务更新函数。当任务出于阻塞状态时运行,更新当前任务状态。
 
typedef void(* xf_task_exec_t) (xf_task_manager_t manager)
 任务执行函数。调度器用于恢复/执行当前任务。
 
typedef struct _xf_task_vfunc_t xf_task_vfunc_t
 虚函数表,不在 base 对象实现,由子对象完成实现。
 
typedef struct _xf_task_base_t xf_task_base_t
 task 的父对象,保存了 task 的公共属性。
 

函数

xf_err_t xf_task_vfunc_register (xf_task_type_t type, const xf_task_vfunc_t *vfunc)
 task 的虚函数注册。
 
xf_err_t xf_task_vfunc_unregister (xf_task_type_t type)
 task 注销虚函数注册(一般用不到的函数)。
 
const xf_task_vfunc_txf_task_get_vfunc (xf_task_type_t type)
 task 获取虚函数。
 
xf_err_t xf_task_base_set_state (xf_task_t task, xf_task_state_t state)
 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 初始化。
 
void xf_task_base_reset (xf_task_base_t *task_base)
 重置 task base 部分内容
 
void xf_task_destructor (xf_task_t task)
 任务销毁。回收任务资源
 

详细描述

本头文件外界无法调用,manager 基于 base 进行调度。 开放部分在 xf_task_kernel.h .

作者
cangyu (sky.k.nosp@m.irto.nosp@m.@qq.c.nosp@m.om)
版本
0.1
日期
2024-07-05

在文件 xf_task_base.h 中定义.

宏定义说明

◆ XF_TASK_SIGNAL_READY

#define XF_TASK_SIGNAL_READY   (1UL << 0)

准备信号,通知调度器该任务可进入就绪

在文件 xf_task_base.h40 行定义.

◆ XF_TASK_SIGNAL_TIMEOUT

#define XF_TASK_SIGNAL_TIMEOUT   (1UL << 1)

超时信号,会在任务更新中转变为准备信号

在文件 xf_task_base.h41 行定义.

◆ XF_TASK_SIGNAL_EVENT

#define XF_TASK_SIGNAL_EVENT   (1UL << 2)

事件信号,会在任务更新中转变为准备信号

在文件 xf_task_base.h42 行定义.

◆ XF_TASK_SIGNAL_RESUME

#define XF_TASK_SIGNAL_RESUME   (1UL << 3)

恢复信号,通知任务从挂起状态被恢复

在文件 xf_task_base.h43 行定义.

◆ XF_TASK_FALG_FEEL_HUNGERY

#define XF_TASK_FALG_FEEL_HUNGERY   (1UL << 0)

外部设置的标志位,内部只会读取不会设置.

饥饿标志,表示该任务具有饥饿值

在文件 xf_task_base.h53 行定义.

类型定义说明

◆ xf_task_create_t

typedef 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)

构造任务函数指针,函数对象由它构造。

参数
manager任务所从属的任务管理器。
func任务执行的函数。
func_arg任务用户定义的参数。
priority任务优先级。
config任务参数配置(不同任务配置不同)。
返回
xf_task_t 返回 NULL 则表示任务构造失败,构造成功则返回任务对象

在文件 xf_task_base.h68 行定义.

◆ xf_task_delete_t

typedef void(* xf_task_delete_t) (xf_task_t task)

删除任务函数指针。函数对象的生命周期结尾时调用。

参数
task任务对象。

在文件 xf_task_base.h76 行定义.

◆ xf_task_reset_t

typedef void(* xf_task_reset_t) (xf_task_t task)

任务重置函数。当任务执行不如意希望任务能重新执行的时候调用。

参数
task任务对象。

在文件 xf_task_base.h83 行定义.

◆ xf_task_update_t

typedef xf_task_time_t(* xf_task_update_t) (xf_task_t task)

任务更新函数。当任务出于阻塞状态时运行,更新当前任务状态。

参数
task任务对象。
返回
xf_task_time_t 当前更新参考的时间戳

在文件 xf_task_base.h91 行定义.

◆ xf_task_exec_t

typedef void(* xf_task_exec_t) (xf_task_manager_t manager)

任务执行函数。调度器用于恢复/执行当前任务。

参数
manager任务管理器对象。

在文件 xf_task_base.h98 行定义.

◆ xf_task_vfunc_t

虚函数表,不在 base 对象实现,由子对象完成实现。

◆ xf_task_base_t

task 的父对象,保存了 task 的公共属性。

函数说明

◆ xf_task_vfunc_register()

xf_err_t xf_task_vfunc_register ( xf_task_type_t  type,
const xf_task_vfunc_t vfunc 
)

task 的虚函数注册。

参数
type任务类型,该类型通过注册表 xf_task_reg.inc 实现静态注册任务类型。
vfunc用于调用子任务功能的虚函数。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误
  • XF_ERR_INITED 已初始化
  • XF_OK 注册完成

在文件 xf_task_base.c34 行定义.

◆ xf_task_vfunc_unregister()

xf_err_t xf_task_vfunc_unregister ( xf_task_type_t  type)

task 注销虚函数注册(一般用不到的函数)。

参数
type任务类型,该类型通过注册表 xf_task_reg.inc 实现静态注册任务类型。
返回
xf_err_t
  • XF_ERR_INVALID_ARG 参数错误
  • XF_OK 注销完成

在文件 xf_task_base.c44 行定义.

◆ xf_task_get_vfunc()

const xf_task_vfunc_t * xf_task_get_vfunc ( xf_task_type_t  type)

task 获取虚函数。

参数
type任务,该类型通过注册表 xf_task_reg.inc 实现静态注册任务类型。
返回
const xf_task_vfunc_t* 返回虚函数结构体地址

在文件 xf_task_base.c53 行定义.

◆ xf_task_base_set_state()

xf_err_t xf_task_base_set_state ( xf_task_t  task,
xf_task_state_t  state 
)

task 设置状态。

参数
tasktask 任务对象。
statetask 任务状态。
返回
xf_err_t
  • XF_ERR_NOT_SUPPORTED 当任务出于删除态或者挂起态,此时设置状态无用
  • XF_OK 设置成功

在文件 xf_task_base.c105 行定义.

◆ xf_task_base_init()

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 初始化。

参数
task_basetask base 对象。
managertask 所从属的任务管理器。
typetask 子任务类型,该类型通过注册表 xf_task_reg.inc 实现静态注册任务类型。
priority任务优先级。
func任务执行函数。
arg任务自定义参数。

在文件 xf_task_base.c61 行定义.

◆ xf_task_base_reset()

void xf_task_base_reset ( xf_task_base_t task_base)

重置 task base 部分内容

参数
task_basetask base 对象

在文件 xf_task_base.c89 行定义.

◆ xf_task_destructor()

void xf_task_destructor ( xf_task_t  task)

任务销毁。回收任务资源

参数
task任务对象

在文件 xf_task_base.c135 行定义.