a
    ze)                     @   sx   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                   @   sD   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.9/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   s   t d S r	   NotImplementedErrorr
   r   r   r   
is_closing   s    zBaseTransport.is_closingc                 C   s   t d S r	   r   r   r   r   r   close   s    zBaseTransport.closec                 C   s   t d S r	   r   )r
   protocolr   r   r   set_protocol%   s    zBaseTransport.set_protocolc                 C   s   t d S r	   r   r   r   r   r   get_protocol)   s    zBaseTransport.get_protocol)N)N)
__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   s   t d S r	   r   r   r   r   r   
is_reading3   s    zReadTransport.is_readingc                 C   s   t d S r	   r   r   r   r   r   pause_reading7   s    zReadTransport.pause_readingc                 C   s   t d S r	   r   r   r   r   r   resume_reading?   s    zReadTransport.resume_readingN)r   r   r   r   r   r    r!   r   r   r   r   r   .   s   r   c                   @   sR   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   s   t d S r	   r   r
   highlowr   r   r   set_write_buffer_limitsM   s    z&WriteTransport.set_write_buffer_limitsc                 C   s   t d S r	   r   r   r   r   r   get_write_buffer_sizeb   s    z$WriteTransport.get_write_buffer_sizec                 C   s   t d S r	   r   r   r   r   r   get_write_buffer_limitsf   s    z&WriteTransport.get_write_buffer_limitsc                 C   s   t d S r	   r   )r
   datar   r   r   writel   s    zWriteTransport.writec                 C   s   d |}| | d S )N    )joinr)   )r
   Zlist_of_datar(   r   r   r   
writelinest   s    
zWriteTransport.writelinesc                 C   s   t d S r	   r   r   r   r   r   	write_eof}   s    zWriteTransport.write_eofc                 C   s   t d S r	   r   r   r   r   r   can_write_eof   s    zWriteTransport.can_write_eofc                 C   s   t d S r	   r   r   r   r   r   abort   s    zWriteTransport.abort)NN)r   r   r   r   r%   r&   r'   r)   r,   r-   r.   r/   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   s   t d S r	   r   )r
   r(   addrr   r   r   sendto   s    zDatagramTransport.sendtoc                 C   s   t d S r	   r   r   r   r   r   r/      s    zDatagramTransport.abort)N)r   r   r   r   r1   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d	 Zd
d Zdd Z	dS )r   r   c                 C   s   t d S r	   r   r   r   r   r   get_pid   s    zSubprocessTransport.get_pidc                 C   s   t d S r	   r   r   r   r   r   get_returncode   s    z"SubprocessTransport.get_returncodec                 C   s   t d S r	   r   )r
   fdr   r   r   get_pipe_transport   s    z&SubprocessTransport.get_pipe_transportc                 C   s   t d S r	   r   )r
   signalr   r   r   send_signal   s    zSubprocessTransport.send_signalc                 C   s   t d S r	   r   r   r   r   r   	terminate   s    zSubprocessTransport.terminatec                 C   s   t d S r	   r   r   r   r   r   kill   s    	zSubprocessTransport.killN)
r   r   r   r   r2   r3   r5   r7   r8   r9   r   r   r   r   r      s   r   c                       sV   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   r;   r<   _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sd| _z| j  W nR ttfyH    Y n< ty } z$| j	d|| | jd W Y d }~n
d }~0 0 d S )NTzprotocol.pause_writing() failedmessage	exceptionZ	transportr   )
r&   r=   r<   	_protocolZpause_writing
SystemExitKeyboardInterruptBaseExceptionr;   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 nR ttfy@    Y n< tyz } z$| j	d|| | jd W Y d }~n
d }~0 0 d S )NFz protocol.resume_writing() failedrC   )
r<   r&   r>   rF   Zresume_writingrG   rH   rI   r;   rJ   )r
   rL   r   r   r   _maybe_resume_protocol'  s    z(_FlowControlMixin._maybe_resume_protocolc                 C   s   | j | jfS r	   )r>   r=   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rBdksZn t d|d|d|| _|| _d S )Ni          zhigh (z) must be >= low (z) must be >= 0)
ValueErrorr=   r>   r"   r   r   r   r@   :  s    z*_FlowControlMixin._set_write_buffer_limitsc                 C   s   | j ||d |   d S )N)r#   r$   )r@   rM   r"   r   r   r   r%   J  s    z)_FlowControlMixin.set_write_buffer_limitsc                 C   s   t d S r	   r   r   r   r   r   r&   N  s    z'_FlowControlMixin.get_write_buffer_size)NN)NN)NN)r   r   r   r   r   rM   rN   r'   r@   r%   r&   __classcell__r   r   rA   r   r:      s   

r:   N)__all__r   r   r   r   r   r   r:   r   r   r   r   <module>   s   %L6