11 #ifndef __DRIFT_LIBEVENT_H__
12 #define __DRIFT_LIBEVENT_H__
14 #include <drift/sockets3.h>
16 #include <event2/event.h>
18 #if defined(DSL_DLL) && defined(WIN32)
19 #if defined(DSL_LIBEVENT_EXPORTS)
20 #define DSL_LIBEVENT_API extern "C" __declspec(dllexport)
21 #define DSL_LIBEVENT_API_CLASS __declspec(dllexport)
23 #define DSL_LIBEVENT_API extern "C" __declspec(dllimport)
24 #define DSL_LIBEVENT_API_CLASS __declspec(dllimport)
27 #define DSL_LIBEVENT_API DSL_API_VIS
28 #define DSL_LIBEVENT_API_CLASS DSL_API_VIS
44 dsl_sockets_event_callback read_cb;
45 dsl_sockets_event_callback write_cb;
46 dsl_sockets_event_callback connect_cb;
53 event_base * evbase = NULL;
54 set<DSL_SOCKET_LIBEVENT *> sockets;
58 event_base * GetEventBase() {
return evbase; }
60 int LoopWithFlags(
int flags=0);
61 int LoopWithTimeout(
int timeout);
64 DSL_SOCKET_LIBEVENT * Add(
DSL_SOCKET * sock, dsl_sockets_event_callback read_cb = NULL, dsl_sockets_event_callback write_cb = NULL, dsl_sockets_event_callback connect_cb = NULL,
void * user_ptr = NULL,
bool persist_recv =
true,
bool persist_write =
false);
72 DSL_SOCKET_LIBEVENT * AddTimer(dsl_sockets_event_callback cb,
bool persist =
true,
void * user_ptr = NULL);