]> git.llucax.com Git - software/libev.git/blobdiff - ev++.h
*** empty log message ***
[software/libev.git] / ev++.h
diff --git a/ev++.h b/ev++.h
index 82b65b9453f656e687e736306e90fe842e7d76e7..0f51bd5fce2950b807a94a65b25fda12fddb7934 100644 (file)
--- a/ev++.h
+++ b/ev++.h
@@ -1,7 +1,7 @@
 #ifndef EVPP_H__
 #define EVPP_H__
 
-/* work in progress, don't use unless you know what you are doing */
+#include "ev.h"
 
 namespace ev {
 
@@ -44,8 +44,6 @@ namespace ev {
     }
   };
 
-  #include "ev.h"
-
   enum {
     UNDEF    = EV_UNDEF,
     NONE     = EV_NONE,
@@ -219,12 +217,15 @@ namespace ev {
   #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)
@@ -259,8 +260,34 @@ namespace ev {
     }
   EV_END_WATCHER (child, child)
 
+  #if EV_MULTIPLICITY
+
+  EV_BEGIN_WATCHER (embed, embed)
+    void set (struct ev_loop *loop)
+    {
+      int active = is_active ();
+      if (active) stop ();
+      ev_embed_set (static_cast<ev_embed *>(this), loop);
+      if (active) start ();
+    }
+
+    void start (struct ev_loop *embedded_loop)
+    {
+      set (embedded_loop);
+      start ();
+    }
+
+    void sweep ()
+    {
+      ev_embed_sweep (EV_A_ static_cast<ev_embed *>(this));
+    }
+  EV_END_WATCHER (embed, embed)
+
+  #endif
+
   #undef EV_CONSTRUCT
   #undef EV_BEGIN_WATCHER
+  #undef EV_END_WATCHER
 }
 
 #endif