File: //usr/lib/python3/dist-packages/twisted/words/protocols/jabber/__pycache__/ijabber.cpython-38.pyc
U
W[ � @ sx d Z ddlmZmZ G dd� de�ZG dd� de�ZG dd� de�ZG d d
� d
e�ZG dd� de�ZG d
d� de�Z dS )z
Public Jabber Interfaces.
� )� Attribute� Interfacec @ s e Zd ZdZdS )�IInitializerz�
Interface for XML stream initializers.
Initializers perform a step in getting the XML stream ready to be
used for the exchange of XML stanzas.
N)�__name__�
__module__�__qualname__�__doc__� r r �H/usr/lib/python3/dist-packages/twisted/words/protocols/jabber/ijabber.pyr
s r c @ s e Zd ZdZed�Zdd� ZdS )�IInitiatingInitializerzJ
Interface for XML stream initializers for the initiating entity.
zThe associated XML streamc C s dS )z�
Initiate the initialization step.
May return a deferred when the initialization is done asynchronously.
Nr r r r r
�
initialize s z!IInitiatingInitializer.initializeN)r r r r r � xmlstreamr r r r r
r s r c @ s e Zd ZdZed�ZdS )�IIQResponseTrackera�
IQ response tracker interface.
The XMPP stanza C{iq} has a request-response nature that fits
naturally with deferreds. You send out a request and when the response
comes back a deferred is fired.
The L{twisted.words.protocols.jabber.client.IQ} class implements a C{send}
method that returns a deferred. This deferred is put in a dictionary that
is kept in an L{XmlStream} object, keyed by the request stanzas C{id}
attribute.
An object providing this interface (usually an instance of L{XmlStream}),
keeps the said dictionary and sets observers on the iq stanzas of type
C{result} and C{error} and lets the callback fire the associated deferred.
z2Dictionary of deferreds waiting for an iq responseN)r r r r r ZiqDeferredsr r r r
r $ s r c @ sP e Zd ZdZed�Zed�Zdd� Zdd� Zdd � Z d
d� Z
dd
� Zdd� ZdS )�IXMPPHandlerz�
Interface for XMPP protocol handlers.
Objects that provide this interface can be added to a stream manager to
handle of (part of) an XMPP extension protocol.
z#XML stream manager for this handlerzThe managed XML streamc C s dS )za
Set the parent of the handler.
@type parent: L{IXMPPHandlerCollection}
Nr ��parentr r r
�setHandlerParentE s zIXMPPHandler.setHandlerParentc C s dS )zd
Remove the parent of the handler.
@type parent: L{IXMPPHandlerCollection}
Nr r r r r
�disownHandlerParentM s z IXMPPHandler.disownHandlerParentc C s dS )aj
A connection over the underlying transport of the XML stream has been
established.
At this point, no traffic has been exchanged over the XML stream
given in C{xs}.
This should setup L{xmlstream} and call L{connectionMade}.
@type xs:
L{twisted.words.protocols.jabber.xmlstream.XmlStream}
Nr �Zxsr r r
�makeConnectionU s zIXMPPHandler.makeConnectionc C s dS )z�
Called after a connection has been established.
This method can be used to change properties of the XML Stream, its
authenticator or the stream manager prior to stream initialization
(including authentication).
Nr r r r r
�connectionMaded s zIXMPPHandler.connectionMadec C s dS )a
The XML stream has been initialized.
At this point, authentication was successful, and XML stanzas can be
exchanged over the XML stream L{xmlstream}. This method can be
used to setup observers for incoming stanzas.
Nr r r r r
�connectionInitializedn s z"IXMPPHandler.connectionInitializedc C s dS )z�
The XML stream has been closed.
Subsequent use of C{parent.send} will result in data being queued
until a new connection has been established.
@type reason: L{twisted.python.failure.Failure}
Nr )�reasonr r r
�connectionLostx s zIXMPPHandler.connectionLostN)
r r r r r r r
r r r r r r r r r r
r : s
r c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �IXMPPHandlerCollectionz\
Collection of handlers.
Contain several handlers and manage their connection.
c C s dS )z:
Get an iterator over all child handlers.
Nr r r r r
�__iter__� s zIXMPPHandlerCollection.__iter__c C s dS )zN
Add a child handler.
@type handler: L{IXMPPHandler}
Nr �Zhandlerr r r
�
addHandler� s z!IXMPPHandlerCollection.addHandlerc C s dS )zQ
Remove a child handler.
@type handler: L{IXMPPHandler}
Nr r r r r
�
removeHandler� s z$IXMPPHandlerCollection.removeHandlerN)r r r r r r r r r r r
r � s r c @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �IServicez�
External server-side component service interface.
Services that provide this interface can be added to L{ServiceManager} to
implement (part of) the functionality of the server-side component.
c C s dS )ax
Parent component has established a connection.
At this point, authentication was successful, and XML stanzas
can be exchanged over the XML stream C{xs}. This method can be used
to setup observers for incoming stanzas.
@param xs: XML Stream that represents the established connection.
@type xs: L{xmlstream.XmlStream}
Nr r r r r
�componentConnected� s zIService.componentConnectedc C s dS )z�
Parent component has lost the connection to the Jabber server.
Subsequent use of C{self.parent.send} will result in data being
queued until a new connection has been established.
Nr r r r r
�componentDisconnected� s zIService.componentDisconnectedc C s dS )ay
Parent component has established a connection over the underlying
transport.
At this point, no traffic has been exchanged over the XML stream. This
method can be used to change properties of the XML Stream (in C{xs}),
the service manager or it's authenticator prior to stream
initialization (including authentication).
Nr r r r r
�transportConnected� s zIService.transportConnectedN)r r r r r r! r"