Simple coroutine library integrated with IO event loop (libevent) / objects in plain C Snapshot
|
#include <corothread/cthread.h>
#include <corothread/stacks.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <cutils/dlist.h>
#include <nutils/addrutil.h>
#include <event.h>
Go to the source code of this file.
Classes | |
struct | tagEVLOOP |
struct | tagEVTHREAD |
struct | tagEVTHREAD_OBJECT |
base class of sockets and timers. API of this class is not not called directly by the user of this library. More... | |
struct | tagEVTIMER |
struct | tagEVSOCKET |
struct | tagTCPACCEPTOR |
Typedefs | |
typedef struct tagEVLOOP | EVLOOP |
typedef void(* | EVTHREAD_PROC )(struct tagEVTHREAD *thread, struct tagEVSOCKET *socket, void *user_ctx) |
typedef struct tagEVTHREAD | EVTHREAD |
typedef struct tagEVTHREAD_OBJECT | EVTHREAD_OBJECT |
base class of sockets and timers. API of this class is not not called directly by the user of this library. | |
typedef struct tagEVTIMER | EVTIMER |
typedef struct tagEVSOCKET | EVSOCKET |
typedef int(* | EVTHREAD_FACTORY )(int fd, EVTHREAD_PROC *proc, void **ctx, void *factory_ctx) |
typedef struct tagTCPACCEPTOR | EVTCPACCEPTOR |
Enumerations | |
enum | EVTHREAD_OBJECT_TYPE { EVTHREAD_OBJECT_SOCKET, EVTHREAD_OBJECT_TIMER } |
enum | EVTIMERSTATE { EVTIMER_STATE_INIT, EVTIMER_STATE_SCHEDULED } |
enum | EVSOCKET_STATE { EVSOCKET_STATE_INIT, EVSOCKET_STATE_CONNECTING, EVSOCKET_STATE_CONNECTED, EVSOCKET_STATE_READING, EVSOCKET_STATE_WRITING, EVSOCKET_STATE_CLOSED, EVSOCKET_STATE_ERROR } |
Functions | |
EVLOOP * | EVLOOP_init (STACKS *stacks) |
int | EVLOOP_run (EVLOOP *loop) |
int | EVLOOP_break (EVLOOP *loop) |
EVTHREAD * | EVTHREAD_init (EVLOOP *loop, EVTHREAD_PROC thread_proc, void *user_ctx) |
int | EVTHREAD_start (EVTHREAD *thread, struct tagEVSOCKET *socket) |
int | EVTHREAD_delay (EVTHREAD *thread, struct timeval delay) |
EVTIMER * | EVTIMER_init (EVTHREAD *thread, int timer_id, struct timeval tm) |
int | EVTIMER_start (EVTIMER *ret) |
int | EVTIMER_cancel (EVTIMER *timer) |
int | EVTIMER_free (EVTIMER *timer) |
EVSOCKET * | EVSOCKET_init (EVTHREAD *thread, int fd, int is_connected) |
int | EVSOCKET_close (EVSOCKET *socket) |
int | EVSOCKET_connect (EVSOCKET *socket, struct sockaddr *address, socklen_t socklen, struct timeval timeout) |
void | EVSOCKET_set_idle_timeout (EVSOCKET *socket, struct timeval timeout) |
int | EVSOCKET_recv (EVSOCKET *socket, void *buf, size_t buf_size, int flags, struct timeval timeout) |
int | EVSOCKET_recv_all (EVSOCKET *socket, void *buf, size_t buf_size, int flags, struct timeval timeout) |
int | EVSOCKET_send (EVSOCKET *socket, void *buf, size_t buf_size, int flags, struct timeval timeout) |
EVTCPACCEPTOR * | EVTCPACCEPTOR_init_ex (EVLOOP *loop, SOCKADDR *addr, int listener_backlog, EVTHREAD_FACTORY factory, int read_buffer_size, int write_buffer_size, void *ctx) |
EVTCPACCEPTOR * | EVTCPACCEPTOR_init (EVLOOP *loop, int listener_fd, EVTHREAD_FACTORY factory, int read_buffer_size, int write_buffer_size, void *ctx) |
void | EVTCPACCEPTOR_close (EVTCPACCEPTOR *) |
typedef struct tagEVTHREAD_OBJECT EVTHREAD_OBJECT |
base class of sockets and timers. API of this class is not not called directly by the user of this library.
enum EVTHREAD_OBJECT_TYPE |
Definition at line 115 of file evthread.h.