] @ sD d d l Z e j d k r' e d d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d d d d g Z d Z e j Z e j Z e j Z e e d r e j Z n e j e j d d d Z d d d d d e d d Z Gd d d Z Gd d d e j Z d S) Nwin32z win32 only socketpairpipePopenPIPE PipeHandlei c C sk | t j k r d } n$ | t j k r0 d } n t d | t j k rW t d | d k ro t d t j | | | } z | j | d f | j d | j d d \ } } t j | | | } yb | j d y | j | | f Wn t t f k rYn X| j d | j \ } } Wn | j Yn XWd | j X| | f S)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_INETAF_INET6 ValueErrorSOCK_STREAMbindlistengetsocknamesetblockingconnectBlockingIOErrorInterruptedErroracceptclose) familytypeprotohostZlsockaddrportZcsockZssock_ r 2/opt/alt/python35/lib64/python3.5/windows_utils.pyr % s8 duplexF overlappedTbufsizec C s t j d d t j t t f } | rW t j } t j t j B} | | } } n t j } t j } d | } } | t j O} | d r | t j O} | d r t j } n d } d } } y t j | | t j d | | t j t j } t j | | d t j t j | t j } t j | d d } | j d | | f SWn= | d k rft j | | d k rt j | Yn Xd S)Nprefixz\\.\pipe\python-pipe-%d-%d-r r r" T)tempfilemktemposgetpidnext _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# addressZopenmodeaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zovr r r r S s@ c @ s e Z d Z d d Z d d Z e d d Z d d Z d e j d d Z d d Z d d Z d d Z d S)r c C s | | _ d S)N)_handle)selfhandler r r __init__ s zPipeHandle.__init__c C s9 | j d k r d | j } n d } d | j j | f S)Nz handle=%rclosedz<%s %s>)r/ __class____name__)r0 r1 r r r __repr__ s zPipeHandle.__repr__c C s | j S)N)r/ )r0 r r r r1 s zPipeHandle.handlec C s" | j d k r t d | j S)NzI/O operatioon on closed pipe)r/ r )r0 r r r fileno s zPipeHandle.filenor, c C s) | j d k r% | | j d | _ d S)N)r/ )r0 r, r r r r s zPipeHandle.closec C s1 | j d k r- t j d | t | j d S)Nzunclosed %r)r/ warningswarnResourceWarningr )r0 r r r __del__ s zPipeHandle.__del__c C s | S)Nr )r0 r r r __enter__ s zPipeHandle.__enter__c C s | j d S)N)r )r0 tvtbr r r __exit__ s zPipeHandle.__exit__N)r5 __module____qualname__r2 r6 propertyr1 r7 r+ r, r r; r<