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