ϪfdZddlmZmZGddeZGddeZGddeZGd d eZGd d eZGd deZ y)z Public Jabber Interfaces. ) Attribute InterfaceceZdZdZy) 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__H/usr/lib/python3/dist-packages/twisted/words/protocols/jabber/ijabber.pyrr sr rc&eZdZdZedZdZy)IInitiatingInitializerzJ Interface for XML stream initializers for the initiating entity. zThe associated XML streamcy)z Initiate the initialization step. May return a deferred when the initialization is done asynchronously. Nr r r r initializez!IInitiatingInitializer.initializer N)rrr r r xmlstreamrr r r rrs9:I r rc eZdZdZedZy)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)rrr r r iqDeferredsr r r rr#s"STKr rcTeZdZdZedZedZdZdZdZ dZ dZ d Z y ) 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 streamcy)za Set the parent of the handler. @type parent: L{IXMPPHandlerCollection} Nr parents r setHandlerParentzIXMPPHandler.setHandlerParentCrr cy)zd Remove the parent of the handler. @type parent: L{IXMPPHandlerCollection} Nr rs r disownHandlerParentz IXMPPHandler.disownHandlerParentJrr cy)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 xss r makeConnectionzIXMPPHandler.makeConnectionQrr cy)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 connectionMadezIXMPPHandler.connectionMade_rr cy)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 connectionInitializedz"IXMPPHandler.connectionInitializedhrr cy)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 )reasons r connectionLostzIXMPPHandler.connectionLostqrr N) rrr r rrrrrr"r$r&r)r r r rr8s=@ AF67I       r rc"eZdZdZdZdZdZy)IXMPPHandlerCollectionz\ Collection of handlers. Contain several handlers and manage their connection. cy)z: Get an iterator over all child handlers. Nr r r r __iter__zIXMPPHandlerCollection.__iter__rr cy)zN Add a child handler. @type handler: L{IXMPPHandler} Nr handlers r addHandlerz!IXMPPHandlerCollection.addHandlerrr cy)zQ Remove a child handler. @type handler: L{IXMPPHandler} Nr r/s r removeHandlerz$IXMPPHandlerCollection.removeHandlerrr N)rrr r r-r1r3r r r r+r+|s    r r+c"eZdZdZdZdZdZy)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. cy)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 s r componentConnectedzIService.componentConnectedrr cy)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 componentDisconnectedzIService.componentDisconnectedrr cy)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 s r transportConnectedzIService.transportConnectedrr N)rrr r r7r9r;r r r r5r5s     r r5N) r zope.interfacerrrrrrr+r5r r r r=s\09  \  UU*A 9A H Y 6% y% r