U
    .WjÁ	  ã                   @   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ddd
ddddg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                   @   s   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   úac:\users\psant\downloads\hotstarbackend\school\venv38\Lib\site-packages\twisted/protocols/wire.pyÚdataReceived   s    zEcho.dataReceivedN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s   r   c                   @   s   e Zd ZdZdd„ ZdS )ÚDiscardz.
    Discard any received data (RFC 863).
    c                 C   s   d S r   r   r	   r   r   r   r       s    zDiscard.dataReceivedNr   r   r   r   r   r      s   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-   s    zChargen.connectionMadec                 C   s   | j  | j¡ d S r   )r   r   Únoiser   r   r   r   ÚresumeProducing0   s    zChargen.resumeProducingc                 C   s   d S r   r   r   r   r   r   ÚpauseProducing3   s    zChargen.pauseProducingc                 C   s   d S r   r   r   r   r   r   ÚstopProducing6   s    zChargen.stopProducingN)	r   r   r   r   r   r   r   r   r   r   r   r   r   r   %   s   r   c                   @   s    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   s   | j  |  ¡ ¡ | j  ¡  d S r   )r   r   ÚgetQuoteÚloseConnectionr   r   r   r   r   ?   s    zQOTD.connectionMadec                 C   s   dS )zB
        Return a quote. May be overrriden in subclasses.
        s'   An apple a day keeps the doctor away.
r   r   r   r   r   r   C   s    zQOTD.getQuoteN)r   r   r   r   r   r   r   r   r   r   r   :   s   r   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚWhoz/
    Return list of active users (RFC 866)
    c                 C   s   | j  |  ¡ ¡ | j  ¡  d S r   )r   r   ÚgetUsersr   r   r   r   r   r   O   s    zWho.connectionMadec                 C   s   dS )z>
        Return active users. Override in subclasses.
        s   root
r   r   r   r   r   r    S   s    zWho.getUsersN)r   r   r   r   r   r    r   r   r   r   r   J   s   r   c                   @   s   e Zd ZdZdd„ ZdS )Ú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   s   r!   c                   @   s   e Zd ZdZdd„ ZdS )Ú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.connectionMadeNr%   r   r   r   r   r&   d   s   r&   )r   r'   r"   Zzope.interfacer   Ztwisted.internetr   r   ÚProtocolr   r   Z	IProducerr   r   r   r!   r&   Ú__all__r   r   r   r   Ú<module>   s   	

