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

Unified Diff: third_party/twisted_8_1/twisted/words/xish/xmlstream.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
Index: third_party/twisted_8_1/twisted/words/xish/xmlstream.py
diff --git a/third_party/twisted_8_1/twisted/words/xish/xmlstream.py b/third_party/twisted_8_1/twisted/words/xish/xmlstream.py
deleted file mode 100644
index 950a3927803fc30bd6a6845f169475939957e37d..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/words/xish/xmlstream.py
+++ /dev/null
@@ -1,211 +0,0 @@
-# -*- test-case-name: twisted.words.test.test_xmlstream -*-
-#
-# Copyright (c) 2001-2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-XML Stream processing.
-
-An XML Stream is defined as a connection over which two XML documents are
-exchanged during the lifetime of the connection, one for each direction. The
-unit of interaction is a direct child element of the root element (stanza).
-
-The most prominent use of XML Streams is Jabber, but this module is generically
-usable. See Twisted Words for Jabber specific protocol support.
-
-Maintainer: U{Ralph Meijer<mailto:twisted@ralphm.ik.nu>}
-"""
-
-from twisted.internet import protocol
-from twisted.words.xish import domish, utility
-
-STREAM_CONNECTED_EVENT = intern("//event/stream/connected")
-STREAM_START_EVENT = intern("//event/stream/start")
-STREAM_END_EVENT = intern("//event/stream/end")
-STREAM_ERROR_EVENT = intern("//event/stream/error")
-
-class XmlStream(protocol.Protocol, utility.EventDispatcher):
- """ Generic Streaming XML protocol handler.
-
- This protocol handler will parse incoming data as XML and dispatch events
- accordingly. Incoming stanzas can be handled by registering observers using
- XPath-like expressions that are matched against each stanza. See
- L{utility.EventDispatcher} for details.
- """
- def __init__(self):
- utility.EventDispatcher.__init__(self)
- self.stream = None
- self.rawDataOutFn = None
- self.rawDataInFn = None
-
- def _initializeStream(self):
- """ Sets up XML Parser. """
- self.stream = domish.elementStream()
- self.stream.DocumentStartEvent = self.onDocumentStart
- self.stream.ElementEvent = self.onElement
- self.stream.DocumentEndEvent = self.onDocumentEnd
-
- ### --------------------------------------------------------------
- ###
- ### Protocol events
- ###
- ### --------------------------------------------------------------
-
- def connectionMade(self):
- """ Called when a connection is made.
-
- Sets up the XML parser and dispatches the L{STREAM_CONNECTED_EVENT}
- event indicating the connection has been established.
- """
- self._initializeStream()
- self.dispatch(self, STREAM_CONNECTED_EVENT)
-
- def dataReceived(self, data):
- """ Called whenever data is received.
-
- Passes the data to the XML parser. This can result in calls to the
- DOM handlers. If a parse error occurs, the L{STREAM_ERROR_EVENT} event
- is called to allow for cleanup actions, followed by dropping the
- connection.
- """
- try:
- if self.rawDataInFn:
- self.rawDataInFn(data)
- self.stream.parse(data)
- except domish.ParserError:
- self.dispatch(self, STREAM_ERROR_EVENT)
- self.transport.loseConnection()
-
- def connectionLost(self, reason):
- """ Called when the connection is shut down.
-
- Dispatches the L{STREAM_END_EVENT}.
- """
- self.dispatch(self, STREAM_END_EVENT)
- self.stream = None
-
- ### --------------------------------------------------------------
- ###
- ### DOM events
- ###
- ### --------------------------------------------------------------
-
- def onDocumentStart(self, rootElement):
- """ Called whenever the start tag of a root element has been received.
-
- Dispatches the L{STREAM_START_EVENT}.
- """
- self.dispatch(self, STREAM_START_EVENT)
-
- def onElement(self, element):
- """ Called whenever a direct child element of the root element has
- been received.
-
- Dispatches the received element.
- """
- self.dispatch(element)
-
- def onDocumentEnd(self):
- """ Called whenever the end tag of the root element has been received.
-
- Closes the connection. This causes C{connectionLost} being called.
- """
- self.transport.loseConnection()
-
- def setDispatchFn(self, fn):
- """ Set another function to handle elements. """
- self.stream.ElementEvent = fn
-
- def resetDispatchFn(self):
- """ Set the default function (C{onElement}) to handle elements. """
- self.stream.ElementEvent = self.onElement
-
- def send(self, obj):
- """ Send data over the stream.
-
- Sends the given C{obj} over the connection. C{obj} may be instances of
- L{domish.Element}, L{unicode} and L{str}. The first two will be
- properly serialized and/or encoded. L{str} objects must be in UTF-8
- encoding.
-
- Note: because it is easy to make mistakes in maintaining a properly
- encoded L{str} object, it is advised to use L{unicode} objects
- everywhere when dealing with XML Streams.
-
- @param obj: Object to be sent over the stream.
- @type obj: L{domish.Element}, L{domish} or L{str}
-
- """
- if domish.IElement.providedBy(obj):
- obj = obj.toXml()
-
- if isinstance(obj, unicode):
- obj = obj.encode('utf-8')
-
- if self.rawDataOutFn:
- self.rawDataOutFn(obj)
-
- self.transport.write(obj)
-
-
-class XmlStreamFactoryMixin(object):
- """
- XmlStream factory mixin that takes care of event handlers.
-
- To make sure certain event observers are set up before incoming data is
- processed, you can set up bootstrap event observers using C{addBootstrap}.
-
- The C{event} and C{fn} parameters correspond with the C{event} and
- C{observerfn} arguments to L{utility.EventDispatcher.addObserver}.
- """
-
- def __init__(self, *args, **kwargs):
- self.bootstraps = []
- self.args = args
- self.kwargs = kwargs
-
- def buildProtocol(self, addr):
- """
- Create an instance of XmlStream.
-
- The returned instance will have bootstrap event observers registered
- and will proceed to handle input on an incoming connection.
- """
- xs = self.protocol(*self.args, **self.kwargs)
- xs.factory = self
- for event, fn in self.bootstraps:
- xs.addObserver(event, fn)
- return xs
-
- def addBootstrap(self, event, fn):
- """
- Add a bootstrap event handler.
- """
- self.bootstraps.append((event, fn))
-
- def removeBootstrap(self, event, fn):
- """
- Remove a bootstrap event handler.
- """
- self.bootstraps.remove((event, fn))
-
-
-class XmlStreamFactory(XmlStreamFactoryMixin,
- protocol.ReconnectingClientFactory):
- """
- Factory for XmlStream protocol objects as a reconnection client.
- """
-
- protocol = XmlStream
-
- def buildProtocol(self, addr):
- """
- Create a protocol instance.
-
- Overrides L{XmlStreamFactoryMixin.buildProtocol} to work with
- a L{ReconnectingClientFactory}. As this is called upon having an
- connection established, we are resetting the delay for reconnection
- attempts when the connection is lost again.
- """
- self.resetDelay()
- return XmlStreamFactoryMixin.buildProtocol(self, addr)
« no previous file with comments | « third_party/twisted_8_1/twisted/words/xish/utility.py ('k') | third_party/twisted_8_1/twisted/words/xish/xpath.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698