Add support for un-registering the on_recv

This commit is contained in:
Thomas Jackson 2015-03-13 09:46:55 -07:00
parent 1392cd6638
commit e11a914cb2

View File

@ -250,15 +250,23 @@ class ZeroMQPubChannel(salt.transport.mixins.auth.AESPubClientMixin, salt.transp
'message from master').format(len(messages_len)))
return self._decode_payload(payload)
@property
def stream(self):
if not hasattr(self, '_stream'):
self._stream = zmq.eventloop.zmqstream.ZMQStream(self._socket, io_loop=self.io_loop)
return self._stream
def on_recv(self, callback):
'''
Register a callback for recieved messages (that we didn't initiate)
'''
self.stream = zmq.eventloop.zmqstream.ZMQStream(self._socket, io_loop=self.io_loop)
if callback is None:
return self.stream.on_recv(None)
def wrap_callback(messages):
payload = self._decode_messages(messages)
callback(payload)
self.stream.on_recv(wrap_callback)
return self.stream.on_recv(wrap_callback)
def recv(self, timeout=0):
'''