\d (ddlZGddZdS)NceZdZdZdZdejfdZedZedZ edZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdZdS)TransportSocketzA socket-like wrapper for exposing real transport sockets. These objects can be safely returned by APIs like `transport.get_extra_info('socket')`. All potentially disruptive operations (like "socket.close()") are banned. _socksockc||_dSNr)selfrs ..\python\lib\asyncio\trsock.py__init__zTransportSocket.__init__s  c|jjSr )rfamilyr s r rzTransportSocket.familys z  r c|jjSr )rtypers r rzTransportSocket.types zr c|jjSr )rprotors r rzTransportSocket.protos zr cjd|d|jd|jd|j}|dkrh |}|r|d|}n#t j$rYnwxYw |}|r|d|}n#t j$rYnwxYw|dS) Nz)filenorrr getsocknamesocketerror getpeername)r sladdrraddrs r __repr__zTransportSocket.__repr__s "4;;== " "k " ",0I " "Z " " ;;==B   ((**.--e--A<     ((**.--e--A<    wwws$ A''A98A9=BB-,B-c td)Nz/Cannot serialize asyncio.TransportSocket object) TypeErrorrs r __getstate__zTransportSocket.__getstate__5sIJJJr c4|jSr )rrrs r rzTransportSocket.fileno8sz  """r c4|jSr )rduprs r r&zTransportSocket.dup;sz~~r c4|jSr )rget_inheritablers r r(zTransportSocket.get_inheritable>sz))+++r c:|j|dSr )rshutdown)r hows r r*zTransportSocket.shutdownAs  C     r c&|jj|i|Sr )r getsockoptr argskwargss r r-zTransportSocket.getsockoptFs$tz$d5f555r c*|jj|i|dSr )r setsockoptr.s r r2zTransportSocket.setsockoptIs" t.v.....r c4|jSr )rrrs r rzTransportSocket.getpeernameLz%%'''r c4|jSr )rrrs r rzTransportSocket.getsocknameOr4r c4|jSr )r getsockbynamers r r7zTransportSocket.getsockbynameRsz'')))r c0|dkrdStd)Nrzr r rrspIV]!!X!X  X .KKK###   ,,,!!! 666///((((((***LLL CCCCCr r)rrr>r r rIsT ^C^C^C^C^C^C^C^C^C^Cr