Hacked By AnonymousFox
B
� f� � @ s� d Z ddlZejdkred��ddlZddlZddlZddlZddlZddl Z ddl
Z
dZdZej
Z
ejZe�� Zdded �d
d�ZG dd
� d
�ZG dd� dej�ZdS )z)Various Windows specific bits and pieces.� NZwin32z
win32 only)�pipe�Popen�PIPE�
PipeHandlei F)TT)�duplex�
overlapped�bufsizec
C s" t jd�t�� tt��d�}| r>tj}tj tj
B }|| }}ntj}tj
}d| }}|tjO }|d rp|tj
O }|d r�tj
}nd}d } }
yZt�||tjd||tjtj�} t�||dtjtj|tj�}
tj| dd�}|�d� | |
fS | dk �rt�| � |
dk �rt�|
� � Y nX dS )zELike os.pipe() but with overlapped support and using handles not fds.z\\.\pipe\python-pipe-{:d}-{:d}-)�prefixr � NT)r )�tempfileZmktemp�format�os�getpid�next�
_mmap_counter�_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZ
GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ
CreateFileZ
OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResult�CloseHandle)r r r ZaddressZopenmode�accessZobsizeZibsizeZflags_and_attribsZh1Zh2Zov� r �:/opt/alt/python37/lib64/python3.7/asyncio/windows_utils.pyr sB
r c @ s\ e Zd ZdZdd� Zdd� Zedd� �Zdd � Ze j
d
�dd�Zd
d� Zdd� Z
dd� ZdS )r z�Wrapper for an overlapped pipe handle which is vaguely file-object like.
The IOCP event loop can use these instead of socket objects.
c C s
|| _ d S )N)�_handle)�self�handler r r �__init__V s zPipeHandle.__init__c C s2 | j d k rd| j ��}nd}d| jj� d|� d�S )Nzhandle=�closed�<� �>)r � __class__�__name__)r r r r r �__repr__Y s
zPipeHandle.__repr__c C s | j S )N)r )r r r r r ` s zPipeHandle.handlec C s | j d krtd��| j S )NzI/O operation on closed pipe)r �
ValueError)r r r r �filenod s
zPipeHandle.fileno)r c C s | j d k r|| j � d | _ d S )N)r )r r r r r �closei s
zPipeHandle.closec C s, | j d k r(tjd| ��t| d� | �� d S )Nz unclosed )�source)r �warnings�warn�ResourceWarningr# )r r r r �__del__n s
zPipeHandle.__del__c C s | S )Nr )r r r r � __enter__t s zPipeHandle.__enter__c C s | � � d S )N)r# )r �t�v�tbr r r �__exit__w s zPipeHandle.__exit__N)r �
__module__�__qualname__�__doc__r r �propertyr r"