Ë
    _§1h÷  ã                  óâ   — d dl mZ d dlZd dlmZ ddlmZ ddlmZm	Z	 ddl
mZmZmZ ddlmZmZ ej"                  d	k(  serJ ‚d
Z G d„ d«      Ze G d„ de	«      «       Ze G d„ de«      «       Zy)é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Ú_core)ÚReceiveStreamÚ
SendStream)Ú_handleÚkernel32Úraise_winerror)ÚConflictDetectorÚfinalÚwin32i   c                  ó6   — e Zd Zdd„Zedd„«       Zdd„Zdd„Zy)	Ú_HandleHolderc                ó”   — d| _         t        |t        «      st        d«      ‚|| _         t	        j
                  | j                   «       y )Néÿÿÿÿzhandle must be an int)ÚhandleÚ
isinstanceÚintÚ	TypeErrorr   Úregister_with_iocp©Úselfr   s     úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_windows_pipes.pyÚ__init__z_HandleHolder.__init__   s8   € ØˆŒÜ˜&¤#Ô&ÜÐ3Ó4Ð4ØˆŒÜ× Ñ  §¡Õ-ó    c                ó    — | j                   dk(  S ©Nr   )r   ©r   s    r   Úclosedz_HandleHolder.closed   s   € à�{‰{˜bÑ Ð r   c                ó–   — | j                   ry | j                  }d| _        t        j                  t	        |«      «      st        «        y y r   )r    r   r
   ÚCloseHandler	   r   r   s     r   Úclosez_HandleHolder.close   s9   € Ø�;Š;ØØ—‘ˆØˆŒÜ×#Ñ#¤G¨F£OÔ4ÜÕð 5r   c                ó$   — | j                  «        y ©N)r#   r   s    r   Ú__del__z_HandleHolder.__del__'   s   € Ø�
‰
�r   N©r   r   ÚreturnÚNone)r(   Úbool©r(   r)   )Ú__name__Ú
__module__Ú__qualname__r   Úpropertyr    r#   r&   © r   r   r   r      s%   „ ó.ð ò!ó ð!óôr   r   c                  ó8   — e Zd ZdZdd„Zd	d„Zd
d„Zd
d„Zd
d„Zy)ÚPipeSendStreamzdRepresents a send stream over a Windows named pipe that has been
    opened in OVERLAPPED mode.
    c                óD   — t        |«      | _        t        d«      | _        y ©Nz)another task is currently using this pipe©r   Ú_handle_holderr   Ú_conflict_detectorr   s     r   r   zPipeSendStream.__init__1   ó   € Ü+¨FÓ3ˆÔÜ"2Ø7ó#
ˆÕr   c              ƒ  óÈ  K  — | j                   5  | j                  j                  rt        j                  d«      ‚|s&t        j
                  «       ƒ d {  –—†  	 d d d «       y 	 t        j                  | j                  j                  |«      ƒ d {  –—† }|t        |«      k(  sJ ‚	 d d d «       y 7 Œ[7 Œ # t        $ r}t        j                  |‚d }~ww xY w# 1 sw Y   y xY w­w)Núthis pipe is already closed)r7   r6   r    r   ÚClosedResourceErrorÚ
checkpointÚwrite_overlappedr   ÚBrokenPipeErrorÚBrokenResourceErrorÚlen)r   ÚdataÚwrittenÚexs       r   Úsend_allzPipeSendStream.send_all7   sÐ   è ø€ Ø×$Ñ$ñ 	(Ø×"Ñ"×)Ò)Ü×/Ñ/Ð0MÓNÐNáÜ×&Ñ&Ó(×(Ð(Ø÷	(ð 	(ð8Ü %× 6Ñ 6°t×7JÑ7J×7QÑ7QÐSWÓ X×X�ð œc $›iÒ'Ð'Ñ'÷	(ð 	(ð
 )øð YùÜ"ò 8Ü×/Ñ/°RÐ7ûð8ú÷	(ð 	(üsk   ‚C"�ACÁB0ÁCÁ	C"Á$-B4ÂB2ÂB4ÂCÂ'	C"Â0CÂ2B4Â4	CÂ=CÃCÃCÃCÃC"c              ƒ  óà   K  — | j                   5  | j                  j                  rt        j                  d«      ‚t        j
                  «       ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­w)NzThis pipe is already closed)r7   r6   r    r   r;   r<   r   s    r   Úwait_send_all_might_not_blockz,PipeSendStream.wait_send_all_might_not_blockI   sc   è ø€ Ø×$Ñ$ñ 	%Ø×"Ñ"×)Ò)Ü×/Ñ/Ð0MÓNÐNô ×"Ñ"Ó$×$Ð$÷	%ð 	%ð
 %ø÷	%ð 	%üs/   ‚A.�AA"ÁA ÁA"Á	A.Á A"Á"A+Á'A.c                ó8   — | j                   j                  «        y r%   ©r6   r#   r   s    r   r#   zPipeSendStream.closeQ   ó   € Ø×Ñ×!Ñ!Õ#r   c              ƒ  óh   K  — | j                  «        t        j                  «       ƒ d {  –—†  y 7 Œ­wr%   ©r#   r   r<   r   s    r   ÚaclosezPipeSendStream.acloseT   ó!   è ø€ Ø�
‰
ŒÜ×ÑÓ × Ò úó   ‚(2ª0«2Nr'   )rA   Úbytesr(   r)   r+   )	r,   r-   r.   Ú__doc__r   rD   rF   r#   rL   r0   r   r   r2   r2   +   s    „ ñó
ó(ó$%ó$ô!r   r2   c                  ó2   — e Zd ZdZdd„Zdd	d„Zd
d„Zd
d„Zy)ÚPipeReceiveStreamz3Represents a receive stream over an os.pipe object.c                óD   — t        |«      | _        t        d«      | _        y r4   r5   r   s     r   r   zPipeReceiveStream.__init__]   r8   r   Nc              ƒ  óZ  K  — | j                   5  | j                  j                  rt        j                  d«      ‚|€t
        }n+t        |t        «      st        d«      ‚|dk  rt        d«      ‚t        |«      }	 t        j                  | j                  j                  |«      ƒ d {  –—† }||d …= |cd d d «       S 7 Œ# t        $ rT | j                  j                  rt        j                  d«      d ‚t        j                  «       ƒ d {  –—†7   Y d d d «       yw xY w# 1 sw Y   y xY w­w)Nr:   zmax_bytes must be integer >= 1r   zanother task closed this piper   )r7   r6   r    r   r;   ÚDEFAULT_RECEIVE_SIZEr   r   r   Ú
ValueErrorÚ	bytearrayÚreadinto_overlappedr   r>   r<   )r   Ú	max_bytesÚbufferÚsizes       r   Úreceive_somezPipeReceiveStream.receive_somec   s"  è ø€ Ø×$Ñ$ñ %	Ø×"Ñ"×)Ò)Ü×/Ñ/Ð0MÓNÐNàÐ Ü0‘	ä! )¬SÔ1Ü#Ð$DÓEÐEØ˜q’=Ü$Ð%EÓFÐFä˜yÓ)ˆFðÜ"×6Ñ6Ø×'Ñ'×.Ñ.Øó÷ �ð, ˜4™5�MØ÷K%	ñ %	ðùô #ò Ø×&Ñ&×-Ò-Ü×3Ñ3Ø7óàð ô ×&Ñ&Ó(×(Ñ(Ø÷E%	ð %	ð$ú÷%%	ð %	üsf   ‚D+�A+DÁ;-B?Â(B=Â)B?Â-DÂ3
D+Â=B?Â?ADÄDÄDÄDÄ	D+ÄDÄDÄD(Ä$D+c                ó8   — | j                   j                  «        y r%   rH   r   s    r   r#   zPipeReceiveStream.close‹   rI   r   c              ƒ  óh   K  — | j                  «        t        j                  «       ƒ d {  –—†  y 7 Œ­wr%   rK   r   s    r   rL   zPipeReceiveStream.acloseŽ   rM   rN   r'   r%   )rY   z
int | Noner(   rO   r+   )r,   r-   r.   rP   r   r\   r#   rL   r0   r   r   rR   rR   Y   s   „ á=ó
ô&óP$ô!r   rR   )Ú
__future__r   ÚsysÚtypingr   Ú r   Ú_abcr   r   Ú_core._windows_cffir	   r
   r   Ú_utilr   r   ÚplatformrU   r   r2   rR   r0   r   r   ú<module>rg      sz   ðÝ "ã 
Ý  å ß +ß BÑ Bß *à
‡|�|�wÒ¡mÐ 3Ð3ð Ð ÷
ñ ð0 ô*!�Zó *!ó ð*!ðZ ô6!˜ó 6!ó ñ6!r   