12345678910111213141516171819202122232425262728293031323334353637 |
- from __future__ import absolute_import
- import sys
- from ..api import BaseWebSocketHandler
- class EventsApiHandler(BaseWebSocketHandler):
- def open(self, task_id=None):
- BaseWebSocketHandler.open(self)
- self.task_id = task_id
- @classmethod
- def send_message(cls, event):
- for l in cls.listeners:
- if not l.task_id or l.task_id == event['uuid']:
- l.write_message(event)
- EVENTS = ('task-sent', 'task-received', 'task-started', 'task-succeeded',
- 'task-failed', 'task-revoked', 'task-retried')
- def getClassName(eventname):
- return ''.join(map(lambda x: x[0].upper() + x[1:], eventname.split('-')))
- # Dynamically generates handler classes
- thismodule = sys.modules[__name__]
- for event in EVENTS:
- classname = getClassName(event)
- setattr(thismodule, classname,
- type(classname, (EventsApiHandler, ), {'listeners': []}))
- __all__ = list(map(getClassName, EVENTS))
- __all__.append(getClassName)
|