XFusion API
v1.3.0
载入中...
搜索中...
未找到
xf_task_queue.h
浏览该文件的文档.
1
12
#ifndef __XF_TASK_QUEUE_H__
13
#define __XF_TASK_QUEUE_H__
14
15
/* ==================== [Includes] ========================================== */
16
17
#include "xf_utils.h"
18
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
31
32
/* ==================== [Defines] =========================================== */
33
34
/* ==================== [Typedefs] ========================================== */
35
39
typedef
struct
_xf_task_queue_t
{
40
uint8_t *
head
;
41
uint8_t *
tail
;
42
uint8_t *
writer
;
43
uint8_t *
reader
;
44
volatile
size_t
waiting
;
45
size_t
count
;
46
size_t
size
;
47
}
xf_task_queue_t
;
48
52
typedef
enum
_xf_task_queue_mode_t
{
53
XF_TASK_QUEUE_SEND_TO_BACK
,
54
XF_TASK_QUEUE_SEND_TO_FRONT
55
}
xf_task_queue_mode_t
;
56
57
/* ==================== [Global Prototypes] ================================= */
58
70
xf_err_t
xf_task_queue_init
(
xf_task_queue_t
*
const
queue
,
void
*data,
const
size_t
size,
const
size_t
count);
71
80
xf_err_t
xf_task_queue_reset
(
xf_task_queue_t
*
const
queue
);
81
89
bool
xf_task_queue_is_empty
(
const
xf_task_queue_t
*
const
queue
);
90
97
size_t
xf_task_queue_count
(
const
xf_task_queue_t
*
const
queue
);
98
107
void
*
xf_task_queue_peek
(
const
xf_task_queue_t
*
const
queue
);
108
115
size_t
xf_task_queue_available
(
const
xf_task_queue_t
*
const
queue
);
116
124
bool
xf_task_queue_is_full
(
const
xf_task_queue_t
*
const
queue
);
125
137
xf_err_t
xf_task_queue_send
(
xf_task_queue_t
*
const
queue
,
void
*item,
const
xf_task_queue_mode_t
pos);
138
147
xf_err_t
xf_task_queue_remove_front
(
xf_task_queue_t
*
const
queue
);
148
158
xf_err_t
xf_task_queue_receive
(
xf_task_queue_t
*
const
queue
,
void
*
const
buffer);
159
160
/* ==================== [Macros] ============================================ */
161
162
#ifdef __cplusplus
163
}
/* extern "C" */
164
#endif
165
171
#endif
// __XF_TASK_QUEUE_H__
xf_task_queue_is_full
bool xf_task_queue_is_full(const xf_task_queue_t *const queue)
判断队列是否已满。
Definition
xf_task_queue.c:105
xf_task_queue_receive
xf_err_t xf_task_queue_receive(xf_task_queue_t *const queue, void *const buffer)
从队列接收一个元素。
Definition
xf_task_queue.c:142
xf_task_queue_reset
xf_err_t xf_task_queue_reset(xf_task_queue_t *const queue)
重置队列。
Definition
xf_task_queue.c:56
xf_task_queue_is_empty
bool xf_task_queue_is_empty(const xf_task_queue_t *const queue)
判断队列是否为空。
Definition
xf_task_queue.c:68
xf_task_queue_available
size_t xf_task_queue_available(const xf_task_queue_t *const queue)
获取队列剩余空间。
Definition
xf_task_queue.c:98
xf_task_queue_init
xf_err_t xf_task_queue_init(xf_task_queue_t *const queue, void *data, const size_t size, const size_t count)
队列对象初始化。
Definition
xf_task_queue.c:34
xf_task_queue_remove_front
xf_err_t xf_task_queue_remove_front(xf_task_queue_t *const queue)
从队列删除第一个元素。
Definition
xf_task_queue.c:130
_xf_task_queue_mode_t
_xf_task_queue_mode_t
消息队列传输模式枚举。
Definition
xf_task_queue.h:52
xf_task_queue_peek
void * xf_task_queue_peek(const xf_task_queue_t *const queue)
获取队列第一个元素。
Definition
xf_task_queue.c:82
xf_task_queue_count
size_t xf_task_queue_count(const xf_task_queue_t *const queue)
获取队列数据个数
Definition
xf_task_queue.c:75
xf_task_queue_mode_t
enum _xf_task_queue_mode_t xf_task_queue_mode_t
消息队列传输模式枚举。
xf_task_queue_send
xf_err_t xf_task_queue_send(xf_task_queue_t *const queue, void *item, const xf_task_queue_mode_t pos)
队列发送数据。
Definition
xf_task_queue.c:116
xf_task_queue_t
struct _xf_task_queue_t xf_task_queue_t
消息队列对象结构体。
XF_TASK_QUEUE_SEND_TO_BACK
@ XF_TASK_QUEUE_SEND_TO_BACK
Definition
xf_task_queue.h:53
XF_TASK_QUEUE_SEND_TO_FRONT
@ XF_TASK_QUEUE_SEND_TO_FRONT
Definition
xf_task_queue.h:54
xf_err_t
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition
xf_err.h:69
queue
static xf_osal_queue_t queue
Definition
xf_main.c:35
_xf_task_queue_t
消息队列对象结构体。
Definition
xf_task_queue.h:39
_xf_task_queue_t::head
uint8_t * head
Definition
xf_task_queue.h:40
_xf_task_queue_t::writer
uint8_t * writer
Definition
xf_task_queue.h:42
_xf_task_queue_t::reader
uint8_t * reader
Definition
xf_task_queue.h:43
_xf_task_queue_t::count
size_t count
Definition
xf_task_queue.h:45
_xf_task_queue_t::size
size_t size
Definition
xf_task_queue.h:46
_xf_task_queue_t::waiting
volatile size_t waiting
Definition
xf_task_queue.h:44
_xf_task_queue_t::tail
uint8_t * tail
Definition
xf_task_queue.h:41
components
xf_task
xf_task
src
utils
xf_task_queue.h
生成于 2025年 一月 21日 星期二 17:25:09 , 为 XFusion API使用
1.9.8