Browse Source

make callback dict in EventEmitter private

pull/18/merge
Rossen Georgiev 9 years ago
parent
commit
4e886fa0d8
  1. 21
      steam/util/events.py

21
steam/util/events.py

@ -25,8 +25,9 @@ class EventEmitter(object):
gevent.idle()
if hasattr(self, '_event_callbacks'):
for callback in list(self._event_callbacks[event]):
if hasattr(self, '_EventEmitter__callbacks'):
if event in self.__callbacks:
for callback in list(self.__callbacks[event]):
if isinstance(callback, AsyncResult):
self.remove_listener(event, callback)
@ -53,10 +54,14 @@ class EventEmitter(object):
:type callback: function, method or :py:class:`gevent.event.AsyncResult`
"""
if not hasattr(self, '_event_callbacks'):
if not hasattr(self, '_EventEmitter__callbacks'):
return
self._event_callbacks[event].pop(callback, None)
if event in self.__callbacks:
del self.__callbacks[event][callback]
if not self.__callbacks[event]:
del self.__callbacks[event]
def wait_event(self, event, timeout=None):
"""
@ -93,16 +98,16 @@ class EventEmitter(object):
To listen for any event, use :py:class:`None` as event identifier.
"""
if not hasattr(self, '_event_callbacks'):
self._event_callbacks = defaultdict(dict)
if not hasattr(self, '_EventEmitter__callbacks'):
self.__callbacks = defaultdict(dict)
# when used function
if callback:
self._event_callbacks[event][callback] = None
self.__callbacks[event][callback] = None
return
# as decorator
def wrapper(callback):
self._event_callbacks[event][callback] = None
self.__callbacks[event][callback] = None
return callback
return wrapper

Loading…
Cancel
Save