o
    …9jô  ã                   @   s"   d dl Z d dlZG dd„ dƒZdS )é    Nc                   @   sˆ  e Zd ZdZdZdejfdd„Zdd„ Zedd	„ ƒZ	ed
d„ ƒZ
edd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Z d8d9„ Z!d:d;„ Z"d<d=„ Z#d>d?„ Z$d@dA„ Z%dBdC„ Z&dDdE„ Z'dFdG„ Z(dHdI„ Z)dJdK„ Z*dLdM„ Z+dNdO„ Z,dPdQ„ Z-dRdS„ Z.dTdU„ Z/dVdW„ Z0dXdY„ Z1dZd[„ Z2d\S )]ÚTransportSocketzïA 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                 C   s
   || _ d S ©Nr   )Úselfr   © r   ú%/usr/lib/python3.10/asyncio/trsock.pyÚ__init__   ó   
zTransportSocket.__init__c                 C   s   t jd|› d�t| d� d S )NzUsing z… on sockets returned from get_extra_info('socket') will be prohibited in asyncio 3.9. Please report your use case to bugs.python.org.)Úsource)ÚwarningsÚwarnÚDeprecationWarning)r   Úwhatr   r   r	   Ú_na   s   

üzTransportSocket._nac                 C   ó   | j jS r   )r   Úfamily©r   r   r   r	   r      ó   zTransportSocket.familyc                 C   r   r   )r   Útyper   r   r   r	   r      r   zTransportSocket.typec                 C   r   r   )r   Úprotor   r   r   r	   r   "   r   zTransportSocket.protoc                 C   s¤   d|   ¡ › d| j›d| j›d| j› �}|   ¡ dkrMz|  ¡ }|r'|› d|› �}W n
 tjy2   Y nw z|  ¡ }|rA|› d|› �}W n
 tjyL   Y nw |› d�S )	Nz<asyncio.TransportSocket fd=z	, family=z, type=z, proto=éÿÿÿÿz, laddr=z, raddr=ú>)Úfilenor   r   r   ÚgetsocknameÚsocketÚerrorÚgetpeername)r   ÚsÚladdrÚraddrr   r   r	   Ú__repr__&   s4   ÿÿþÿ€ÿ€ÿ
zTransportSocket.__repr__c                 C   s   t dƒ‚)Nz/Cannot serialize asyncio.TransportSocket object)Ú	TypeErrorr   r   r   r	   Ú__getstate__=   s   zTransportSocket.__getstate__c                 C   ó
   | j  ¡ S r   )r   r   r   r   r   r	   r   @   r   zTransportSocket.filenoc                 C   r%   r   )r   Údupr   r   r   r	   r&   C   r   zTransportSocket.dupc                 C   r%   r   )r   Úget_inheritabler   r   r   r	   r'   F   r   zTransportSocket.get_inheritablec                 C   s   | j  |¡ d S r   )r   Úshutdown)r   Úhowr   r   r	   r(   I   s   zTransportSocket.shutdownc                 O   s   | j j|i |¤ŽS r   )r   Ú
getsockopt©r   ÚargsÚkwargsr   r   r	   r*   N   s   zTransportSocket.getsockoptc                 O   s   | j j|i |¤Ž d S r   )r   Ú
setsockoptr+   r   r   r	   r.   Q   s   zTransportSocket.setsockoptc                 C   r%   r   )r   r   r   r   r   r	   r   T   r   zTransportSocket.getpeernamec                 C   r%   r   )r   r   r   r   r   r	   r   W   r   zTransportSocket.getsocknamec                 C   r%   r   )r   Úgetsockbynamer   r   r   r	   r/   Z   r   zTransportSocket.getsockbynamec                 C   ó   |   d¡ | j ¡ S )Nzaccept() method)r   r   Úacceptr   r   r   r	   r1   ]   ó   

zTransportSocket.acceptc                 O   ó   |   d¡ | jj|i |¤ŽS )Nzconnect() method)r   r   Úconnectr+   r   r   r	   r4   a   ó   
zTransportSocket.connectc                 O   r3   )Nzconnect_ex() method)r   r   Ú
connect_exr+   r   r   r	   r6   e   r5   zTransportSocket.connect_exc                 O   r3   )Nzbind() method)r   r   Úbindr+   r   r   r	   r7   i   r5   zTransportSocket.bindc                 O   r3   )Nzioctl() method)r   r   Úioctlr+   r   r   r	   r8   m   r5   zTransportSocket.ioctlc                 O   r3   )Nzlisten() method)r   r   Úlistenr+   r   r   r	   r9   q   r5   zTransportSocket.listenc                 C   r0   )Nzmakefile() method)r   r   Úmakefiler   r   r   r	   r:   u   r2   zTransportSocket.makefilec                 O   r3   )Nzsendfile() method)r   r   Úsendfiler+   r   r   r	   r;   y   r5   zTransportSocket.sendfilec                 C   r0   )Nzclose() method)r   r   Úcloser   r   r   r	   r<   }   r2   zTransportSocket.closec                 C   r0   )Nzdetach() method)r   r   Údetachr   r   r   r	   r=   �   r2   zTransportSocket.detachc                 O   r3   )Nzsendmsg_afalg() method)r   r   Úsendmsg_afalgr+   r   r   r	   r>   …   r5   zTransportSocket.sendmsg_afalgc                 O   r3   )Nzsendmsg() method)r   r   Úsendmsgr+   r   r   r	   r?   ‰   r5   zTransportSocket.sendmsgc                 O   r3   )Nzsendto() method)r   r   Úsendtor+   r   r   r	   r@   �   r5   zTransportSocket.sendtoc                 O   r3   )Nzsend() method)r   r   Úsendr+   r   r   r	   rA   ‘   r5   zTransportSocket.sendc                 O   r3   )Nzsendall() method)r   r   Úsendallr+   r   r   r	   rB   •   r5   zTransportSocket.sendallc                 O   r3   )Nzset_inheritable() method)r   r   Úset_inheritabler+   r   r   r	   rC   ™   r5   zTransportSocket.set_inheritablec                 C   s   |   d¡ | j |¡S )Nzshare() method)r   r   Úshare)r   Ú
process_idr   r   r	   rD   �   ó   
zTransportSocket.sharec                 O   r3   )Nzrecv_into() method)r   r   Ú	recv_intor+   r   r   r	   rG   ¡   r5   zTransportSocket.recv_intoc                 O   r3   )Nzrecvfrom_into() method)r   r   Úrecvfrom_intor+   r   r   r	   rH   ¥   r5   zTransportSocket.recvfrom_intoc                 O   r3   )Nzrecvmsg_into() method)r   r   Úrecvmsg_intor+   r   r   r	   rI   ©   r5   zTransportSocket.recvmsg_intoc                 O   r3   )Nzrecvmsg() method)r   r   Úrecvmsgr+   r   r   r	   rJ   ­   r5   zTransportSocket.recvmsgc                 O   r3   )Nzrecvfrom() method)r   r   Úrecvfromr+   r   r   r	   rK   ±   r5   zTransportSocket.recvfromc                 O   r3   )Nzrecv() method)r   r   Úrecvr+   r   r   r	   rL   µ   r5   zTransportSocket.recvc                 C   s   |dkrd S t dƒ‚)Nr   z<settimeout(): only 0 timeout is allowed on transport sockets©Ú
ValueError)r   Úvaluer   r   r	   Ú
settimeout¹   s
   ÿzTransportSocket.settimeoutc                 C   s   dS )Nr   r   r   r   r   r	   Ú
gettimeout¿   s   zTransportSocket.gettimeoutc                 C   s   |sd S t dƒ‚)Nz3setblocking(): transport sockets cannot be blockingrM   )r   Úflagr   r   r	   ÚsetblockingÂ   s
   ÿzTransportSocket.setblockingc                 C   r0   ©Nzcontext manager protocol)r   r   Ú	__enter__r   r   r   r	   rU   È   r2   zTransportSocket.__enter__c                 G   s   |   d¡ | jj|Ž S rT   )r   r   Ú__exit__)r   Úerrr   r   r	   rV   Ì   rF   zTransportSocket.__exit__N)3Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r
   r   Úpropertyr   r   r   r"   r$   r   r&   r'   r(   r*   r.   r   r   r/   r1   r4   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rG   rH   rI   rJ   rK   rL   rP   rQ   rS   rU   rV   r   r   r   r	   r      sd    


r   )r   r   r   r   r   r   r	   Ú<module>   s    