o
    Óó·iÁ	  ã                   @   sÄ   d Z ddlZddlZddlmZ ddlmZmZ G dd„ dejƒZ	G dd„ dejƒZ
eejƒG d	d
„ d
ejƒƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZg d¢ZdS )zzImplement standard (and unused) TCP protocols.

These protocols are either provided by inetd, or are not provided at all.
é    N)Úimplementer)Ú
interfacesÚprotocolc                   @   ó   e Zd ZdZdd„ ZdS )ÚEchozC
    As soon as any data is received, write it back (RFC 862).
    c                 C   s   | j  |¡ d S ©N)Ú	transportÚwrite©ÚselfÚdata© r   ú\C:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\twisted/protocols/wire.pyÚdataReceived   s   zEcho.dataReceivedN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      ó    r   c                   @   r   )ÚDiscardz.
    Discard any received data (RFC 863).
    c                 C   ó   d S r   r   r
   r   r   r   r       s   zDiscard.dataReceivedNr   r   r   r   r   r      r   r   c                   @   s4   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚChargenz-
    Generate repeating noise (RFC 864).
    sG   @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&?c                 C   s   | j  | d¡ d S )Nr   )r   ZregisterProducer©r   r   r   r   ÚconnectionMade-   ó   zChargen.connectionMadec                 C   s   | j  | j¡ d S r   )r   r	   Únoiser   r   r   r   ÚresumeProducing0   r   zChargen.resumeProducingc                 C   r   r   r   r   r   r   r   ÚpauseProducing3   ó   zChargen.pauseProducingc                 C   r   r   r   r   r   r   r   ÚstopProducing6   r   zChargen.stopProducingN)	r   r   r   r   r   r   r   r   r    r   r   r   r   r   %   s    r   c                   @   ó    e Zd ZdZdd„ Zdd„ ZdS )ÚQOTDz.
    Return a quote of the day (RFC 865).
    c                 C   ó   | j  |  ¡ ¡ | j  ¡  d S r   )r   r	   ÚgetQuoteÚloseConnectionr   r   r   r   r   ?   ó   zQOTD.connectionMadec                 C   ó   dS )zB
        Return a quote. May be overrriden in subclasses.
        s'   An apple a day keeps the doctor away.
Nr   r   r   r   r   r$   C   ó   zQOTD.getQuoteN)r   r   r   r   r   r$   r   r   r   r   r"   :   ó    r"   c                   @   r!   )ÚWhoz/
    Return list of active users (RFC 866)
    c                 C   r#   r   )r   r	   ÚgetUsersr%   r   r   r   r   r   O   r&   zWho.connectionMadec                 C   r'   )z>
        Return active users. Override in subclasses.
        s   root
Nr   r   r   r   r   r+   S   r(   zWho.getUsersN)r   r   r   r   r   r+   r   r   r   r   r*   J   r)   r*   c                   @   r   )ÚDaytimez8
    Send back the daytime in ASCII form (RFC 867).
    c                 C   s.   | j  t t t ¡ ¡¡d ¡ | j  ¡  d S )Ns   
)r   r	   ÚtimeÚasctimeÚgmtimer%   r   r   r   r   r   _   s    zDaytime.connectionMadeN©r   r   r   r   r   r   r   r   r   r,   Z   r   r,   c                   @   r   )ÚTimez@
    Send back the time in machine readable form (RFC 868).
    c                 C   s.   t  dtt ¡ ƒ¡}| j |¡ | j ¡  d S )Nz!i)ÚstructÚpackÚintr-   r   r	   r%   )r   Úresultr   r   r   r   i   s   zTime.connectionMadeNr0   r   r   r   r   r1   d   r   r1   )r   r   r   r"   r*   r,   r1   )r   r2   r-   Zzope.interfacer   Ztwisted.internetr   r   ÚProtocolr   r   Z	IProducerr   r"   r*   r,   r1   Ú__all__r   r   r   r   Ú<module>   s   	

