pvl/syslog/event.py
changeset 31 3e6d0feb115c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pvl/syslog/event.py	Wed Oct 24 21:02:33 2012 +0300
@@ -0,0 +1,45 @@
+import gevent.core as event
+
+class EventBase (object) :
+    """
+        libevent-style event base.
+
+        XXX: just a wrapper around the gevent libevent bindings, uses implict state..
+    """
+
+    def __init__ (self) :
+        event.init()
+
+    def timer (self, timeout, cb) :
+        return event.event(0, 0, timeout, cb)
+
+    def read (self, fd, cb, timeout=-1) :
+        return event.event(event.EV_READ, fd, cb)
+
+    def main (self) :
+        """
+            Run mainloop until exit.
+        """
+
+        event.dispatch()
+
+class SyslogSource (object) :
+    def __init__ (self, source, parser) :
+        self.source = source
+        self.parser = parser
+    
+    def event (self, event, evtype) :
+        """
+            Process source
+        """
+
+        # directly iter across source
+        for item in self.parser.process(self.source) :
+            yield item
+ 
+    def process (self, item) :
+        """
+            Handle item from syslog.
+        """
+
+