Beispiel #1
0
class ZMQEventReceiver(EventReceiver):
    def __init__(self, store=None):
        """
        If store is set it should be an EventStore object where we'll save
        events as they arrive
        """
        self.sockets = []
        self.poller = zmq.core.poll.Poller()
        self.mh = MessageHandler()
        self.store = store

    def listen(self, sock):
        """
        Add sock (a zmq socket) to list of sockets we'll listen for events on
        """
        self.sockets.append(sock)
        self.poller.register(sock, zmq.POLLIN)

    def getEvent(self, timeout=None):
        """
        Get the next event. Wait for timeout milli-seconds or forever if timeout is
        None
        """
        socks = self.poller.poll(timeout)
        if not socks:
            return
        msg = socks[0][0].recv()
        d = self.mh.unserialize(msg)
        e = Event.fromDict(d)
        if self.store:
            _id = self.store.addEvent(e)
            e.id = _id
        return e
Beispiel #2
0
 def __init__(self, store=None):
     """
     If store is set it should be an EventStore object where we'll save
     events as they arrive
     """
     self.sockets = []
     self.poller = zmq.core.poll.Poller()
     self.mh = MessageHandler()
     self.store = store
Beispiel #3
0
class ZMQEventPublisher(EventPublisher):
    def __init__(self):
        self.sockets = []
        self.mh = MessageHandler()

    def addSocket(self, sock):
        self.sockets.append(sock)

    def sendEvent(self, e):
        msg = self.mh.serialize(e.asDict())
        for sock in self.sockets:
            sock.send(msg)
Beispiel #4
0
 def __init__(self):
     self.sockets = []
     self.mh = MessageHandler()