Ë
    ojƒ  ã                   óö   — d Z ddlmZ ddlmZmZmZ ddlmZm	Z	  eej                  «       G d„ d«      «       Z eej                  ej                  ej                  ej                  «       G d„ d«      «       Zy	)
zÚStandard input/out/err support.

Future Plans::

    support for stderr, perhaps
    Rewrite to use the reactor instead of an ad-hoc mechanism for connecting
        protocols to transport.

Maintainer: James Y Knight
é    )Úimplementer)ÚerrorÚ
interfacesÚprocess)ÚfailureÚlogc                   ó   — e Zd Zy)ÚPipeAddressN)Ú__name__Ú
__module__Ú__qualname__© ó    ú>/usr/lib/python3/dist-packages/twisted/internet/_posixstdio.pyr
   r
      s   „ àr   r
   c                   óœ   — e Zd ZdZdZdZdZdd„Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú
StandardIONFc                 ó   — |€ddl m} || _        t        j                  || d|«      | _        t        j                  || d|«      | _        | j                  j                  «        | j                  j                  | «       y )Nr   )ÚreactorÚwriteÚread)
Útwisted.internetr   Úprotocolr   ÚProcessWriterÚ_writerÚProcessReaderÚ_readerÚstartReadingÚmakeConnection)ÚselfÚprotoÚstdinÚstdoutr   s        r   Ú__init__zStandardIO.__init__%   sc   € Øˆ?Ý0ØˆŒä×,Ñ,¨W°d¸GÀVÓLˆŒÜ×,Ñ,¨W°d¸FÀEÓJˆŒØ�‰×!Ñ!Ô#Ø�‰×$Ñ$ TÕ*r   c                 óR   — | j                   �| j                   j                  «        y y ©N)r   ÚloseConnection©r   s    r   ÚloseWriteConnectionzStandardIO.loseWriteConnection2   ó!   € Ø�<‰<Ð#Ø�L‰L×'Ñ'Õ)ð $r   c                 óT   — | j                   �| j                   j                  |«       y y r%   )r   r   ©r   Údatas     r   r   zStandardIO.write6   s#   € Ø�<‰<Ð#Ø�L‰L×Ñ˜tÕ$ð $r   c                 óT   — | j                   �| j                   j                  |«       y y r%   )r   ÚwriteSequencer+   s     r   r.   zStandardIO.writeSequence:   s#   € Ø�<‰<Ð#Ø�L‰L×&Ñ& tÕ,ð $r   c                 ó¬   — d| _         | j                  �| j                  j                  «        | j                  �| j                  j	                  «        y y ©NT)Údisconnectingr   r&   r   ÚstopReadingr'   s    r   r&   zStandardIO.loseConnection>   sC   € Ø!ˆÔà�<‰<Ð#Ø�L‰L×'Ñ'Ô)Ø�<‰<Ð#à�L‰L×$Ñ$Õ&ð $r   c                 ó   — t        «       S r%   ©r
   r'   s    r   ÚgetPeerzStandardIO.getPeerG   ó
   € Ü‹}Ðr   c                 ó   — t        «       S r%   r4   r'   s    r   ÚgetHostzStandardIO.getHostJ   r6   r   c                 ó:   — | j                   j                  |«       y r%   )r   ÚdataReceived)r   Úfdr,   s      r   ÚchildDataReceivedzStandardIO.childDataReceivedN   s   € Ø�‰×"Ñ" 4Õ(r   c                 óà   — | j                   ry |j                  j                  t        j                  k(  r)|dk(  r| j                  |«       y | j                  |«       y | j                  |«       y )Nr   )ÚdisconnectedÚvalueÚ	__class__r   ÚConnectionDoneÚ_readConnectionLostÚ_writeConnectionLostÚconnectionLost)r   r;   Úreasons      r   ÚchildConnectionLostzStandardIO.childConnectionLostQ   sW   € Ø×ÒØà�<‰<×!Ñ!¤U×%9Ñ%9Ò9à�VŠ|Ø×(Ñ(¨Õ0à×)Ñ)¨&Õ1à×Ñ Õ'r   c                 ój  — d| _         | j                  }| j                  }| j                  }d x| _        | _        d | _        |�|j                   s|j	                  |«       |�|j                   s|j	                  |«       	 |j	                  |«       y # t
        $ r t        j                  «        Y y w xY wr0   )r>   r   r   r   rD   ÚBaseExceptionr   Úerr)r   rE   r   r   r   s        r   rD   zStandardIO.connectionLost^   sŸ   € Ø ˆÔð —,‘,ˆØ—,‘,ˆØ—=‘=ˆØ&*Ð*ˆŒ�t”|ØˆŒàÐ w×';Ò';Ø×"Ñ" 6Ô*àÐ w×';Ò';Ø×"Ñ" 6Ô*ð	Ø×#Ñ# FÕ+øÜò 	Ü�G‰GŽIð	ús   Â B ÂB2Â1B2c                 óB  — d | _         | j                  r| j                  |«       y t        j                  | j
                  d «      }|r	 |j                  «        y y # t        $ r: t        j                  «        | j                  t        j                  «       «       Y y w xY wr%   )r   r1   rD   r   ÚIHalfCloseableProtocolr   ÚwriteConnectionLostrH   r   rI   r   ÚFailure©r   rE   Úps      r   rC   zStandardIO._writeConnectionLosts   s�   € ØˆŒØ×ÒØ×Ñ Ô'Øä×-Ñ-¨d¯m©m¸TÓBˆÙð7Ø×%Ñ%Õ'ð øô !ò 7Ü—‘”	Ø×#Ñ#¤G§O¡OÓ$5Ö6ð7ús   Á	A ÁA BÂBc                 ó(  — d | _         t        j                  | j                  d «      }|r	 |j	                  «        y | j                  |«       y # t
        $ r: t        j                  «        | j                  t        j                  «       «       Y y w xY wr%   )r   r   rK   r   ÚreadConnectionLostrH   r   rI   rD   r   rM   rN   s      r   rB   zStandardIO._readConnectionLost�   sr   € ØˆŒÜ×-Ñ-¨d¯m©m¸TÓBˆÙð7Ø×$Ñ$Õ&ð
 ×Ñ Õ'øô	 !ò 7Ü—‘”	Ø×#Ñ#¤G§O¡OÓ$5Ö6ð7ús   «A ÁA BÂBc                 óv   — | j                   €|j                  «        y | j                   j                  ||«       y r%   )r   ÚstopProducingÚregisterProducer)r   ÚproducerÚ	streamings      r   rT   zStandardIO.registerProducerŽ   s,   € Ø�<‰<ÐØ×"Ñ"Õ$à�L‰L×)Ñ)¨(°IÕ>r   c                 óR   — | j                   �| j                   j                  «        y y r%   )r   ÚunregisterProducerr'   s    r   rX   zStandardIO.unregisterProducer”   s!   € Ø�<‰<Ð#Ø�L‰L×+Ñ+Õ-ð $r   c                 ó$   — | j                  «        y r%   )r&   r'   s    r   rS   zStandardIO.stopProducing™   s   € Ø×ÑÕr   c                 óR   — | j                   �| j                   j                  «        y y r%   )r   ÚpauseProducingr'   s    r   r[   zStandardIO.pauseProducingœ   r)   r   c                 óR   — | j                   �| j                   j                  «        y y r%   )r   ÚresumeProducingr'   s    r   r]   zStandardIO.resumeProducing    s!   € Ø�<‰<Ð#Ø�L‰L×(Ñ(Õ*ð $r   c                 ó$   — | j                  «        y)z3Compatibility only, don't use. Call pauseProducing.N)r[   r'   s    r   r2   zStandardIO.stopReading¤   s   € à×ÑÕr   c                 ó$   — | j                  «        y)z4Compatibility only, don't use. Call resumeProducing.N)r]   r'   s    r   r   zStandardIO.startReading¨   s   € à×ÑÕr   c                 ó   — t        «       ‚r%   ©ÚNotImplementedError©r   rE   s     r   rQ   zStandardIO.readConnectionLost¬   ó   € ä!Ó#Ð#r   c                 ó   — t        «       ‚r%   ra   rc   s     r   rL   zStandardIO.writeConnectionLost°   rd   r   )r   é   N)r   r   r   r   r   r>   r1   r#   r(   r   r.   r&   r5   r8   r<   rF   rD   rC   rB   rT   rX   rS   r[   r]   r2   r   rQ   rL   r   r   r   r   r      s�   „ ð €GØ€GØ€LØ€Mó+ò*ò%ò-ò'òòò)ò(òò*7ò
(ò?ò.ò
ò*ò+òòò$ó$r   r   N)Ú__doc__Úzope.interfacer   r   r   r   r   Útwisted.pythonr   r   ÚIAddressr
   Ú
ITransportÚ	IProducerÚ	IConsumerÚIHalfCloseableDescriptorr   r   r   r   ú<module>ro      s�   ðñ	õ 'ç 7Ñ 7ß 'ñ ˆZ× Ñ Ó!÷	ð 	ó "ð	ñ Ø×ÑØ×ÑØ×ÑØ×'Ñ'ó	÷S$ð S$óñS$r   