
    Rh	                          d dl Z  G d d      Zy)    Nc                       e Zd ZdZdZdej
                  fdZed        Zed        Z	ed        Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)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.
    _socksockc                     || _         y Nr   )selfr   s     %/usr/lib/python3.12/asyncio/trsock.py__init__zTransportSocket.__init__   s	    
    c                 .    | j                   j                  S r	   )r   familyr
   s    r   r   zTransportSocket.family   s    zz   r   c                 .    | j                   j                  S r	   )r   typer   s    r   r   zTransportSocket.type   s    zzr   c                 .    | j                   j                  S r	   )r   protor   s    r   r   zTransportSocket.proto   s    zzr   c                 r   d| j                          d| j                  d| j                  d| j                   }| j                         dk7  r4	 | j	                         }|r| d| }	 | j                         }|r| d| }| dS # t
        j                  $ r Y 4w xY w# t
        j                  $ r Y 3w xY w)	Nz<asyncio.TransportSocket fd=z	, family=z, type=z, proto=z, laddr=z, raddr=>)filenor   r   r   getsocknamesocketerrorgetpeername)r
   sladdrraddrs       r   __repr__zTransportSocket.__repr__   s    *4;;=/ :kk_GDII= 9ZZL" 	
 ;;=B((*#XeW-A((*#XeW-A Aw <<  << s$   B )B  BB B65B6c                     t        d      )Nz/Cannot serialize asyncio.TransportSocket object)	TypeErrorr   s    r   __getstate__zTransportSocket.__getstate__5   s    IJJr   c                 6    | j                   j                         S r	   )r   r   r   s    r   r   zTransportSocket.fileno8   s    zz  ""r   c                 6    | j                   j                         S r	   )r   dupr   s    r   r&   zTransportSocket.dup;   s    zz~~r   c                 6    | j                   j                         S r	   )r   get_inheritabler   s    r   r(   zTransportSocket.get_inheritable>   s    zz))++r   c                 :    | j                   j                  |       y r	   )r   shutdown)r
   hows     r   r*   zTransportSocket.shutdownA   s     	

C r   c                 :     | j                   j                  |i |S r	   )r   
getsockoptr
   argskwargss      r   r-   zTransportSocket.getsockoptF   s    $tzz$$d5f55r   c                 <     | j                   j                  |i | y r	   )r   
setsockoptr.   s      r   r2   zTransportSocket.setsockoptI   s    

t.v.r   c                 6    | j                   j                         S r	   )r   r   r   s    r   r   zTransportSocket.getpeernameL       zz%%''r   c                 6    | j                   j                         S r	   )r   r   r   s    r   r   zTransportSocket.getsocknameO   r4   r   c                 6    | j                   j                         S r	   )r   getsockbynamer   s    r   r7   zTransportSocket.getsockbynameR   s    zz''))r   c                 $    |dk(  ry t        d      )Nr   z<settimeout(): only 0 timeout is allowed on transport sockets
ValueError)r
   values     r   
settimeoutzTransportSocket.settimeoutU   s    A:JL 	Lr   c                      y)Nr    r   s    r   
gettimeoutzTransportSocket.gettimeout[   s    r   c                     |sy t        d      )Nz3setblocking(): transport sockets cannot be blockingr9   )r
   flags     r   setblockingzTransportSocket.setblocking^   s    AC 	Cr   N)__name__
__module____qualname____doc__	__slots__r   r   propertyr   r   r   r    r#   r   r&   r(   r*   r-   r2   r   r   r7   r<   r?   rB   r>   r   r   r   r      s     IV]]  ! !      .K# ,!
6/((*LCr   r   )r   r   r>   r   r   <module>rI      s    ^C ^Cr   