From a08b198d889396d25182bb9716817311bcc3be47 Mon Sep 17 00:00:00 2001 From: drebs Date: Sun, 9 Jun 2013 14:16:33 -0300 Subject: Add possibility of unregistering in events mechanism. --- src/leap/common/events/__init__.py | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'src/leap/common/events/__init__.py') diff --git a/src/leap/common/events/__init__.py b/src/leap/common/events/__init__.py index 9fc93ee..12416e4 100644 --- a/src/leap/common/events/__init__.py +++ b/src/leap/common/events/__init__.py @@ -24,7 +24,7 @@ import socket from leap.common.events import ( - events_pb2, + events_pb2 as proto, server, component, daemon, @@ -61,12 +61,37 @@ def register(signal, callback, uid=None, replace=False, reqcbk=None, :type timeout: int :return: the response from server for synch calls or nothing for asynch - calls + calls. :rtype: leap.common.events.events_pb2.EventsResponse or None """ return component.register(signal, callback, uid, replace, reqcbk, timeout) +def unregister(signal, uid=None, reqcbk=None, timeout=1000): + """ + Unregister a callback. + + If C{uid} is specified, unregisters only the callback identified by that + unique id. Otherwise, unregisters all callbacks registered for C{signal}. + + :param signal: the signal that causes the callback to be launched + :type signal: int (see the `events.proto` file) + :param uid: a unique id for the callback + :type uid: int + :param reqcbk: a callback to be called when a response from server is + received + :type reqcbk: function + callback(leap.common.events.events_pb2.EventResponse) + :param timeout: the timeout for synch calls + :type timeout: int + + :return: the response from server for synch calls or nothing for asynch + calls. + :rtype: leap.common.events.events_pb2.EventsResponse or None + """ + return component.unregister(signal, uid, reqcbk, timeout) + + def signal(signal, content="", mac_method="", mac="", reqcbk=None, timeout=1000): """ @@ -94,7 +119,7 @@ def signal(signal, content="", mac_method="", mac="", reqcbk=None, :type timeout: int :return: the response from server for synch calls or nothing for asynch - calls + calls. :rtype: leap.common.events.events_pb2.EventsResponse or None """ return component.signal(signal, content, mac_method, mac, reqcbk, timeout) -- cgit v1.2.3