XEP-0198: Stream Management#

class slixmpp.plugins.xep_0198.XEP_0198(xmpp, config=None)[source]#

XEP-0198: Stream Management

disconnected(event)[source]#

Reset enabled state until we can resume/reenable.

request_ack(e=None)[source]#

Request an ack from the server.

send_ack()[source]#

Send the current ack count to the server.

session_end(event)[source]#

Reset stream management state.

Stanza elements#

class slixmpp.plugins.xep_0198.stanza.Ack(stream=None, xml=None, stype=None, sto=None, sfrom=None, sid=None, parent=None, recv=False)[source]#
get_h()[source]#
interfaces: ClassVar[Set[str]] = {'h'}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

name: ClassVar[str] = 'a'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The default XMPP client namespace

set_h(val)[source]#
setup(xml)[source]#

Initialize the stanza’s XML contents.

Will return True if XML was generated according to the stanza’s definition instead of building a stanza object from an existing XML object.

Parameters

xml – An existing XML object to use for the stanza’s content instead of generating new XML.

class slixmpp.plugins.xep_0198.stanza.Enable(stream=None, xml=None, stype=None, sto=None, sfrom=None, sid=None, parent=None, recv=False)[source]#
get_resume()[source]#
interfaces: ClassVar[Set[str]] = {'max', 'resume'}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

name: ClassVar[str] = 'enable'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The default XMPP client namespace

set_resume(val)[source]#
setup(xml)[source]#

Initialize the stanza’s XML contents.

Will return True if XML was generated according to the stanza’s definition instead of building a stanza object from an existing XML object.

Parameters

xml – An existing XML object to use for the stanza’s content instead of generating new XML.

class slixmpp.plugins.xep_0198.stanza.Enabled(stream=None, xml=None, stype=None, sto=None, sfrom=None, sid=None, parent=None, recv=False)[source]#
get_resume()[source]#
interfaces: ClassVar[Set[str]] = {'id', 'location', 'max', 'resume'}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

name: ClassVar[str] = 'enabled'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The default XMPP client namespace

set_resume(val)[source]#
setup(xml)[source]#

Initialize the stanza’s XML contents.

Will return True if XML was generated according to the stanza’s definition instead of building a stanza object from an existing XML object.

Parameters

xml – An existing XML object to use for the stanza’s content instead of generating new XML.

class slixmpp.plugins.xep_0198.stanza.Failed(stream=None, xml=None, stype=None, sto=None, sfrom=None, sid=None, parent=None, recv=False)[source]#
interfaces: ClassVar[Set[str]] = {}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

name: ClassVar[str] = 'failed'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The default XMPP client namespace

setup(xml)[source]#

Initialize the stanza’s XML contents.

Will return True if XML was generated according to the stanza’s definition instead of building a stanza object from an existing XML object.

Parameters

xml – An existing XML object to use for the stanza’s content instead of generating new XML.

class slixmpp.plugins.xep_0198.stanza.RequestAck(stream=None, xml=None, stype=None, sto=None, sfrom=None, sid=None, parent=None, recv=False)[source]#
interfaces: ClassVar[Set[str]] = {}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

name: ClassVar[str] = 'r'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The default XMPP client namespace

setup(xml)[source]#

Initialize the stanza’s XML contents.

Will return True if XML was generated according to the stanza’s definition instead of building a stanza object from an existing XML object.

Parameters

xml – An existing XML object to use for the stanza’s content instead of generating new XML.

class slixmpp.plugins.xep_0198.stanza.Resume(stream=None, xml=None, stype=None, sto=None, sfrom=None, sid=None, parent=None, recv=False)[source]#
get_h()[source]#
interfaces: ClassVar[Set[str]] = {'h', 'previd'}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

name: ClassVar[str] = 'resume'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The default XMPP client namespace

set_h(val)[source]#
setup(xml)[source]#

Initialize the stanza’s XML contents.

Will return True if XML was generated according to the stanza’s definition instead of building a stanza object from an existing XML object.

Parameters

xml – An existing XML object to use for the stanza’s content instead of generating new XML.

class slixmpp.plugins.xep_0198.stanza.Resumed(stream=None, xml=None, stype=None, sto=None, sfrom=None, sid=None, parent=None, recv=False)[source]#
get_h()[source]#
interfaces: ClassVar[Set[str]] = {'h', 'previd'}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

name: ClassVar[str] = 'resumed'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The default XMPP client namespace

set_h(val)[source]#
setup(xml)[source]#

Initialize the stanza’s XML contents.

Will return True if XML was generated according to the stanza’s definition instead of building a stanza object from an existing XML object.

Parameters

xml – An existing XML object to use for the stanza’s content instead of generating new XML.

class slixmpp.plugins.xep_0198.stanza.StreamManagement(xml=None, parent=None)[source]#
del_optional()[source]#
del_required()[source]#
get_optional()[source]#
get_required()[source]#
interfaces: ClassVar[Set[str]] = {'optional', 'required'}#

The set of keys that the stanza provides for accessing and manipulating the underlying XML object. This set may be augmented with the plugin_attrib value of any registered stanza plugins.

iterables: List[ElementBase]#

A list of child stanzas whose class is included in plugin_iterables.

loaded_plugins: Set[str]#
name: ClassVar[str] = 'sm'#

The XML tag name of the element, not including any namespace prefixes. For example, an ElementBase object for <message /> would use name = 'message'.

namespace: str = 'urn:xmpp:sm:3'#

The XML namespace for the element. Given <foo xmlns="bar" />, then namespace = "bar" should be used. The default namespace is jabber:client since this is being used in an XMPP library.

parent: Optional[ReferenceType[ElementBase]]#

A weakref.weakref to the parent stanza, if there is one. If not, then parent is None.

plugin_attrib: ClassVar[str] = 'sm'#

For ElementBase subclasses which are intended to be used as plugins, the plugin_attrib value defines the plugin name. Plugins may be accessed by using the plugin_attrib value as the interface. An example using plugin_attrib = 'foo':

register_stanza_plugin(Message, FooPlugin)
msg = Message()
msg['foo']['an_interface_from_the_foo_plugin']
plugins: Dict[Tuple[str, Optional[str]], ElementBase]#

An ordered dictionary of plugin stanzas, mapped by their plugin_attrib value.

set_optional(val)[source]#
set_required(val)[source]#
tag: str#

The name of the tag for the stanza’s root element. It is the same as calling tag_name() and is formatted as '{namespace}elementname'.

xml: ET.Element#

The underlying XML object for the stanza. It is a standard xml.etree.ElementTree object.