Go to the latest version of this document.

# ``twisted`.`words`.`protocols`.`jabber`.`xmlstream`.`XmlStream``

class documentation

`class XmlStream(xmlstream.XmlStream): (source)`

Constructor: `XmlStream(authenticator)`

View In Hierarchy

XMPP XML Stream protocol handler.

Method | `__init__` | Undocumented
Method | `connectionMade` | Called when a connection is made.
Method | `onDocumentStart` | Called when the stream header has been received.
Method | `onStreamError` | Called when a stream:error element has been received.
Method | `reset` | Reset XML Stream.
Method | `send` | Send data over the stream.
Method | `sendFooter` | Send stream footer.
Method | `sendHeader` | Send stream header.
Method | `sendStreamError` | Send stream level error.
Instance Variable | `authenticator` | associated authenticator that uses `initializers` to initialize the XML stream.
Instance Variable | `features` | map of (uri, name) to stream features element received from the receiving entity.
Instance Variable | `initializers` | list of stream initializer objects
Instance Variable | `initiating` | True if this is the initiating stream
Instance Variable | `namespace` | default namespace URI for stream
Instance Variable | `otherEntity` | JID of the peer entity
Instance Variable | `prefixes` | map of URI to prefixes that are to appear on stream header.
Instance Variable | `sid` | session identifier
Instance Variable | `thisEntity` | JID of this entity
Instance Variable | `version` | XML stream version as a tuple (major, minor). Initially, this is set to the minimally supported version. Upon receiving the stream header of the peer, it is set to the minimum of that value and the version on the received header.
Method | `_callLater` | Undocumented
Instance Variable | `_headerSent` | Undocumented

Inherited from `XmlStream`:

Method | `connectionLost` | Called when the connection is shut down.
Method | `dataReceived` | Called whenever data is received.
Method | `onDocumentEnd` | Called whenever the end tag of the root element has been received.
Method | `onElement` | Called whenever a direct child element of the root element has been received.
Method | `resetDispatchFn` | Set the default function (`onElement`) to handle elements.
Method | `setDispatchFn` | Set another function to handle elements.
Instance Variable | `rawDataInFn` | Undocumented
Instance Variable | `rawDataOutFn` | Undocumented
Instance Variable | `stream` | Undocumented
Method | `_initializeStream` | Sets up XML Parser.

Inherited from `Protocol` (via `XmlStream`):

Method | `logPrefix` | Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable | `factory` | Undocumented

Inherited from `BaseProtocol` (via `XmlStream`, `Protocol`):

Method | `makeConnection` | Make a connection to a transport and a server.
Instance Variable | `connected` | Undocumented
Instance Variable | `transport` | Undocumented

Inherited from `EventDispatcher` (via `XmlStream`, `Protocol`, `BaseProtocol`):

Method | `addObserver` | Register an observer for an event.
Method | `addOnetimeObserver` | Register a one-time observer for an event.
Method | `dispatch` | Dispatch an event.
Method | `removeObserver` | Remove callable as observer for an event.
Instance Variable | `prefix` | Undocumented
Method | `_addObserver` | Undocumented
Method | `_getEventAndObservers` | Undocumented
Instance Variable | `_dispatchDepth` | Undocumented
Instance Variable | `_eventObservers` | Undocumented
Instance Variable | `_updateQueue` | Undocumented
Instance Variable | `_xpathObservers` | Undocumented

def __init__(self, authenticator): (source)
overrides `twisted.words.xish.xmlstream.XmlStream.__init__`

Undocumented

def connectionMade(self): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.words.xish.xmlstream.XmlStream.connectionMade`

Called when a connection is made.

Notifies the authenticator when a connection has been made.

def onDocumentStart(self, rootElement): (source)
overrides `twisted.words.xish.xmlstream.XmlStream.onDocumentStart`

Called when the stream header has been received.

Extracts the header's `id` and `version` attributes from the root element. The `id` attribute is stored in our `sid` attribute and the `version` attribute is parsed and the minimum of the version we sent and the parsed `version` attribute is stored as a tuple (major, minor) in this class' `version` attribute. If no `version` attribute was present, we assume version 0.0.

If appropriate (we are the initiating stream and the minimum of our and the other party's version is at least 1.0), a one-time observer is registered for getting the stream features. The registered function is `onFeatures`.

Ultimately, the authenticator's `streamStarted` method will be called.

Parameters
rootElement:`domish.Element` | The root element.

def onStreamError(self, errelem): (source)

Called when a stream:error element has been received.

Dispatches a `STREAM_ERROR_EVENT` event with the error element to allow for cleanup actions and drops the connection.

Parameters
errelem:`domish.Element` | The received error element.

def reset(self): (source)

Reset XML Stream.

Resets the XML Parser for incoming data. This is to be used after successfully negotiating a new layer, e.g. TLS and SASL. Note that registered event observers will continue to be in place.

def send(self, obj): (source)
overrides `twisted.words.xish.xmlstream.XmlStream.send`

Send data over the stream.

This overrides `xmlstream.XmlStream.send` to use the default namespace of the stream header when serializing `domish.IElement`s. It is assumed that if you pass an object that provides `domish.IElement`, it represents a direct child of the stream's root element.

def sendFooter(self): (source)

Send stream footer.

def sendHeader(self): (source)

Send stream header.

def sendStreamError(self, streamError): (source)

Send stream level error.

If we are the receiving entity, and haven't sent the header yet, we sent one first.

After sending the stream error, the stream is closed and the transport connection dropped.

Parameters
streamError:`error.StreamError` | stream error instance

authenticator = (source)

associated authenticator that uses `initializers` to initialize the XML stream.

features: `dict` of (`unicode`, `unicode`) to `domish.Element`. = (source)

map of (uri, name) to stream features element received from the receiving entity.

initializers: `list` of objects that provide `IInitializer` = (source)

list of stream initializer objects

initiating: `bool` = (source)

True if this is the initiating stream

namespace: `unicode` = (source)

default namespace URI for stream

otherEntity: `JID` = (source)

JID of the peer entity

prefixes: `dict` of `unicode` to `unicode` = (source)

map of URI to prefixes that are to appear on stream header.

sid: `unicode` = (source)

session identifier

thisEntity: `JID` = (source)

JID of this entity

version: (`int`, `int`) = (source)

XML stream version as a tuple (major, minor). Initially, this is set to the minimally supported version. Upon receiving the stream header of the peer, it is set to the minimum of that value and the version on the received header.

def _callLater(self, *args, **kwargs): (source)

Undocumented

_headerSent: `bool` = (source)

Undocumented