root/trunk/twisted/conch/avatar.py

Revision 17451, 1.3 KB (checked in by foom, 4 years ago)

Remove twisted.components.Interface completely.

Merges: killtpc-1636-2
Authors: glyph, therve, jknight
Reviewer: exarkun

Remove deprecated twisted.python.components functionality:
MetaInterface, Interface, getAdapterClass, and
getAdapterClassWithInheritance.

Also convert all twisted interfaces to use zope.interface directly
(including removing "self" argument), and remove redundant tests.

Line 
1# -*- test-case-name: twisted.conch.test.test_conch -*-
2from interfaces import IConchUser
3from error import ConchError
4from ssh.connection import OPEN_UNKNOWN_CHANNEL_TYPE
5from twisted.python import log
6from zope import interface
7
8class ConchUser:
9    interface.implements(IConchUser)
10
11    def __init__(self):
12        self.channelLookup = {}
13        self.subsystemLookup = {}
14
15    def lookupChannel(self, channelType, windowSize, maxPacket, data):
16        klass = self.channelLookup.get(channelType, None)
17        if not klass:
18            raise ConchError(OPEN_UNKNOWN_CHANNEL_TYPE, "unknown channel")
19        else:
20            return klass(remoteWindow = windowSize,
21                         remoteMaxPacket = maxPacket,
22                         data=data, avatar=self)
23
24    def lookupSubsystem(self, subsystem, data):
25        log.msg(repr(self.subsystemLookup))
26        klass = self.subsystemLookup.get(subsystem, None)
27        if not klass:
28            return False
29        return klass(data, avatar=self)
30
31    def gotGlobalRequest(self, requestType, data):
32        # XXX should this use method dispatch?
33        requestType = requestType.replace('-','_')
34        f = getattr(self, "global_%s" % requestType, None)
35        if not f:
36            return 0
37        return f(data)
Note: See TracBrowser for help on using the browser.