§
    ÉtºfÛ  ã                   óÂ   — d Z ddlmZmZ  G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z	dS )z
Public Jabber Interfaces.
é    )Ú	AttributeÚ	Interfacec                   ó   — e Zd ZdZdS )Ú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__© ó    úe/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/words/protocols/jabber/ijabber.pyr   r      s   € € € € € ðð ð ð r   r   c                   ó.   — e Zd ZdZ ed¦  «        Zd„ ZdS )ÚIInitiatingInitializerzJ
    Interface for XML stream initializers for the initiating entity.
    zThe associated XML streamc                  ó   — dS )z‚
        Initiate the initialization step.

        May return a deferred when the initialization is done asynchronously.
        Nr   r   r   r   Ú
initializez!IInitiatingInitializer.initialize   ó   € € € r   N)r   r   r	   r
   r   Ú	xmlstreamr   r   r   r   r   r      s?   € € € € € ðð ð �	Ð9Ñ:Ô:€Iðð ð ð ð r   r   c                   ó(   — e Zd ZdZ ed¦  «        ZdS )Ú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   ÚiqDeferredsr   r   r   r   r   #   s*   € € € € € ðð ð" �)ÐSÑTÔT€K€K€Kr   r   c                   ób   — e Zd ZdZ ed¦  «        Z ed¦  «        Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
S )Ú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 handlerzThe managed XML streamc                 ó   — dS )za
        Set the parent of the handler.

        @type parent: L{IXMPPHandlerCollection}
        Nr   ©Úparents    r   ÚsetHandlerParentzIXMPPHandler.setHandlerParentC   r   r   c                 ó   — dS )zd
        Remove the parent of the handler.

        @type parent: L{IXMPPHandlerCollection}
        Nr   r   s    r   ÚdisownHandlerParentz IXMPPHandler.disownHandlerParentJ   r   r   c                 ó   — dS )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   ÚmakeConnectionzIXMPPHandler.makeConnectionQ   r   r   c                  ó   — dS )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   ÚconnectionMadezIXMPPHandler.connectionMade_   r   r   c                  ó   — dS )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.connectionInitializedh   r   r   c                 ó   — dS )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   ÚconnectionLostzIXMPPHandler.connectionLostq   r   r   N)r   r   r	   r
   r   r   r   r   r   r"   r$   r&   r)   r   r   r   r   r   8   sš   € € € € € ðð ð ˆYÐ@ÑAÔA€FØ�	Ð6Ñ7Ô7€Iðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   r   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚIXMPPHandlerCollectionz\
    Collection of handlers.

    Contain several handlers and manage their connection.
    c                  ó   — dS )z:
        Get an iterator over all child handlers.
        Nr   r   r   r   Ú__iter__zIXMPPHandlerCollection.__iter__ƒ   r   r   c                 ó   — dS )zN
        Add a child handler.

        @type handler: L{IXMPPHandler}
        Nr   ©Úhandlers    r   Ú
addHandlerz!IXMPPHandlerCollection.addHandlerˆ   r   r   c                 ó   — dS )zQ
        Remove a child handler.

        @type handler: L{IXMPPHandler}
        Nr   r/   s    r   ÚremoveHandlerz$IXMPPHandlerCollection.removeHandler�   r   r   N)r   r   r	   r
   r-   r1   r3   r   r   r   r+   r+   |   sK   € € € € € ðð ðð ð ð
ð ð ðð ð ð ð r   r+   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú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                 ó   — dS )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   ÚcomponentConnectedzIService.componentConnectedŸ   r   r   c                  ó   — dS )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   ÚcomponentDisconnectedzIService.componentDisconnected«   r   r   c                 ó   — dS )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   ÚtransportConnectedzIService.transportConnected³   r   r   N)r   r   r	   r
   r7   r9   r;   r   r   r   r5   r5   —   sK   € € € € € ðð ð
ð 
ð 
ðð ð ð	ð 	ð 	ð 	ð 	r   r5   N)
r
   Úzope.interfacer   r   r   r   r   r   r+   r5   r   r   r   ú<module>r=      s@  ððð ð 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð �9ñ ô ð ðð ð ð ð ˜\ñ ô ð ðUð Uð Uð Uð U˜ñ Uô Uð Uð*Að Að Að Að A�9ñ Aô Að AðHð ð ð ð ˜Yñ ô ð ð6%ð %ð %ð %ð %ˆyñ %ô %ð %ð %ð %r   