o
     JAf)                     @   sz   	 d Z G dd dZG dd deZG dd deZG dd deeZG d	d
 d
eZG dd deZG dd deZdS ))BaseTransportReadTransportWriteTransport	TransportDatagramTransportSubprocessTransportc                   @   sF   e Zd Z	 dZdddZdddZdd Zd	d
 Zdd Zdd Z	dS )r   _extraNc                 C   s   |d u ri }|| _ d S Nr   )selfextra r   )/usr/lib/python3.10/asyncio/transports.py__init__   s   
zBaseTransport.__init__c                 C   s   	 | j ||S r	   )r   get)r
   namedefaultr   r   r   get_extra_info   s   zBaseTransport.get_extra_infoc                 C      	 t r	   NotImplementedErrorr
   r   r   r   
is_closing      zBaseTransport.is_closingc                 C   r   r	   r   r   r   r   r   close      zBaseTransport.closec                 C   r   r	   r   )r
   protocolr   r   r   set_protocol%   r   zBaseTransport.set_protocolc                 C   r   r	   r   r   r   r   r   get_protocol)   r   zBaseTransport.get_protocolr	   )
__name__
__module____qualname__	__slots__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d ZdS )	r   r   c                 C   r   r	   r   r   r   r   r   
is_reading3   r   zReadTransport.is_readingc                 C   r   r	   r   r   r   r   r   pause_reading7      zReadTransport.pause_readingc                 C   r   r	   r   r   r   r   r   resume_reading?   r$   zReadTransport.resume_readingN)r   r   r    r!   r"   r#   r%   r   r   r   r   r   .   s    r   c                   @   sT   e Zd Z	 dZdddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )r   r   Nc                 C   r   r	   r   r
   highlowr   r   r   set_write_buffer_limitsM   s   z&WriteTransport.set_write_buffer_limitsc                 C   r   r	   r   r   r   r   r   get_write_buffer_sizeb   r   z$WriteTransport.get_write_buffer_sizec                 C   r   r	   r   r   r   r   r   get_write_buffer_limitsf   s   z&WriteTransport.get_write_buffer_limitsc                 C   r   r	   r   )r
   datar   r   r   writel   r$   zWriteTransport.writec                 C   s   	 d |}| | d S )N    )joinr-   )r
   Zlist_of_datar,   r   r   r   
writelinest   s   
zWriteTransport.writelinesc                 C   r   r	   r   r   r   r   r   	write_eof}      zWriteTransport.write_eofc                 C   r   r	   r   r   r   r   r   can_write_eof   r   zWriteTransport.can_write_eofc                 C   r   r	   r   r   r   r   r   abort   r2   zWriteTransport.abortNN)r   r   r    r!   r)   r*   r+   r-   r0   r1   r3   r4   r   r   r   r   r   H   s    
		r   c                   @   s   e Zd Z	 dZdS )r   r   N)r   r   r    r!   r   r   r   r   r      s    r   c                   @   s$   e Zd Z	 dZdddZdd ZdS )r   r   Nc                 C   r   r	   r   )r
   r,   addrr   r   r   sendto   r   zDatagramTransport.sendtoc                 C   r   r	   r   r   r   r   r   r4      r2   zDatagramTransport.abortr	   )r   r   r    r!   r7   r4   r   r   r   r   r      s
    

r   c                   @   s@   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dS )r   r   c                 C   r   r	   r   r   r   r   r   get_pid   r   zSubprocessTransport.get_pidc                 C   r   r	   r   r   r   r   r   get_returncode   r$   z"SubprocessTransport.get_returncodec                 C   r   r	   r   )r
   fdr   r   r   get_pipe_transport   r   z&SubprocessTransport.get_pipe_transportc                 C   r   r	   r   )r
   signalr   r   r   send_signal   r$   zSubprocessTransport.send_signalc                 C   r   r	   r   r   r   r   r   	terminate   s   zSubprocessTransport.terminatec                 C   r   r	   r   r   r   r   r   kill   s   zSubprocessTransport.killN)
r   r   r    r!   r8   r9   r;   r=   r>   r?   r   r   r   r   r      s    r   c                       sX   e Zd Z	 dZd fdd	Zdd Zdd Zd	d
 ZdddZdddZ	dd Z
  ZS )_FlowControlMixin)_loop_protocol_paused_high_water
_low_waterNc                    s$   t  | || _d| _|   d S )NF)superr   rA   rB   _set_write_buffer_limits)r
   r   Zloop	__class__r   r   r     s   z_FlowControlMixin.__init__c              
   C   s   |   }|| jkrd S | jsBd| _z| j  W d S  ttfy#     tyA } z| j	d|| | jd W Y d }~d S d }~ww d S )NTzprotocol.pause_writing() failedmessage	exceptionZ	transportr   )
r*   rC   rB   	_protocolZpause_writing
SystemExitKeyboardInterruptBaseExceptionrA   call_exception_handler)r
   sizeexcr   r   r   _maybe_pause_protocol  s&   
z'_FlowControlMixin._maybe_pause_protocolc              
   C   s   | j r>|  | jkr@d| _ z| j  W d S  ttfy     ty= } z| j	d|| | jd W Y d }~d S d }~ww d S d S )NFz protocol.resume_writing() failedrI   )
rB   r*   rD   rL   Zresume_writingrM   rN   rO   rA   rP   )r
   rR   r   r   r   _maybe_resume_protocol'  s$   z(_FlowControlMixin._maybe_resume_protocolc                 C   s   | j | jfS r	   )rD   rC   r   r   r   r   r+   7  s   z)_FlowControlMixin.get_write_buffer_limitsc                 C   sj   |d u r|d u rd}nd| }|d u r|d }||  kr!dks-n t d|d|d|| _|| _d S )Ni          zhigh (z) must be >= low (z) must be >= 0)
ValueErrorrC   rD   r&   r   r   r   rF   :  s   
z*_FlowControlMixin._set_write_buffer_limitsc                 C   s   | j ||d |   d S )N)r'   r(   )rF   rS   r&   r   r   r   r)   J  s   z)_FlowControlMixin.set_write_buffer_limitsc                 C   s   t r	   r   r   r   r   r   r*   N  s   z'_FlowControlMixin.get_write_buffer_sizer5   )r   r   r    r!   r   rS   rT   r+   rF   r)   r*   __classcell__r   r   rG   r   r@      s    

r@   N)__all__r   r   r   r   r   r   r@   r   r   r   r   <module>   s    %L6