]> git.llucax.com Git - software/libev.git/blobdiff - ev++.h
- argl, same bug as with check etc. watchers in timers and periodics
[software/libev.git] / ev++.h
diff --git a/ev++.h b/ev++.h
index 0f51bd5fce2950b807a94a65b25fda12fddb7934..f33592653913717b78e1c7362c95bd8d1eb9f9ab 100644 (file)
--- a/ev++.h
+++ b/ev++.h
@@ -52,10 +52,13 @@ namespace ev {
     TIMEOUT  = EV_TIMEOUT,
     PERIODIC = EV_PERIODIC,
     SIGNAL   = EV_SIGNAL,
+    CHILD    = EV_CHILD,
+    STAT     = EV_STAT,
     IDLE     = EV_IDLE,
     CHECK    = EV_CHECK,
     PREPARE  = EV_PREPARE,
-    CHILD    = EV_CHILD,
+    FORK     = EV_FORK,
+    EMBED    = EV_EMBED,
     ERROR    = EV_ERROR,
   };
 
@@ -193,7 +196,7 @@ namespace ev {
     }
   EV_END_WATCHER (timer, timer)
 
-  #if EV_PERIODICS
+  #if EV_PERIODIC_ENABLE
   EV_BEGIN_WATCHER (periodic, periodic)
     void set (ev_tstamp at, ev_tstamp interval = 0.)
     {
@@ -216,18 +219,6 @@ namespace ev {
   EV_END_WATCHER (periodic, periodic)
   #endif
 
-  EV_BEGIN_WATCHER (idle, idle)
-    void set () { }
-  EV_END_WATCHER (idle, idle)
-
-  EV_BEGIN_WATCHER (prepare, prepare)
-    void set () { }
-  EV_END_WATCHER (prepare, prepare)
-
-  EV_BEGIN_WATCHER (check, check)
-    void set () { }
-  EV_END_WATCHER (check, check)
-
   EV_BEGIN_WATCHER (sig, signal)
     void set (int signum)
     {
@@ -260,8 +251,42 @@ namespace ev {
     }
   EV_END_WATCHER (child, child)
 
-  #if EV_MULTIPLICITY
+  #if EV_STAT_ENABLE
+  EV_BEGIN_WATCHER (stat, stat)
+    void set (const char *path, ev_tstamp interval = 0.)
+    {
+      int active = is_active ();
+      if (active) stop ();
+      ev_stat_set (static_cast<ev_stat *>(this), path, interval);
+      if (active) start ();
+    }
+
+    void start (const char *path, ev_tstamp interval = 0.)
+    {
+      set (path, interval);
+      start ();
+    }
+
+    void update ()
+    {
+      ev_stat_stat (EV_A_ static_cast<ev_stat *>(this));
+    }
+  EV_END_WATCHER (stat, stat)
+  #endif
+
+  EV_BEGIN_WATCHER (idle, idle)
+    void set () { }
+  EV_END_WATCHER (idle, idle)
 
+  EV_BEGIN_WATCHER (prepare, prepare)
+    void set () { }
+  EV_END_WATCHER (prepare, prepare)
+
+  EV_BEGIN_WATCHER (check, check)
+    void set () { }
+  EV_END_WATCHER (check, check)
+
+  #if EV_EMBED_ENABLE
   EV_BEGIN_WATCHER (embed, embed)
     void set (struct ev_loop *loop)
     {
@@ -282,7 +307,12 @@ namespace ev {
       ev_embed_sweep (EV_A_ static_cast<ev_embed *>(this));
     }
   EV_END_WATCHER (embed, embed)
+  #endif
 
+  #if EV_FORK_ENABLE
+  EV_BEGIN_WATCHER (fork, fork)
+    void set () { }
+  EV_END_WATCHER (fork, fork)
   #endif
 
   #undef EV_CONSTRUCT