
    Yf)                        U d Z ddlZddlmZ ddlmZmZ ddlmZm	Z	m
Z
 ddlmZmZ  ee           G d dej                              Zed	k    r ej        ej        d
                                                     ej         eej        d         d                     e	ed<   ddlmZ  e            Z ej        e            ej                      ej        ej                   dS dS )z
Main program for the child process run by
L{twisted.test.test_stdio.StandardInputOutputTests.test_readConnectionLost} to
test that IHalfCloseableProtocol.readConnectionLost works for stdio transports.
    N)implementer)protocolstdio)IHalfCloseableProtocolIReactorCore
ITransport)logreflectc                   L    e Zd ZU dZdZeed<   d
dZd
dZdde	ddfdZ
d
d	ZdS )HalfCloseProtocolz
    A protocol to hook up to stdio and observe its transport being
    half-closed.  If all goes as expected, C{exitCode} will be set to C{0};
    otherwise it will be set to C{1} to indicate failure.
    N	transportreturnc                 :    | j                             d           dS )z=
        Signal the parent process that we're ready.
           xN)r   writeselfs    Y/var/www/html/env/lib/python3.11/site-packages/twisted/test/stdio_test_halfclose_buggy.pyconnectionMadez HalfCloseProtocol.connectionMade    s      	T"""""    c                      t          d          )zv
        This is the desired event.  Once it has happened, stop the reactor so
        the process will exit.
        zsomething went wrong)
ValueErrorr   s    r   readConnectionLostz$HalfCloseProtocol.readConnectionLost&   s    
 /000r   reasonc                 :    d| _         t          j                     dS )z
        This may only be invoked after C{readConnectionLost}.  If it happens
        otherwise, mark it as an error and shut down.
        r   N)exitCodereactorstop)r   r   s     r   connectionLostz HalfCloseProtocol.connectionLost-   s    
 r   c                     d S N r   s    r   writeConnectionLostz%HalfCloseProtocol.writeConnectionLost5   s    r   )r   Nr!   )__name__
__module____qualname____doc__r   r   __annotations__r   r   objectr   r#   r"   r   r   r   r      s           H# # # #1 1 1 1 V t         r   r   __main__      wr   )r   )r'   syszope.interfacer   twisted.internetr   r   twisted.internet.interfacesr   r   r   twisted.pythonr	   r
   Protocolr   r$   namedAnyargvinstallstartLoggingopenr(   r   halfCloseProtocol
StandardIOrunexitr   r"   r   r   <module>r=      s  
   


 & & & & & & , , , , , , , , X X X X X X X X X X ' ' ' ' ' ' ' ' #$$! ! ! ! !) ! ! %$!H zGSXa[!!))+++CTT#(1+s++,,,(((((())++E&'''GKMMMCH'((((( r   