--- /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.
+ """
+
+