Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Unified Diff: third_party/twisted_8_1/twisted/flow/protocol.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/twisted_8_1/twisted/flow/pipe.py ('k') | third_party/twisted_8_1/twisted/flow/stage.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/twisted_8_1/twisted/flow/protocol.py
diff --git a/third_party/twisted_8_1/twisted/flow/protocol.py b/third_party/twisted_8_1/twisted/flow/protocol.py
deleted file mode 100644
index accad21034b36ede5b4e9b439767f722401b9dce..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/flow/protocol.py
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-#
-# Author: Clark Evans (cce@clarkevans.com)
-#
-
-"""
-flow.protocol
-
-This allows one to use flow module to create protocols, a protocol is actually
-a controller, but it is specialized enough to deserve its own module.
-"""
-
-import types
-from base import *
-from wrap import wrap
-from stage import Callback
-from twisted.internet import protocol
-from twisted.internet.error import ConnectionLost, ConnectionDone
-
-def makeProtocol(controller, baseClass = protocol.Protocol,
- *callbacks, **kwargs):
- """
- Construct a flow based protocol
-
- This takes a base protocol class, and a set of callbacks and creates a
- connection flow based on the two. For example, the following would build a
- simple 'echo' protocol::
-
- from __future__ import generators
- from twisted.internet import reactor, protocol
- from twisted.flow import flow
- PORT = 8392
-
- def echoServer(conn):
- yield conn
- for data in conn:
- conn.write(data)
- yield conn
-
- def echoClient(conn):
- conn.write("hello, world!")
- yield conn
- print "server said: ", conn.next()
- reactor.callLater(0,reactor.stop)
-
- server = protocol.ServerFactory()
- server.protocol = flow.makeProtocol(echoServer)
- reactor.listenTCP(PORT,server)
- client = protocol.ClientFactory()
- client.protocol = flow.makeProtocol(echoClient)
- reactor.connectTCP("localhost", PORT, client)
- reactor.run()
-
- Of course, the best part about flow is that you can nest stages. Therefore
- it is quite easy to make a lineBreaker generator which takes an input
- connection and produces and output connection. Anyway, the code is almost
- identical as far as the client/server is concerned::
-
- # this is a filter generator, it consumes from the
- # incoming connection, and yields results to
- # the next stage, the echoServer below
- def lineBreaker(conn, lineEnding = "\\n"):
- lst = []
- yield conn
- for chunk in conn:
- pos = chunk.find(lineEnding)
- if pos > -1:
- lst.append(chunk[:pos])
- yield "".join(lst)
- lst = [chunk[pos+1:]]
- else:
- lst.append(chunk)
- yield conn
- yield "".join(lst)
-
- # note that this class is only slightly modified,
- # simply comment out the line breaker line to see
- # how the server behaves without the filter...
- def echoServer(conn):
- lines = flow.wrap(lineBreaker(conn))
- yield lines
- for data in lines:
- conn.write(data)
- yield lines
-
- # and the only thing that is changed is that we
- # are sending data in strange chunks, and even
- # putting the last chunk on hold for 2 seconds.
- def echoClient(conn):
- conn.write("Good Morning!\\nPlease ")
- yield conn
- print "server said: ", conn.next()
- conn.write("do not disregard ")
- reactor.callLater(2, conn.write, "this.\\n")
- yield conn
- print "server said: ", conn.next()
- reactor.callLater(0,reactor.stop)
- """
- if not callbacks:
- callbacks = ('dataReceived',)
- trap = kwargs.get("trap", tuple())
- class _Protocol(Controller, Callback, baseClass):
- def __init__(self):
- Callback.__init__(self, *trap)
- setattr(self, callbacks[0], self)
- # TODO: support more than one callback via Concurrent
- def _execute(self, dummy = None):
- cmd = self._controller
- self.write = self.transport.write
- while True:
- instruction = cmd._yield()
- if instruction:
- if isinstance(instruction, CallLater):
- instruction.callLater(self._execute)
- return
- raise Unsupported(instruction)
- if cmd.stop:
- self.transport.loseConnection()
- return
- if cmd.failure:
- self.transport.loseConnection()
- cmd.failure.trap()
- return
- if cmd.results:
- self.transport.writeSequence(cmd.results)
- cmd.results = []
- def connectionMade(self):
- if types.ClassType == type(self.controller):
- self._controller = wrap(self.controller(self))
- else:
- self._controller = wrap(self.controller())
- self._execute()
- def connectionLost(self, reason=protocol.connectionDone):
- if isinstance(reason.value, ConnectionDone) or \
- (isinstance(reason.value, ConnectionLost) and \
- self.finishOnConnectionLost):
- self.finish()
- else:
- self.errback(reason)
- self._execute()
- _Protocol.finishOnConnectionLost = kwargs.get("finishOnConnectionLost",True)
- _Protocol.controller = controller
- return _Protocol
-
-def _NotImplController(protocol):
- raise NotImplementedError
-Protocol = makeProtocol(_NotImplController)
-Protocol.__doc__ = """ A concrete flow.Protocol for inheritance """
-
« no previous file with comments | « third_party/twisted_8_1/twisted/flow/pipe.py ('k') | third_party/twisted_8_1/twisted/flow/stage.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698