TuyaOS
tuya_queue.h
浏览该文件的文档.
1
10#ifndef _TUYA_QUEUE_H_
11#define _TUYA_QUEUE_H_
12
13#ifdef __cplusplus
14 extern "C" {
15#endif
16
17#include "tuya_cloud_types.h"
18
19typedef VOID_T* TUYA_QUEUE_HANDLE;
20typedef BOOL_T (*TRAVERSE_CB)(VOID_T*item, VOID_T *ctx);
21
33OPERATE_RET tuya_queue_create(CONST UINT32_T queue_len, CONST UINT32_T item_size, TUYA_QUEUE_HANDLE *handle);
34
43OPERATE_RET tuya_queue_input(TUYA_QUEUE_HANDLE handle, CONST VOID_T *item);
44
53OPERATE_RET tuya_queue_input_instant(TUYA_QUEUE_HANDLE handle, CONST VOID_T *item);
54
63OPERATE_RET tuya_queue_output(TUYA_QUEUE_HANDLE handle, CONST VOID_T *item);
64
73OPERATE_RET tuya_queue_peek(TUYA_QUEUE_HANDLE handle, CONST VOID_T *item);
74
84OPERATE_RET tuya_queue_traverse(TUYA_QUEUE_HANDLE handle, TRAVERSE_CB cb, VOID_T *ctx);
85
93OPERATE_RET tuya_queue_clear(TUYA_QUEUE_HANDLE handle);
94
105OPERATE_RET tuya_queue_get_batch(TUYA_QUEUE_HANDLE handle, CONST UINT32_T start, VOID_T *items, CONST UINT32_T num);
106
115OPERATE_RET tuya_queue_delete_batch(TUYA_QUEUE_HANDLE handle, CONST UINT32_T num);
116
124UINT32_T tuya_queue_get_free_num(TUYA_QUEUE_HANDLE handle);
125
133UINT32_T tuya_queue_get_used_num(TUYA_QUEUE_HANDLE handle);
134
142UINT32_T tuya_queue_get_max_num(TUYA_QUEUE_HANDLE handle);
143
151OPERATE_RET tuya_queue_release(TUYA_QUEUE_HANDLE handle);
152
153#ifdef __cplusplus
154}
155#endif
156#endif
157
OPERATE_RET tuya_queue_peek(TUYA_QUEUE_HANDLE handle, const void *item)
get the peek item(not dequeue)
OPERATE_RET tuya_queue_output(TUYA_QUEUE_HANDLE handle, const void *item)
dequeue
UINT32_T tuya_queue_get_free_num(TUYA_QUEUE_HANDLE handle)
get the free queue item number
UINT32_T tuya_queue_get_used_num(TUYA_QUEUE_HANDLE handle)
get the queue item number
UINT32_T tuya_queue_get_max_num(TUYA_QUEUE_HANDLE handle)
get the queue item number
OPERATE_RET tuya_queue_create(const UINT32_T queue_len, const UINT32_T item_size, TUYA_QUEUE_HANDLE *handle)
create and initialize a queue (FIFO)
OPERATE_RET tuya_queue_clear(TUYA_QUEUE_HANDLE handle)
clear all items in the queue
OPERATE_RET tuya_queue_release(TUYA_QUEUE_HANDLE handle)
release the queue
OPERATE_RET tuya_queue_input_instant(TUYA_QUEUE_HANDLE handle, const void *item)
enqueue, insert to the head
OPERATE_RET tuya_queue_input(TUYA_QUEUE_HANDLE handle, const void *item)
enqueue, append to the tail
OPERATE_RET tuya_queue_delete_batch(TUYA_QUEUE_HANDLE handle, const UINT32_T num)
delete the item from the queue position
OPERATE_RET tuya_queue_get_batch(TUYA_QUEUE_HANDLE handle, const UINT32_T start, void *items, const UINT32_T num)
get items from start postion, not dequeue
OPERATE_RET tuya_queue_traverse(TUYA_QUEUE_HANDLE handle, TRAVERSE_CB cb, void *ctx)
traverse the queue with specific callback