Current File : //snap/core22/current/usr/lib/python3.10/asyncio/__pycache__/windows_utils.cpython-310.pyc |
o
E�h� � @ 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.� N�win32z
win32 only)�pipe�Popen�PIPE�
PipeHandlei F)TT)�duplex�
overlapped�bufsizec
C s t jd�t�� tt��d�}| rtj}tj tj
B }||}}ntj}tj
}d|}}|tjO }|d r8|tj
O }|d r@tj
}nd}d } }
z.t�||tjd||tjtj�} t�||dtjtj|tj�}
tj| dd�}|�d� | |
fW S | dur�t�| � |
dur�t�|
� � )zELike os.pipe() but with overlapped support and using handles not fds.z\\.\pipe\python-pipe-{:d}-{:d}-)�prefixr � NT�r )�tempfile�mktemp�format�os�getpid�next�
_mmap_counter�_winapi�PIPE_ACCESS_DUPLEX�GENERIC_READ�
GENERIC_WRITE�PIPE_ACCESS_INBOUND�FILE_FLAG_FIRST_PIPE_INSTANCE�FILE_FLAG_OVERLAPPED�CreateNamedPipe� PIPE_WAIT�NMPWAIT_WAIT_FOREVER�NULL�
CreateFile�
OPEN_EXISTING�ConnectNamedPipe�GetOverlappedResult�CloseHandle)r r r �address�openmode�access�obsize�ibsize�flags_and_attribs�h1�h2�ov� r- �,/usr/lib/python3.10/asyncio/windows_utils.pyr sJ ��
��
r c @ sb e Zd ZdZdd� Zdd� Zedd� �Zdd � Ze j
d
�dd�Zej
fd
d�Zdd� Zdd� 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 urd| j ��}nd}d| jj� d|� d�S )Nzhandle=�closed�<� �>)r1 � __class__�__name__r2 r- r- r. �__repr__Y s
zPipeHandle.__repr__c C s | j S r/ r0 �r3 r- r- r. r4 ` s zPipeHandle.handlec C s | j d u r td��| j S )NzI/O operation on closed pipe)r1 �
ValueErrorr= r- r- r. �filenod s
zPipeHandle.fileno)r# c C s"