tornado_websockets.modules.module — Django-tornado-websockets 0.2.1 documentation

# Source code for tornado_websockets.modules.module

    import abc

    import six

    @six.add_metaclass(abc.ABCMeta)
    class Module(object):
        @abc.abstractmethod
        def __init__(self, name=''):
            self.name = 'module_' + name
            self._websocket = None  # will be initialized with WebSocket.bind(Module)

        @abc.abstractmethod
        def initialize(self):
            pass

        @property
        def context(self):
            return self._websocket.context

        @context.setter
        def context(self, value):
            self._websocket.context = value

        def on(self, callback):
            """
                Shortcut for :meth:`tornado_websockets.websocket.WebSocket.on` decorator,
                but with a specific prefix for each module.

                :param callback: function or a class method.
                :type callback: Callable
                :return: ``callback`` parameter.
            """

            callback.__name__ = self.name + '_' + callback.__name__

            return self._websocket.on(callback)

        def emit(self, event, data=None):
            """
                Shortcut for :meth:`tornado_websockets.websocket.WebSocket.emit` method,
                but with a specific prefix for each module.
            """

            return self._websocket.emit(self.name + '_' + event, data)