• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# loop.h
2
3<!--Kit: Function Flow Runtime Kit-->
4<!--Subsystem: Resourceschedule-->
5<!--Owner: @chuchihtung; @yanleo-->
6<!--Designer: @geoffrey_guo; @huangyouzhong-->
7<!--Tester: @lotsof; @sunxuhao-->
8<!--Adviser: @foryourself-->
9
10## 概述
11
12声明循环的C接口。
13
14**引用文件:** <ffrt/loop.h>
15
16**库:** libffrt.z.so
17
18**系统能力:** SystemCapability.Resourceschedule.Ffrt.Core
19
20**起始版本:** 12
21
22**相关模块:** [FFRT](capi-ffrt.md)
23
24## 汇总
25
26### 结构体
27
28| 名称              | 描述 |
29|-----------------|----|
30| [ffrt_loop_t](capi-ffrt-ffrt-loop-t.md) | loop句柄。   |
31
32
33### 函数
34
35| 名称 | 描述 |
36| -- | -- |
37| [FFRT_C_API ffrt_loop_t ffrt_loop_create(ffrt_queue_t queue)](#ffrt_loop_create) | 创建loop对象。 |
38| [FFRT_C_API int ffrt_loop_destroy(ffrt_loop_t loop)](#ffrt_loop_destroy) | 销毁loop对象。 |
39| [FFRT_C_API int ffrt_loop_run(ffrt_loop_t loop)](#ffrt_loop_run) | 开启loop循环。 |
40| [FFRT_C_API void ffrt_loop_stop(ffrt_loop_t loop)](#ffrt_loop_stop) | 停止loop循环。 |
41| [FFRT_C_API int ffrt_loop_epoll_ctl(ffrt_loop_t loop, int op, int fd, uint32_t events, void *data, ffrt_poller_cb cb)](#ffrt_loop_epoll_ctl) | 管理loop上的监听事件。 |
42| [FFRT_C_API ffrt_timer_t ffrt_loop_timer_start(ffrt_loop_t loop, uint64_t timeout, void* data, ffrt_timer_cb cb, bool repeat)](#ffrt_loop_timer_start) | 在ffrt loop上启动定时器。 |
43| [FFRT_C_API int ffrt_loop_timer_stop(ffrt_loop_t loop, ffrt_timer_t handle)](#ffrt_loop_timer_stop) | 停止ffrt loop定时器。 |
44
45## 函数说明
46
47### ffrt_loop_create()
48
49```
50FFRT_C_API ffrt_loop_t ffrt_loop_create(ffrt_queue_t queue)
51```
52
53**描述**
54
55创建loop对象。
56
57**起始版本:** 12
58
59
60**参数:**
61
62| 参数项                    | 描述 |
63|------------------------| -- |
64| [ffrt_queue_t](capi-ffrt-ffrt-queue-t.md) queue | 并发队列。 |
65
66**返回:**
67
68| 类型                         | 说明 |
69|----------------------------| -- |
70| FFRT_C_API [ffrt_loop_t](capi-ffrt-ffrt-loop-t.md) | 创建成功返回ffrt_loop_t对象,<br>          创建失败返回空指针。 |
71
72### ffrt_loop_destroy()
73
74```
75FFRT_C_API int ffrt_loop_destroy(ffrt_loop_t loop)
76```
77
78**描述**
79
80销毁loop对象。
81
82**起始版本:** 12
83
84
85**参数:**
86
87| 参数项 | 描述 |
88| -- | -- |
89| [ffrt_loop_t](capi-ffrt-ffrt-loop-t.md) loop | loop对象。 |
90
91**返回:**
92
93| 类型 | 说明 |
94| -- | -- |
95| FFRT_C_API int | 销毁成功返回0,<br>          销毁失败返回-1。 |
96
97### ffrt_loop_run()
98
99```
100FFRT_C_API int ffrt_loop_run(ffrt_loop_t loop)
101```
102
103**描述**
104
105开启loop循环。
106
107**起始版本:** 12
108
109
110**参数:**
111
112| 参数项 | 描述 |
113| -- | -- |
114| [ffrt_loop_t](capi-ffrt-ffrt-loop-t.md) loop | loop对象。 |
115
116**返回:**
117
118| 类型 | 说明 |
119| -- | -- |
120| FFRT_C_API int | loop循环失败返回-1,<br>          loop循环成功返回0。 |
121
122### ffrt_loop_stop()
123
124```
125FFRT_C_API void ffrt_loop_stop(ffrt_loop_t loop)
126```
127
128**描述**
129
130停止loop循环。
131
132**起始版本:** 12
133
134
135**参数:**
136
137| 参数项 | 描述 |
138| -- | -- |
139| [ffrt_loop_t](capi-ffrt-ffrt-loop-t.md) loop | loop对象。 |
140
141### ffrt_loop_epoll_ctl()
142
143```
144FFRT_C_API int ffrt_loop_epoll_ctl(ffrt_loop_t loop, int op, int fd, uint32_t events, void *data, ffrt_poller_cb cb)
145```
146
147**描述**
148
149管理loop上的监听事件。
150
151**起始版本:** 12
152
153
154**参数:**
155
156| 参数项 | 描述 |
157| -- | -- |
158| [ffrt_loop_t](capi-ffrt-ffrt-loop-t.md) loop | loop对象。 |
159| int op | fd操作符。 |
160| int fd | 事件描述符。 |
161| uint32_t events | 事件。 |
162| void *data | 事件变化时触发的回调函数的入参。 |
163| [ffrt_poller_cb](capi-type-def-h.md#ffrt_poller_cb) cb | 事件变化时触发的回调函数。 |
164
165**返回:**
166
167| 类型 | 说明 |
168| -- | -- |
169| FFRT_C_API int | 成功返回0,<br>          失败返回-1。 |
170
171### ffrt_loop_timer_start()
172
173```
174FFRT_C_API ffrt_timer_t ffrt_loop_timer_start(ffrt_loop_t loop, uint64_t timeout, void* data, ffrt_timer_cb cb, bool repeat)
175```
176
177**描述**
178
179在ffrt loop上启动定时器。
180
181**起始版本:** 12
182
183
184**参数:**
185
186| 参数项 | 描述 |
187| -- | -- |
188| [ffrt_loop_t](capi-ffrt-ffrt-loop-t.md) loop | loop对象。 |
189| uint64_t timeout | 超时时间(毫秒)。 |
190| void* data | 事件变化时触发的回调函数的入参。 |
191| [ffrt_timer_cb](capi-type-def-h.md#ffrt_timer_cb) cb | 事件变化时触发的回调函数。 |
192| bool repeat | 是否重复执行该定时器。 |
193
194**返回:**
195
196| 类型                                               | 说明 |
197|--------------------------------------------------| -- |
198| FFRT_C_API [ffrt_timer_t](capi-type-def-h.md#变量) | 返回定时器句柄。 |
199
200### ffrt_loop_timer_stop()
201
202```
203FFRT_C_API int ffrt_loop_timer_stop(ffrt_loop_t loop, ffrt_timer_t handle)
204```
205
206**描述**
207
208停止ffrt loop定时器。
209
210**起始版本:** 12
211
212
213**参数:**
214
215| 参数项 | 描述 |
216| -- | -- |
217| ffrt_loop_t loop | loop对象。 |
218| ffrt_timer_t handle | timer对象。 |
219
220**返回:**
221
222| 类型 | 说明 |
223| -- | -- |
224| FFRT_C_API int | 成功返回0,<br>失败返回-1。 |
225
226
227