Exemple #1
0
 def __init__(self, xmpp):
     self._xmpp = xmpp
     self._proto = PipeProtocol()
     self._callbacks = {}
     self._id = 0
Exemple #2
0
import os
import sys
import time
import fcntl
import select
import cPickle
import traceback
from parsers import parsers
from pipe_protocol import PipeProtocol

# Set stdin in nonblocking-mode
fd = sys.stdin.fileno()
fl = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)

proto = PipeProtocol()
while True:
    select.select([sys.stdin], [], [])
    data = sys.stdin.read()
    packets = proto.decode(data)
    for packet in packets:
        task = cPickle.loads(packet)
        try:
            res = parsers[task["parser"]].do_task(task)
            if not res:
                res = {}
        except Exception:
            del task["_data"]
            err = "TASK:\n%s\n\nTRACEBACK:\n%s" % (repr(task),
                                                   traceback.format_exc()[:-1])
            sys.stderr.write(err)