Jetzt will ich aber B austauschbar machen (so dass mein protocol auch über zb. websocket (C) läuft).
Bsp.
Code: Alles auswählen
class ProtoB(Protocol):
def dataReceived(self, data):
self.recv(data)
def send(self, data):
self.transport.write(data)
class EchoA(ProtoB):
def recv(self, data):
self.send(data)
Man kann auch das eine Objekt an das andere übergeben, aber so richtig schön ist das wegen der gegenseitigen Abhängigkeit auch nicht.
A la:
Code: Alles auswählen
class EchoA:
def recv(self, data):
self.send(data)
class ProtoB(Protocol):
def __init__(self, proto=EchoA()):
self.proto = proto
self.proto.send = self.send
def dataReceived(self, data):
self.proto.recv(data)
def send(self, data):
self.transport.write(data)
Da gibt's doch sicher bei Twisted irgendein standard Pattern wie man das ordentlich macht. Kann mir da jemand helfen?