o b@sxdZddlmZmZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZ dS)z Public Jabber Interfaces. ) Attribute Interfacec@seZdZdZdS) 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 src@s eZdZdZedZddZdS)IInitiatingInitializerzJ Interface for XML stream initializers for the initiating entity. zThe associated XML streamcCdS)z Initiate the initialization step. May return a deferred when the initialization is done asynchronously. Nr r r r r initializez!IInitiatingInitializer.initializeN)rrrrr xmlstreamr r r r r r s r c@seZdZdZedZdS)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)rrrrr iqDeferredsr r r r r#s rc@sPeZdZdZedZedZddZddZdd Z d d Z d d Z ddZ dS) 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 streamcCr )za Set the parent of the handler. @type parent: L{IXMPPHandlerCollection} Nr parentr r r setHandlerParentCrzIXMPPHandler.setHandlerParentcCr )zd Remove the parent of the handler. @type parent: L{IXMPPHandlerCollection} Nr rr r r disownHandlerParentJrz IXMPPHandler.disownHandlerParentcCr )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 xsr r r makeConnectionQrzIXMPPHandler.makeConnectioncCr )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 connectionMade_rzIXMPPHandler.connectionMadecCr )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 connectionInitializedhrz"IXMPPHandler.connectionInitializedcCr )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 connectionLostqrzIXMPPHandler.connectionLostN) rrrrrrrrrrrrrr r r r r8s rc@(eZdZdZddZddZddZdS) IXMPPHandlerCollectionz\ Collection of handlers. Contain several handlers and manage their connection. cCr )z: Get an iterator over all child handlers. Nr r r r r __iter__rzIXMPPHandlerCollection.__iter__cCr )zN Add a child handler. @type handler: L{IXMPPHandler} Nr handlerr r r addHandlerrz!IXMPPHandlerCollection.addHandlercCr )zQ Remove a child handler. @type handler: L{IXMPPHandler} Nr r!r r r removeHandlerrz$IXMPPHandlerCollection.removeHandlerN)rrrrr r#r$r r r r r|s  rc@r) 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. cCr )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 rr r r componentConnectedrzIService.componentConnectedcCr )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 componentDisconnectedrzIService.componentDisconnectedcCr )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 rr r r transportConnectedrzIService.transportConnectedN)rrrrr&r'r(r r r r r%s  r%N) rzope.interfacerrrr rrrr%r r r r s D