HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/lib/python3/dist-packages/twisted/words/__pycache__/iwords.cpython-38.pyc
U


W[P!�@spddlmZmZGdd�de�ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGd
d�de�Zddd	dgZdS)
�)�	Interface�	Attributec@s eZdZdZed�Zdd�ZdS)�IProtocolPluginzDInterface for plugins providing an interface to a Words service
    zHA single word describing what kind of interface this is (eg, irc or web)cCsdS)abRetrieve a C{twisted.internet.interfaces.IServerFactory} provider

        @param realm: An object providing C{twisted.cred.portal.IRealm} and
        L{IChatService}, with which service information should be looked up.

        @param portal: An object providing C{twisted.cred.portal.IPortal},
        through which logins should be performed.
        N�)�realmZportalrr�6/usr/lib/python3/dist-packages/twisted/words/iwords.py�
getFactoryszIProtocolPlugin.getFactoryN)�__name__�
__module__�__qualname__�__doc__r�namerrrrrrsrc@sFeZdZed�Zdd�Zddd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dS)�IGroupz$A short string, unique among groups.cCsdS)zLInclude the given user in this group.

        @type user: L{IUser}
        Nr)�userrrr�addsz
IGroup.addNcCsdS)znRemove the given user from this group.

        @type user: L{IUser}
        @type reason: C{unicode}
        Nr)r�reasonrrr�remove"sz
IGroup.removecCsdS)z�Return the number of participants in this group.

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with an C{int} representing the
        number of participants in this group.
        Nrrrrr�size)szIGroup.sizecCsdS)aY
        Broadcast the given message from the given sender to other
        users in group.

        The message is not re-transmitted to the sender.

        @param sender: L{IUser}

        @type recipient: L{IGroup}
        @param recipient: This is probably a wart.  Maybe it will be removed
        in the future.  For now, it should be the group object the message
        is being delivered to.

        @param message: C{dict}

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with None when delivery has been
        attempted for all users.
        Nr�Zsender�	recipient�messagerrr�receive1szIGroup.receivecCsdS)zUChange the metadata associated with this group.

        @type meta: C{dict}
        Nr)�metarrr�setMetadataFszIGroup.setMetadatacCsdS)z7Return an iterator of all users in this group.
        Nrrrrr�	iterusersLszIGroup.iterusers)N)r	r
rrr
rrrrrrrrrrrs
rc@s:eZdZdZed�Zdd�Zdd�Zdd�Zdd
d�Z	d	S)
�IChatClientzAInterface through which IChatService interacts with clients.
    z[A short string, unique among users.  This will be set by the L{IChatService} at login time.cCsdS)a^
        Callback notifying this user of the given message sent by the
        given user.

        This will be invoked whenever another user sends a message to a
        group this user is participating in, or whenever another user sends
        a message directly to this user.  In the former case, C{recipient}
        will be the group to which the message was sent; in the latter, it
        will be the same object as the user who is receiving the message.

        @type sender: L{IUser}
        @type recipient: L{IUser} or L{IGroup}
        @type message: C{dict}

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires when the message has been delivered,
        or which fails in some way.  If the Deferred fails and the message
        was directed at a group, this user will be removed from that group.
        NrrrrrrWszIChatClient.receivecCsdS)z�
        Callback notifying this user that the metadata for the given
        group has changed.

        @type group: L{IGroup}
        @type meta: C{dict}

        @rtype: L{twisted.internet.defer.Deferred}
        Nr)�grouprrrr�groupMetaUpdatelszIChatClient.groupMetaUpdatecCsdS)z�
        Callback notifying this user that the given user has joined
        the given group.

        @type group: L{IGroup}
        @type user: L{IUser}

        @rtype: L{twisted.internet.defer.Deferred}
        Nr)rrrrr�
userJoinedwszIChatClient.userJoinedNcCsdS)a
        Callback notifying this user that the given user has left the
        given group for the given reason.

        @type group: L{IGroup}
        @type user: L{IUser}
        @type reason: C{unicode}

        @rtype: L{twisted.internet.defer.Deferred}
        Nr)rrrrrr�userLeft�szIChatClient.userLeft)N)
r	r
rrrr
rrrrrrrrrQsrc@s`eZdZdZed�Zed�Zed�Zed�Zed�Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�ZdS)�IUserz@Interface through which clients interact with IChatService.
    z_A reference to the Realm to which this user belongs.  Set if and only if the user is logged in.z`A reference to the mind which logged in to this user.  Set if and only if the user is logged in.z#A short string, unique among users.zRA POSIX timestamp indicating the time of the last message received from this user.zBA POSIX timestamp indicating this user's most recent sign on time.cCsdS)z�Invoked by the associated L{IChatService} when login occurs.

        @param realm: The L{IChatService} through which login is occurring.
        @param mind: The mind object used for cred login.
        Nr)r�mindrrr�loggedIn�szIUser.loggedIncCsdS)z�Send the given message to the given user or group.

        @type recipient: Either L{IUser} or L{IGroup}
        @type message: C{dict}
        Nr)rrrrr�send�sz
IUser.sendcCsdS)z|Attempt to join the given group.

        @type group: L{IGroup}
        @rtype: L{twisted.internet.defer.Deferred}
        Nr�rrrr�join�sz
IUser.joincCsdS)z�Discontinue participation in the given group.

        @type group: L{IGroup}
        @rtype: L{twisted.internet.defer.Deferred}
        Nrr$rrr�leave�szIUser.leavecCsdS)zZ
        Return an iterator of all groups of which this user is a
        member.
        Nrrrrr�
itergroups�szIUser.itergroupsN)r	r
rrrrr!r
ZlastMessageZsignOnr"r#r%r&r'rrrrr �sr c@sTeZdZed�Zed�Zed�Zdd�Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�ZdS)�IChatServicez=A short string identifying this chat service (eg, a hostname)zxA boolean indicating whether L{getGroup} should implicitly create groups which are requested but which do not yet exist.zvA boolean indicating whether L{getUser} should implicitly create users which are requested but which do not yet exist.cCsdS)z�Return all groups available on this service.

        @rtype: C{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with a list of C{IGroup} providers.
        Nrrrrrr'�szIChatService.itergroupscCsdS)a�Retrieve the group by the given name.

        @type name: C{str}

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with the group with the given
        name if one exists (or if one is created due to the setting of
        L{IChatService.createGroupOnRequest}, or which fails with
        L{twisted.words.ewords.NoSuchGroup} if no such group exists.
        Nr�r
rrr�getGroup�szIChatService.getGroupcCsdS)a2Create a new group with the given name.

        @type name: C{str}

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with the created group, or
        with fails with L{twisted.words.ewords.DuplicateGroup} if a
        group by that name exists already.
        Nrr)rrr�createGroup�szIChatService.createGroupcCsdS)aERetrieve a group by name.

        Unlike C{getGroup}, this will never implicitly create a group.

        @type name: C{str}

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with the group by the given
        name, or which fails with L{twisted.words.ewords.NoSuchGroup}.
        Nrr)rrr�lookupGroup�szIChatService.lookupGroupcCsdS)a�Retrieve the user by the given name.

        @type name: C{str}

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with the user with the given
        name if one exists (or if one is created due to the setting of
        L{IChatService.createUserOnRequest}, or which fails with
        L{twisted.words.ewords.NoSuchUser} if no such user exists.
        Nrr)rrr�getUser�szIChatService.getUsercCsdS)a.Create a new user with the given name.

        @type name: C{str}

        @rtype: L{twisted.internet.defer.Deferred}
        @return: A Deferred which fires with the created user, or
        with fails with L{twisted.words.ewords.DuplicateUser} if a
        user by that name exists already.
        Nrr)rrr�
createUser�szIChatService.createUserN)
r	r
rrr
ZcreateGroupOnRequestZcreateUserOnRequestr'r*r+r,r-r.rrrrr(�s��r(N)	Zzope.interfacerrrrrr r(�__all__rrrr�<module>s8>.M�