+
    Dfj                         R t ^ RIt^ RIt^ RIHt ^ RIt^ RIHtHt ^ RI	H
t
HtHtHtHt ^ RIHt ^ RIHt ]! 4       t]! ]
4       ! R R4      4       t]! ]]]4       ! R	 R
]P*                  4      4       tR# )zM
Windows-specific implementation of the L{twisted.internet.stdio} interface.
N)implementer)_pollingfilemain)IAddress	IConsumerIHalfCloseableProtocolIPushProducer
ITransport)Logger)Failurec                       ] tR t^tRtR# )Win32PipeAddress N)__name__
__module____qualname____firstlineno____static_attributes__r       >/usr/lib/python3/dist-packages/twisted/internet/_win32stdio.pyr   r      s    r   r   c                      a  ] tR t^"t o RtRtRR ltR tR tR t	^ t
R tR tR	 tR
 tR tR tR tR tR tR tR tRtV tR# )
StandardIOFNc                   Vf   ^ RI Hp \        ^ ^^4       F(  p\        P                  ! V\
        P                  4       K*  	  \        P                  P                  W4       Wn
        \        P                  ! \        P                  4      p\        P                  ! \        P                  4      p\        P                  ! W@P                   V P"                  4      V n        \        P&                  ! WPP(                  4      V n        V P-                  V P$                  4       V P-                  V P*                  4       V P                  P/                  V 4       R# )zk
Start talking to standard IO with the given protocol.

Also, put it stdin/stdout/stderr into binary mode.
N)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!   StandardIO.__init__'   s     ?01a^ENN5"++. $ 	""++D:
&&x'@'@A''(B(BC!33%%t'>'>

 #55g?W?WX!!$**-!!$++.

!!$'r   c                <    V P                   P                  V4       R # N)r"   r(   r0   datas   &&r   r(   StandardIO.dataReceivedD   s    

%r   c                   \         P                  R 4      ;_uu_ 4       p\        P                  ! V P                  4      '       d   V P                  P                  4        RRR4       V P                  4        XP                  '       g'   V P                  '       g   V P                  4        R# R# R#   + '       g   i     LZ; i)zread connection lostN)
_logfailuresHandledr   
providedByr"   r)   checkConnLost	succeededdisconnectingloseConnectionr0   ops   & r   r)   StandardIO.readConnectionLostG   s~    !!"899R%00<<

--/ : 	|||D$6$6$6! %7|	 :9   AB11C	c                   \         P                  R 4      ;_uu_ 4       p\        P                  ! V P                  4      '       d   V P                  P                  4        RRR4       V P                  4        XP                  '       g'   V P                  '       g   V P                  4        R# R# R#   + '       g   i     LZ; i)zwrite connection lostN)
r;   r<   r   r=   r"   r,   r>   r?   r@   rA   rB   s   & r   r,   StandardIO.writeConnectionLostO   s~    !!"9::b%00<<

..0 ; 	|||D$6$6$6! %7|	 ;:rE   c                    V ;P                   ^,          un         V P                   ^8  dC   RV n        RV n        V P                  P	                  \        \        P                  4      4       R# R# )   TN)	connsLostr@   disconnectedr"   connectionLostr   r   CONNECTION_DONEr0   s   &r   r>   StandardIO.checkConnLostY   sN    !>>Q!%D $DJJ%%gd.B.B&CD r   c                <    V P                   P                  V4       R # r6   )r-   writer7   s   &&r   rQ   StandardIO.writeb   s    $r   c                Z    V P                   P                  R P                  V4      4       R# )r   N)r-   rQ   join)r0   seqs   &&r   writeSequenceStandardIO.writeSequencee   s    #((3-(r   c                |    R V n         V P                  P                  4        V P                  P                  4        R# )TN)r@   r*   closer-   rN   s   &r   rA   StandardIO.loseConnectionh   s*    !

r   c                    \        4       # r6   r   rN   s   &r   getPeerStandardIO.getPeerm       !!r   c                    \        4       # r6   r\   rN   s   &r   getHostStandardIO.getHostp   r_   r   c                8    V P                   P                  W4      # r6   )r-   registerProducer)r0   producer	streamings   &&&r   rd   StandardIO.registerProduceru   s    {{++H@@r   c                6    V P                   P                  4       # r6   )r-   unregisterProducerrN   s   &r   ri   StandardIO.unregisterProducerx   s    {{--//r   c                :    V P                   P                  4        R # r6   )r*   stopProducingrN   s   &r   rl   StandardIO.stopProducing   s    

  "r   c                :    V P                   P                  4        R # r6   )r*   pauseProducingrN   s   &r   ro   StandardIO.pauseProducing   s    

!!#r   c                :    V P                   P                  4        R # r6   )r*   resumeProducingrN   s   &r   rr   StandardIO.resumeProducing   s    

""$r   )rK   r@   r"   r*   r-   r6   )r   r   r   r   r@   rK   r!   r(   r)   r,   rJ   r>   rQ   rV   rA   r]   ra   rd   ri   rl   ro   rr   r   __classdictcell__)__classdict__s   @r   r   r   "   sh     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.loggerr
   twisted.python.failurer   r;   r   r    r   r   r   r   <module>r{      s   
  	 &  /  " *x X	 	 	 ZM2e%++ e% 3e%r   