增加事件驱动和业务回滚处理方式
This commit is contained in:
63
app/event_handler.h
Normal file
63
app/event_handler.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* event_handler.h
|
||||
*
|
||||
* Created on: 2026-03-04
|
||||
* Author: RT-Thread
|
||||
*
|
||||
* 功能: 事件处理器模块头文件
|
||||
* 依赖: RT-Thread Nano, osal, event_queue
|
||||
* 跨平台适配: 基于RT-Thread Nano,使用标准API
|
||||
*/
|
||||
|
||||
#ifndef EVENT_HANDLER_H
|
||||
#define EVENT_HANDLER_H
|
||||
|
||||
#include <rtthread.h>
|
||||
#include "osal.h"
|
||||
#include "event_queue.h"
|
||||
|
||||
/* 事件处理函数类型 */
|
||||
typedef int (*event_handler_func_t)(event_t *event, void *user_data);
|
||||
|
||||
/* 事件处理器结构体 */
|
||||
typedef struct {
|
||||
event_handler_func_t handler; /* 事件处理函数 */
|
||||
void *user_data; /* 用户数据 */
|
||||
} event_handler_t;
|
||||
|
||||
/**
|
||||
* @brief 初始化事件处理器
|
||||
* @return 0 成功,非0 失败
|
||||
*/
|
||||
int event_handler_init(void);
|
||||
|
||||
/**
|
||||
* @brief 注册事件处理器
|
||||
* @param type 事件类型
|
||||
* @param handler 事件处理函数
|
||||
* @param user_data 用户数据
|
||||
* @return 0 成功,非0 失败
|
||||
*/
|
||||
int event_handler_register(event_type_t type, event_handler_func_t handler, void *user_data);
|
||||
|
||||
/**
|
||||
* @brief 注销事件处理器
|
||||
* @param type 事件类型
|
||||
* @return 0 成功,非0 失败
|
||||
*/
|
||||
int event_handler_unregister(event_type_t type);
|
||||
|
||||
/**
|
||||
* @brief 处理事件
|
||||
* @param event 事件指针
|
||||
* @return 0 成功,非0 失败
|
||||
*/
|
||||
int event_handler_process(event_t *event);
|
||||
|
||||
/**
|
||||
* @brief 事件分发线程
|
||||
* @param parameter 线程参数
|
||||
*/
|
||||
void event_dispatch_thread(void *parameter);
|
||||
|
||||
#endif /* EVENT_HANDLER_H */
|
||||
Reference in New Issue
Block a user