forked from swoole/swoole-src
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswoole_api.h
76 lines (64 loc) · 2.55 KB
/
swoole_api.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
+----------------------------------------------------------------------+
| Swoole |
+----------------------------------------------------------------------+
| Copyright (c) 2012-2018 The Swoole Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.0 of the Apache license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.apache.org/licenses/LICENSE-2.0.html |
| If you did not receive a copy of the Apache2.0 license and are unable|
| to obtain it through the world-wide-web, please send a note to |
| [email protected] so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Author: Tianfeng Han <[email protected]> |
+----------------------------------------------------------------------+
*/
#ifndef _SW_API_H_
#define _SW_API_H_
#ifdef __cplusplus
extern "C"
{
#endif
#include "swoole.h"
#include "coroutine_c_api.h"
long swoole_timer_after(long ms, swTimerCallback callback, void *private_data);
long swoole_timer_tick(long ms, swTimerCallback callback, void *private_data);
long swoole_timer_add(long ms, uchar persistent, swTimerCallback callback, void *private_data);
uchar swoole_timer_exists(long timer_id);
uchar swoole_timer_clear(long timer_id);
static inline int swoole_event_init()
{
swoole_init();
SwooleG.main_reactor = (swReactor *) sw_malloc(sizeof(swReactor));
if (!SwooleG.main_reactor)
{
return SW_ERR;
}
return swReactor_create(SwooleG.main_reactor, SW_REACTOR_MAXEVENTS);
}
static inline uchar swoole_event_add(int fd, int events, int fdtype)
{
return SwooleG.main_reactor->add(SwooleG.main_reactor, fd, fdtype | events) == SW_OK;
}
static inline uchar swoole_event_set(int fd, int events, int fdtype)
{
return SwooleG.main_reactor->set(SwooleG.main_reactor, fd, fdtype | events) == SW_OK;
}
static inline uchar swoole_event_del(int fd)
{
return SwooleG.main_reactor->del(SwooleG.main_reactor, fd);
}
static inline int swoole_event_wait()
{
return SwooleG.main_reactor->wait(SwooleG.main_reactor, NULL);
}
static inline void swoole_event_defer(swCallback cb, void *private_data)
{
SwooleG.main_reactor->defer(SwooleG.main_reactor, cb, private_data);
}
#ifdef __cplusplus
}
#endif
#endif /* _SW_API_H_ */