File: //usr/lib/python3/dist-packages/twisted/internet/__pycache__/_win32stdio.cpython-310.pyc
o
�bD � @ s� d Z ddlZddlZddlmZ ddlZddlmZmZ ddl m
Z
mZmZm
Z
mZ ddlmZ ee
�G dd� d��Zeeee
�G d d
� d
ej��ZdS )zM
Windows-specific implementation of the L{twisted.internet.stdio} interface.
� N)�implementer)�_pollingfile�main)�IAddress� IConsumer�IHalfCloseableProtocol�
IPushProducer�
ITransport)�Failurec @ s e Zd ZdS )�Win32PipeAddressN)�__name__�
__module__�__qualname__� r r �>/usr/lib/python3/dist-packages/twisted/internet/_win32stdio.pyr s r c @ s� e Zd ZdZdZd"dd�Zdd� Zdd� Zd d
� ZdZ dd
� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� ZdS )#�
StandardIOFNc C s� |du r
ddl m} tddd�D ] }t�|tj� qtj� | |� || _
t�tj
�}t�tj�}t�|| j| j�| _t�|| j�| _| �| j� | �| j� | j
�| � dS )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�hstdoutr r r r % s
�zStandardIO.__init__c C � | j �|� d S �N)r r# �r+ �datar r r r# B � zStandardIO.dataReceivedc C �"