from twisted.internet.defer import Deferred
from twisted.python.failure import Failure
class PendingEvent(object):
def __init__(self):
self.listeners = []
def deferred(self):
d = Deferred()
self.listeners.append(d)
return d
def callback(self, result):
l = self.listeners
self.listeners = []
for d in l:
d.callback(result)
def errback(self, result=None):
if result is None:
result = Failure()
l = self.listeners
self.listeners = []
for d in l:
d.errback(result)
syntax highlighted by Code2HTML, v. 0.9.1