|
|
|
@ -72,6 +72,7 @@ namespace ev {
|
|
|
|
|
CHECK = EV_CHECK, |
|
|
|
|
PREPARE = EV_PREPARE, |
|
|
|
|
FORK = EV_FORK, |
|
|
|
|
ASYNC = EV_ASYNC, |
|
|
|
|
EMBED = EV_EMBED, |
|
|
|
|
ERROR = EV_ERROR, |
|
|
|
|
}; |
|
|
|
@ -563,13 +564,13 @@ namespace ev {
|
|
|
|
|
|
|
|
|
|
#if EV_MULTIPLICITY |
|
|
|
|
#define EV_CONSTRUCT(cppstem,cstem) \ |
|
|
|
|
(EV_PX = get_default_loop ()) throw () \
|
|
|
|
|
(EV_PX = get_default_loop ()) throw () \
|
|
|
|
|
: base<ev_ ## cstem, cppstem> (EV_A) \
|
|
|
|
|
{ \
|
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
#define EV_CONSTRUCT(cppstem,cstem) \ |
|
|
|
|
() throw () \
|
|
|
|
|
() throw () \
|
|
|
|
|
{ \
|
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
@ -580,19 +581,19 @@ namespace ev {
|
|
|
|
|
\
|
|
|
|
|
struct cppstem : base<ev_ ## cstem, cppstem> \
|
|
|
|
|
{ \
|
|
|
|
|
void start () throw () \
|
|
|
|
|
void start () throw () \
|
|
|
|
|
{ \
|
|
|
|
|
ev_ ## cstem ## _start (EV_A_ static_cast<ev_ ## cstem *>(this)); \
|
|
|
|
|
} \
|
|
|
|
|
\
|
|
|
|
|
void stop () throw () \
|
|
|
|
|
void stop () throw () \
|
|
|
|
|
{ \
|
|
|
|
|
ev_ ## cstem ## _stop (EV_A_ static_cast<ev_ ## cstem *>(this)); \
|
|
|
|
|
} \
|
|
|
|
|
\
|
|
|
|
|
cppstem EV_CONSTRUCT(cppstem,cstem) \
|
|
|
|
|
\
|
|
|
|
|
~cppstem () throw () \
|
|
|
|
|
~cppstem () throw () \
|
|
|
|
|
{ \
|
|
|
|
|
stop (); \
|
|
|
|
|
} \
|
|
|
|
@ -603,7 +604,7 @@ namespace ev {
|
|
|
|
|
\
|
|
|
|
|
cppstem (const cppstem &o); \
|
|
|
|
|
\
|
|
|
|
|
cppstem & operator =(const cppstem &o); \
|
|
|
|
|
cppstem &operator =(const cppstem &o); \
|
|
|
|
|
\
|
|
|
|
|
public: |
|
|
|
|
|
|
|
|
@ -748,10 +749,17 @@ namespace ev {
|
|
|
|
|
|
|
|
|
|
#if EV_EMBED_ENABLE |
|
|
|
|
EV_BEGIN_WATCHER (embed, embed) |
|
|
|
|
void start (struct ev_loop *embedded_loop) throw () |
|
|
|
|
void set (struct ev_loop *embedded_loop) throw () |
|
|
|
|
{ |
|
|
|
|
stop (); |
|
|
|
|
int active = is_active (); |
|
|
|
|
if (active) stop (); |
|
|
|
|
ev_embed_set (static_cast<ev_embed *>(this), embedded_loop); |
|
|
|
|
if (active) start (); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void start (struct ev_loop *embedded_loop) throw () |
|
|
|
|
{ |
|
|
|
|
set (embedded_loop); |
|
|
|
|
start (); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -768,6 +776,22 @@ namespace ev {
|
|
|
|
|
EV_END_WATCHER (fork, fork) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if EV_ASYNC_ENABLE |
|
|
|
|
EV_BEGIN_WATCHER (async, async) |
|
|
|
|
void set () throw () { } |
|
|
|
|
|
|
|
|
|
void send () throw () |
|
|
|
|
{ |
|
|
|
|
ev_async_send (EV_A_ static_cast<ev_async *>(this)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool async_pending () throw () |
|
|
|
|
{ |
|
|
|
|
return ev_async_pending (static_cast<ev_async *>(this)); |
|
|
|
|
} |
|
|
|
|
EV_END_WATCHER (async, async) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#undef EV_PX |
|
|
|
|
#undef EV_PX_ |
|
|
|
|
#undef EV_CONSTRUCT |
|
|
|
|