o
    n~b
                     @   s:   d dl Z d dlmZmZ ddlmZ G dd de jZdS )    N)Optionalcast   )tcp_nodelayc                   @   s   e Zd ZdZdejddfddZdddZdd	d
ZdddZ	dddZ
dejddfddZdee ddfddZdddZdS )BaseProtocol_loop_paused_drain_waiter_connection_lost_reading_paused	transportloopreturnNc                 C   s(   || _ d| _d | _d| _d| _d | _d S NFr   )selfr    r   @/usr/local/lib/python3.10/dist-packages/aiohttp/base_protocol.py__init__   s   
zBaseProtocol.__init__c                 C   s   | j rJ d| _ d S NT)r	   r   r   r   r   pause_writing   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_writing   s   
zBaseProtocol.resume_writingc              
   C   sJ   | j s!| jd ur#z| j  W n tttfy   Y nw d| _ d S d S d S r   )r   r   pause_readingAttributeErrorNotImplementedErrorRuntimeErrorr   r   r   r   r   (      
zBaseProtocol.pause_readingc              
   C   sJ   | j r!| jd ur#z| j  W n tttfy   Y nw d| _ d S d S d S r   )r   r   resume_readingr   r   r    r   r   r   r   r"   0   r!   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_made8   s   

zBaseProtocol.connection_madeexcc                 C   s^   d| _ d | _| jsd S | j}|d u rd S d | _| rd S |d u r(|d  d S || d S r   )r   r   r	   r
   r   r   set_exception)r   r'   r   r   r   r   connection_lost=   s   zBaseProtocol.connection_lostc                    sL   | j rtd| jsd S | j}|d u r| j }|| _t|I d H  d S )NzConnection lost)r   ConnectionResetErrorr	   r
   r   create_futurer#   shieldr   r   r   r   _drain_helperN   s   
zBaseProtocol._drain_helper)r   N)__name__
__module____qualname__	__slots__r#   AbstractEventLoopr   r   r   r   r"   BaseTransportr&   r   BaseExceptionr)   r-   r   r   r   r   r      s    	
	



r   )r#   typingr   r   Ztcp_helpersr   Protocolr   r   r   r   r   <module>   s    