File: fd_endpoint.py

package info (click to toggle)
python-daphne 4.2.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 392 kB
  • sloc: python: 2,593; makefile: 28
file content (24 lines) | stat: -rw-r--r-- 814 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import socket

from twisted.internet import endpoints
from twisted.internet.interfaces import IStreamServerEndpointStringParser
from twisted.plugin import IPlugin
from zope.interface import implementer


@implementer(IPlugin, IStreamServerEndpointStringParser)
class _FDParser:
    prefix = "fd"

    def _parseServer(self, reactor, fileno, domain=socket.AF_INET):
        fileno = int(fileno)
        return endpoints.AdoptedStreamServerEndpoint(reactor, fileno, domain)

    def parseStreamServer(self, reactor, *args, **kwargs):
        # Delegate to another function with a sane signature.  This function has
        # an insane signature to trick zope.interface into believing the
        # interface is correctly implemented.
        return self._parseServer(reactor, *args, **kwargs)


parser = _FDParser()