summaryrefslogtreecommitdiff
path: root/src/leap/common/events/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/common/events/__init__.py')
-rw-r--r--src/leap/common/events/__init__.py31
1 files changed, 28 insertions, 3 deletions
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)