o
    4˜ŽjP  ã                   @   sp   d dl Z d dlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 er(ddlmZ eeefZG dd	„ d	e jƒZdS )
é    N)ÚTYPE_CHECKINGÚAnyÚcasté   )ÚClientConnectionResetError)Úset_exception)Útcp_nodelay)Ú
HttpParserc                   @   sÄ   e Zd ZdZ	d!dejddddfdd„Zedefd	d
„ƒZ	edefdd„ƒZ
d"dd„Zd"dd„Zd"dd„Zdefdd„Zd#deddfdd„Zdejddfdd„ZdedB ddfdd„Zd"dd „ZdS )$ÚBaseProtocol)Ú_loopÚ_pausedÚ_parserÚ_drain_waiterÚ_connection_lostÚ_reading_pausedÚ	_upgradedÚ	transportNÚloopÚparserzHttpParser[Any] | NoneÚreturnc                 C   s.   || _ d| _d | _d| _|| _d| _d | _d S ©NF)r   r   r   r   r   r   r   )Úselfr   r   © r   úR/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/aiohttp/base_protocol.pyÚ__init__   s   
zBaseProtocol.__init__c                 C   s
   | j duS )z&Return True if the connection is open.N)r   ©r   r   r   r   Ú	connected+   s   
zBaseProtocol.connectedc                 C   s   | j S ©N©r   r   r   r   r   Úwriting_paused0   s   zBaseProtocol.writing_pausedc                 C   s   | j rJ ‚d| _ d S ©NTr   r   r   r   r   Úpause_writing4   s   

zBaseProtocol.pause_writingc                 C   sB   | j sJ ‚d| _ | j}|d urd | _| ¡ s| d ¡ d S d S d S r   )r   r   ÚdoneÚ
set_result©r   Úwaiterr   r   r   Úresume_writing8   s   
ýzBaseProtocol.resume_writingc                 C   sX   d| _ | js| jd usJ ‚| j ¡  | jd ur*z| j ¡  W d S  ty)   Y d S w d S r    )r   r   r   Úpause_readingr   ÚPAUSE_RESUME_READING_ERRORSr   r   r   r   r'   B   s   

ýýzBaseProtocol.pause_readingc                 C   s   dS )zEKeep the transport paused for protocol-specific reasons (overridden).Fr   r   r   r   r   Ú_reading_paused_for_msg_queueP   s   z*BaseProtocol._reading_paused_for_msg_queueTÚresume_parserc                 C   sj   d| _ | js|r|  d¡ | j s/|  ¡ s1| jd ur3z| j ¡  W n	 ty)   Y nw d| _ d S d S d S d S )NFó    )r   r   Údata_receivedr)   r   Úresume_readingr(   )r   r*   r   r   r   r-   T   s    

ÿþ
ý
õzBaseProtocol.resume_readingr   c                 C   s    t tj|ƒ}t|dƒ || _d S r    )r   ÚasyncioÚ	Transportr   r   )r   r   Útrr   r   r   Úconnection_madej   s   

zBaseProtocol.connection_madeÚexcc                 C   s^   d | _ | jsd S | j}|d u rd S d | _| ¡ rd S |d u r%| d ¡ d S t|tdƒ|ƒ d S ©NzConnection lost)r   r   r   r"   r#   r   ÚConnectionError)r   r2   r%   r   r   r   Úconnection_losto   s    ýzBaseProtocol.connection_lostc                 Ã   sJ   �| j d u r
tdƒ‚| jsd S | j}|d u r| j ¡ }|| _|I d H  d S r3   )r   r   r   r   r   Úcreate_futurer$   r   r   r   Ú_drain_helperƒ   s   €

zBaseProtocol._drain_helperr   )r   N)T)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r.   ÚAbstractEventLoopr   ÚpropertyÚboolr   r   r!   r&   r'   r)   r-   ÚBaseTransportr1   ÚBaseExceptionr5   r7   r   r   r   r   r
      s,    ÿÿÿ
þ



r
   )r.   Útypingr   r   r   Úclient_exceptionsr   Úhelpersr   Útcp_helpersr   Úhttp_parserr	   ÚAttributeErrorÚNotImplementedErrorÚRuntimeErrorr(   ÚProtocolr
   r   r   r   r   Ú<module>   s    
