?
| Path : /lib64/python3.8/asyncio/__pycache__/ |
| Current File : //lib64/python3.8/asyncio/__pycache__/windows_utils.cpython-38.pyc |
U
e5d @ s d Z ddlZejdkredddlZddlZddlZddlZddlZddl Z ddl
Z
dZdZej
Z
ejZe Zdded d
dZG dd
d
ZG dd dejZdS )z)Various Windows specific bits and pieces. NZwin32z
win32 only)pipePopenPIPE
PipeHandlei F)TT)duplex
overlappedbufsizec
C s$ t jdt ttd}| r>tj}tj tj
B }|| }}ntj}tj
}d| }}|tjO }|d rp|tj
O }|d rtj
}nd}d } }
z\t||tjd||tjtj} t||dtjtj|tj}
tj| dd}|d | |
fW S | 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 NTr )tempfileZmktempformatosgetpidnext
_mmap_counter_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZ
GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ
CreateFileZ
OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResultCloseHandle)r r r ZaddressZopenmodeaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zov r -/usr/lib64/python3.8/asyncio/windows_utils.pyr sb
r c @ sb e Zd ZdZdd Zdd Zedd Zdd Ze j
d
ddZej
fd
dZdd Zdd ZdS )r zWrapper 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_handleselfhandler r r __init__V s zPipeHandle.__init__c C s2 | j d k rd| j }nd}d| jj d| dS )Nzhandle=closed< >)r __class____name__r r r r __repr__Y s
zPipeHandle.__repr__c C s | j S r r r r r r r ` s zPipeHandle.handlec C s | j d krtd| j S )NzI/O operation on closed pipe)r
ValueErrorr% r r r filenod s
zPipeHandle.fileno)r c C s | j d k r|| j d | _ d S r r )r r r r r closei s
zPipeHandle.closec C s* | j d k r&|d| t| d | d S )Nz unclosed )source)r ResourceWarningr( )r Z_warnr r r __del__n s
zPipeHandle.__del__c C s | S r r r% r r r __enter__s s zPipeHandle.__enter__c C s | d S r )r( )r tvtbr r r __exit__v s zPipeHandle.__exit__N)r#
__module____qualname____doc__r r$ propertyr r' r r r( warningswarnr+ r, r0 r r r r r Q s
r c s"