diff options
| author | root <root> | 2010-10-22 05:57:55 +0000 | 
|---|---|---|
| committer | root <root> | 2010-10-22 05:57:55 +0000 | 
| commit | b5335f1d75c19c2618d6f9cc53ab530e1ed45b28 (patch) | |
| tree | 09a17c77fa0c6aa5719c3ce847db5456d34dd159 | |
| parent | 161ca5d6241779e10976c8e0e3ab090a7d539112 (diff) | |
compat3 for ev++.h, default args c++
| -rw-r--r-- | Changes | 2 | ||||
| -rw-r--r-- | ev++.h | 29 | ||||
| -rw-r--r-- | ev.h | 18 | 
3 files changed, 39 insertions, 10 deletions
| @@ -44,6 +44,8 @@ TODO: include ev_xyz_start in each example?          - define _DARWIN_UNLIMITED_SELECT. just so.          - use enum instead of #define for most constants.          - improve compatibility to older C++ compilers. +        - ev_run/ev_default_loop/ev_break/ev_loop_new have now default +          arguments when compiled as C++.  3.9  Thu Dec 31 07:59:59 CET 2009  	- signalfd is no longer used by default and has to be requested @@ -64,7 +64,10 @@ namespace ev {      NONE     = EV_NONE,      READ     = EV_READ,      WRITE    = EV_WRITE, +#if EV_COMPAT3      TIMEOUT  = EV_TIMEOUT, +#endif +    TIMER    = EV_TIMER,      PERIODIC = EV_PERIODIC,      SIGNAL   = EV_SIGNAL,      CHILD    = EV_CHILD, @@ -95,14 +98,18 @@ namespace ev {    enum    { +#if EV_COMPAT3      NONBLOCK = EVLOOP_NONBLOCK, -    ONESHOT  = EVLOOP_ONESHOT +    ONESHOT  = EVLOOP_ONESHOT, +#endif +    NOWAIT   = EVRUN_NOWAIT, +    ONCE     = EVRUN_ONCE    };    enum how_t    { -    ONE = EVUNLOOP_ONE, -    ALL = EVUNLOOP_ALL +    ONE = EVBREAK_ONE, +    ALL = EVBREAK_ALL    };    struct bad_loop @@ -188,14 +195,26 @@ namespace ev {      }  #endif +#if EV_COMPAT3      void loop (int flags = 0)      { -      ev_loop (EV_AX_ flags); +      ev_run (EV_AX_ flags);      }      void unloop (how_t how = ONE) throw ()      { -      ev_unloop (EV_AX_ how); +      ev_break (EV_AX_ how); +    } +#endif + +    void run (int flags = 0) +    { +      ev_run (EV_AX_ flags); +    } + +    void break_loop (how_t how = ONE) throw () +    { +      ev_break (EV_AX_ how);      }      void post_fork () throw () @@ -147,6 +147,12 @@ typedef double ev_tstamp;  # include <sys/stat.h>  #endif +#ifdef __cplusplus +# define EV_DEFARG(x) = x +#else +# define EV_DEFARG(x) +#endif +  /* support multiple event loops? */  #if EV_MULTIPLICITY  struct ev_loop; @@ -194,7 +200,9 @@ enum {    EV__IOFDSET =       0x80, /* internal use only */    EV_IO       =    EV_READ, /* alias for type-detection */    EV_TIMER    = 0x00000100, /* timer timed out */ +#if EV_COMPAT3    EV_TIMEOUT  =   EV_TIMER, /* pre 4.0 API compatibility */ +#endif    EV_PERIODIC = 0x00000200, /* periodic timer timed out */    EV_SIGNAL   = 0x00000400, /* signal was received */    EV_CHILD    = 0x00000800, /* child/pid had status change */ @@ -513,7 +521,7 @@ ev_default_loop_uc (void)  /* the default loop is the only one that handles signals and child watchers */  /* you can call this as often as you like */  EV_INLINE struct ev_loop * -ev_default_loop (unsigned int flags) +ev_default_loop (unsigned int flags EV_DEFARG (0))  {    struct ev_loop *loop = ev_default_loop_uc (); @@ -528,7 +536,7 @@ ev_default_loop (unsigned int flags)  }  /* create and destroy alternative loops that don't handle signals */ -struct ev_loop *ev_loop_new (unsigned int flags); +struct ev_loop *ev_loop_new (unsigned int flags EV_DEFARG (0));  void ev_loop_destroy (EV_P);  void ev_loop_fork (EV_P); @@ -536,7 +544,7 @@ ev_tstamp ev_now (EV_P); /* time w.r.t. timers and the eventloop, updated after  #else -int ev_default_loop (unsigned int flags); /* returns true when successful */ +int ev_default_loop (unsigned int flags EV_DEFARG (0)); /* returns true when successful */  EV_INLINE ev_tstamp  ev_now (void) @@ -593,8 +601,8 @@ enum {  };  #if EV_PROTOTYPES -void ev_run (EV_P_ int flags); -void ev_break (EV_P_ int how); /* set to 1 to break out of event loop, set to 2 to break out of all event loops */ +void ev_run (EV_P_ int flags EV_DEFARG (0)); +void ev_break (EV_P_ int how EV_DEFARG (EVBREAK_ONE)); /* break out of the loop */  /*   * ref/unref can be used to add or remove a refcount on the mainloop. every watcher | 
