U
    
W[À  ã                   @   sª   d Z ddlmZmZ ddlZddlmZmZ ddlm	Z	m
Z
 ddlmZ dd„ ZG d	d
„ d
e
jƒZedkr¦e ejd ¡ ¡  ddlmZ e	 eejd ƒ¡ e ¡  dS )z«
Main program for the child process run by
L{twisted.test.test_stdio.StandardInputOutputTests.test_consumer} to test
that process transports implement IConsumer properly.
é    )Úabsolute_importÚdivisionN)ÚlogÚreflect)ÚstdioÚprotocol)Úbasicc                 C   s   t  tj¡ t  | ¡ d S ©N)r   ZstartLoggingÚsysÚstderrÚerr)r   © r   úB/usr/lib/python3/dist-packages/twisted/test/stdio_test_consumer.pyÚfailed   s    r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚConsumerChildc                 C   s
   || _ d S r	   )ÚjunkPath)Úselfr   r   r   r   Ú__init__   s    zConsumerChild.__init__c                    s:   t  ¡  tˆ jdƒˆ j¡}| t¡ | ‡ fdd„¡ d S )NÚrbc                    s
   ˆ j  ¡ S r	   )Ú	transportZloseConnection)Zign©r   r   r   Ú<lambda>"   ó    z.ConsumerChild.connectionMade.<locals>.<lambda>)	r   Z
FileSenderZbeginFileTransferÚopenr   r   Z
addErrbackr   ZaddCallback)r   Údr   r   r   ÚconnectionMade   s
    ÿ
zConsumerChild.connectionMadec                 C   s   t  ¡  d S r	   )ÚreactorÚstop)r   Úreasonr   r   r   ÚconnectionLost%   s    zConsumerChild.connectionLostN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r      s   r   Ú__main__é   )r   é   )Ú__doc__Z
__future__r   r   r
   Ztwisted.pythonr   r   Ztwisted.internetr   r   Ztwisted.protocolsr   r   ZProtocolr   r    ZnamedAnyÚargvÚinstallr   Z
StandardIOÚrunr   r   r   r   Ú<module>   s   