
    Df	                         d Z ddlZddlZdZ G d dej                  Z G d dej                  Z G d d	e          Zd
ej	        fdZ
dS )zSocket file object.    Ni @  c                       e Zd ZdZd Zd ZdS )BufferedWriterz-Faux file object attached to a socket object.c                 .   |                                   t          |t                    rt          d          | j        5  | j                            |           |                                  t          |          cddd           S # 1 swxY w Y   dS )zWrite bytes to buffer.z can't write str to binary streamN)	_checkClosed
isinstancestr	TypeError_write_lock
_write_bufextend_flush_unlockedlen)selfbs     ?/var/www/media/lib/python3.11/site-packages/cheroot/makefile.pywritezBufferedWriter.write   s    a 	@>??? 	 	O""1%%%  """q66	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    =B

BBc                    |                      d           | j        rd	 | j                            t	          | j                            }n## t
          j        $ r}|j        }Y d }~nd }~ww xY w| j        d |= | j        bd S d S )Nzflush of closed file)r   r   rawr   bytesioBlockingIOErrorcharacters_written)r   nes      r   r   zBufferedWriter._flush_unlocked   s    0111o 	$) HNN5#9#9::% ) ) )()# o 	$ 	$ 	$ 	$ 	$s   ,A A+A&&A+N)__name__
__module____qualname____doc__r   r        r   r   r      s8        77	 	 		$ 	$ 	$ 	$ 	$r    r   c                   B     e Zd ZdZdej        f fd	Z fdZd Z xZ	S )StreamReaderzSocket stream reader.rc                     t                                          t          j        ||          |           d| _        dS )z Initialize socket stream reader.r   N)super__init__socketSocketIO
bytes_readr   sockmodebufsize	__class__s       r   r&   zStreamReader.__init__*   s4    t44g>>>r    c                 t     t                      j        |i |}| xj        t          |          z  c_        |S )zCapture bytes read.)r%   readr)   r   )r   argskwargsvalr.   s       r   r0   zStreamReader.read/   s8    egglD+F++3s88#
r    c                 <    t          | j                  | j        k    S )z.Return true if there is buffered data to read.)r   	_read_buf	_read_pos)r   s    r   has_datazStreamReader.has_data5   s    4>""T^33r    )
r   r   r   r   r   DEFAULT_BUFFER_SIZEr&   r0   r7   __classcell__r.   s   @r   r"   r"   '   ss        "%r/E      
    4 4 4 4 4 4 4r    r"   c                   <     e Zd ZdZdej        f fd	Z fdZ xZS )StreamWriterzSocket stream writer.wc                     t                                          t          j        ||          |           d| _        dS )z Initialize socket stream writer.r   N)r%   r&   r'   r(   bytes_writtenr*   s       r   r&   zStreamWriter.__init__=   s7    t44g>>>r    c                 |     t                      j        |g|R i |}| xj        t          |          z  c_        |S )zCapture bytes written.)r%   r   r?   r   )r   r3   r1   r2   resr.   s        r   r   zStreamWriter.writeB   sG    eggmC1$111&11c#hh&
r    )	r   r   r   r   r   r8   r&   r   r9   r:   s   @r   r<   r<   :   sd        "%r/E      
        r    r<   r#   c                 @    d|v rt           nt          } || ||          S )z(File object attached to a socket object.r#   )r"   r<   )r+   r,   r-   clss       r   MakeFilerD   I   s'    ++,,<C3tT7###r    )r   r'   _pyior   SOCK_WRITE_BLOCKSIZEr   BufferedReaderr"   r<   r8   rD   r   r    r   <module>rH      s            $ $ $ $ $R& $ $ $44 4 4 4 42$ 4 4 4&    >    R%; $ $ $ $ $ $r    