Ë
    oj+  ã                   óÒ   — d Z ddlZddlZddlmZ ddlZddlmZmZ ddl	m
Z
mZmZmZmZ ddlmZ  ee
«       G d„ d«      «       Z eeee«       G d	„ d
ej$                  «      «       Zy)zM
Windows-specific implementation of the L{twisted.internet.stdio} interface.
é    N)Úimplementer)Ú_pollingfileÚmain)ÚIAddressÚ	IConsumerÚIHalfCloseableProtocolÚIPushProducerÚ
ITransport)ÚFailurec                   ó   — e Zd Zy)ÚWin32PipeAddressN)Ú__name__Ú
__module__Ú__qualname__© ó    ú>/usr/lib/python3/dist-packages/twisted/internet/_win32stdio.pyr   r      s   „ àr   r   c                   ót   — e 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y)Ú
StandardIOFNc                 ó¦  — |€ddl m} t        ddd«      D ]&  }t        j                  |t
        j                  «       Œ( t        j                  j                  | |«       || _
        t        j                  t        j                  «      }t        j                  t        j                  «      }t        j                  || j                   | j"                  «      | _        t        j&                  || j(                  «      | _        | j-                  | j$                  «       | j-                  | j*                  «       | j                  j/                  | «       y)zƒ
        Start talking to standard IO with the given protocol.

        Also, put it stdin/stdout/stderr into binary mode.
        Nr   )Úreactoré   é   )Útwisted.internetr   ÚrangeÚmsvcrtÚsetmodeÚosÚO_BINARYr   Ú_PollingTimerÚ__init__ÚprotoÚwin32apiÚGetStdHandleÚSTD_INPUT_HANDLEÚSTD_OUTPUT_HANDLEÚ_PollableReadPipeÚdataReceivedÚreadConnectionLostÚstdinÚ_PollableWritePipeÚwriteConnectionLostÚstdoutÚ_addPollableResourceÚmakeConnection)Úselfr"   r   ÚstdfdÚhstdinÚhstdouts         r   r!   zStandardIO.__init__$   s÷   € ð ˆ?Ý0ä˜1˜a “^ò 	/ˆEÜ�N‰N˜5¤"§+¡+Õ.ð	/ô 	×"Ñ"×+Ñ+¨D°'Ô:ØˆŒ
ä×&Ñ&¤x×'@Ñ'@ÓAˆÜ×'Ñ'¬×(BÑ(BÓCˆä!×3Ñ3Ø�D×%Ñ% t×'>Ñ'>ó
ˆŒ
ô #×5Ñ5°g¸t×?WÑ?WÓXˆŒà×!Ñ! $§*¡*Ô-Ø×!Ñ! $§+¡+Ô.à�
‰
×!Ñ! $Õ'r   c                 ó:   — | j                   j                  |«       y ©N)r"   r(   ©r0   Údatas     r   r(   zStandardIO.dataReceivedA   s   € Ø�
‰
×Ñ Õ%r   c                 ó–   — t        j                  | j                  «      r| j                  j                  «        | j	                  «        y r5   )r   Ú
providedByr"   r)   ÚcheckConnLost©r0   s    r   r)   zStandardIO.readConnectionLostD   s0   € Ü!×,Ñ,¨T¯Z©ZÔ8Ø�J‰J×)Ñ)Ô+Ø×ÑÕr   c                 ó–   — t        j                  | j                  «      r| j                  j                  «        | j	                  «        y r5   )r   r9   r"   r,   r:   r;   s    r   r,   zStandardIO.writeConnectionLostI   s0   € Ü!×,Ñ,¨T¯Z©ZÔ8Ø�J‰J×*Ñ*Ô,Ø×ÑÕr   r   c                 óÎ   — | xj                   dz  c_         | j                   dk\  rAd| _        d| _        | j                  j	                  t        t        j                  «      «       y y )Nr   r   T)Ú	connsLostÚdisconnectingÚdisconnectedr"   ÚconnectionLostr   r   ÚCONNECTION_DONEr;   s    r   r:   zStandardIO.checkConnLostP   sN   € Ø�Š˜!Ñ�Ø�>‰>˜QÒØ!%ˆDÔØ $ˆDÔØ�J‰J×%Ñ%¤g¬d×.BÑ.BÓ&CÕDð r   c                 ó:   — | j                   j                  |«       y r5   )r-   Úwriter6   s     r   rD   zStandardIO.writeY   s   € Ø�‰×Ñ˜$Õr   c                 óX   — | j                   j                  dj                  |«      «       y )Nr   )r-   rD   Újoin)r0   Úseqs     r   ÚwriteSequencezStandardIO.writeSequence\   s   € Ø�‰×Ñ˜#Ÿ(™( 3›-Õ(r   c                 óz   — d| _         | j                  j                  «        | j                  j                  «        y )NT)r?   r*   Úcloser-   r;   s    r   ÚloseConnectionzStandardIO.loseConnection_   s*   € Ø!ˆÔØ�
‰
×ÑÔØ�‰×ÑÕr   c                 ó   — t        «       S r5   ©r   r;   s    r   ÚgetPeerzStandardIO.getPeerd   ó   € ÜÓ!Ð!r   c                 ó   — t        «       S r5   rM   r;   s    r   ÚgetHostzStandardIO.getHostg   rO   r   c                 ó:   — | j                   j                  ||«      S r5   )r-   ÚregisterProducer)r0   ÚproducerÚ	streamings      r   rS   zStandardIO.registerProducerl   s   € Ø�{‰{×+Ñ+¨H°iÓ@Ð@r   c                 ó6   — | j                   j                  «       S r5   )r-   ÚunregisterProducerr;   s    r   rW   zStandardIO.unregisterProducero   s   € Ø�{‰{×-Ñ-Ó/Ð/r   c                 ó8   — | j                   j                  «        y r5   )r*   ÚstopProducingr;   s    r   rY   zStandardIO.stopProducingv   s   € Ø�
‰
× Ñ Õ"r   c                 ó8   — | j                   j                  «        y r5   )r*   ÚpauseProducingr;   s    r   r[   zStandardIO.pauseProducing{   s   € Ø�
‰
×!Ñ!Õ#r   c                 ó8   — | j                   j                  «        y r5   )r*   ÚresumeProducingr;   s    r   r]   zStandardIO.resumeProducing~   s   € Ø�
‰
×"Ñ"Õ$r   r5   )r   r   r   r?   r@   r!   r(   r)   r,   r>   r:   rD   rH   rK   rN   rQ   rS   rW   rY   r[   r]   r   r   r   r   r      s`   „ à€MØ€Ló(ò:&òò
ð
 €IòEò ò)òò
"ò"ò
Aò0ò#ò
$ó%r   r   )Ú__doc__r   r   Úzope.interfacer   r#   r   r   r   Útwisted.internet.interfacesr   r   r   r	   r
   Útwisted.python.failurer   r   r    r   r   r   r   ú<module>rb      su   ðñó
 Û 	å &ã ç /÷õ õ +ñ ˆXÓ÷	ð 	ó ð	ñ ˆZ˜ MÓ2ô_%�×+Ñ+ó _%ó 3ñ_%r   