3 2a @ s d dl Z e jdkredd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl Z dddddgZd Zej Z ejZej ZeedrejZnejejd fd dZdded ddZG dd dZG dd dejZdS ) Nwin32z win32 only socketpairpipePopenPIPE PipeHandlei c C s | t jkrd}n| t jkr d}ntd|t jkr:td|dkrJtdt j | ||}z|j|df |jd |j d d \}}t j | ||}yP|jd y|j ||f W n t tfk r Y nX |jd |j \}} W n |j Y nX W d |j X ||fS )Nz 127.0.0.1z::1z?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedr zOnly protocol zero is supported FT)socketAF_INETZAF_INET6 ValueErrorSOCK_STREAMZbindZlistenZgetsocknameZsetblockingZconnectBlockingIOErrorInterruptedErrorZacceptclose) ZfamilytypeprotohostZlsockZaddrZportZcsockZssock_ r 2/opt/alt/python36/lib64/python3.6/windows_utils.pyr % s8 FT)duplex overlappedbufsizec C s" t jdtj ttf d}| r>tj}tjtj B }|| }}ntj }tj }d| }}|tjO }|d rp|tjO }|d rtj}nd}d } } yZtj ||tjd||tjtj} tj||dtjtj|tj} tj| dd}|jd | | fS | d k rtj| | d k rtj| Y nX d S )Nz\\.\pipe\python-pipe-%d-%d-)prefixr r T)r )tempfileZmktemposgetpidnext _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_attribsZh1Zh2Zovr r r r S s@ c @ sX e Zd Zdd Zdd Zedd Zdd Zej d d dZ dd Zdd Zdd Z dS )r c C s || _ d S )N)_handle)selfhandler r r __init__ s zPipeHandle.__init__c C s* | j d k rd| j }nd}d| jj|f S )Nz handle=%rclosedz<%s %s>)r# __class____name__)r$ r% r r r __repr__ 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 operatioon on closed pipe)r# r )r$ r r r fileno s zPipeHandle.fileno)r! c C s | j d k r|| j d | _ d S )N)r# )r$ r! r r r r s zPipeHandle.closec C s* | j d k r&tjd| t| d | j d S )Nzunclosed %r)source)r# warningswarnResourceWarningr )r$ r r r __del__ s zPipeHandle.__del__c C s | S )Nr )r$ r r r __enter__ s zPipeHandle.__enter__c C s | j d S )N)r )r$ tvtbr r r __exit__ s zPipeHandle.__exit__N)r) __module____qualname__r&